mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Add concept of inputSource on insert/update/delete actions.
This commit is contained in:
@ -28,6 +28,7 @@ import java.util.List;
|
|||||||
import com.kingsrook.qqq.backend.core.BaseTest;
|
import com.kingsrook.qqq.backend.core.BaseTest;
|
||||||
import com.kingsrook.qqq.backend.core.context.QContext;
|
import com.kingsrook.qqq.backend.core.context.QContext;
|
||||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.actions.tables.InputSource;
|
||||||
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertInput;
|
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertInput;
|
||||||
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertOutput;
|
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertOutput;
|
||||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||||
@ -632,4 +633,63 @@ class InsertActionTest extends BaseTest
|
|||||||
assertEquals("Missing value in required field: Order No", insertOutput.getRecords().get(2).getErrors().get(0).getMessage());
|
assertEquals("Missing value in required field: Order No", insertOutput.getRecords().get(2).getErrors().get(0).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
private static class TestInputSource implements InputSource
|
||||||
|
{
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
@Override
|
||||||
|
public boolean shouldValidateRequiredFields()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
@Test
|
||||||
|
void testRequiredFieldsForInputSourceThatShouldntValidate() throws QException
|
||||||
|
{
|
||||||
|
QInstance qInstance = QContext.getQInstance();
|
||||||
|
qInstance.getTable(TestUtils.TABLE_NAME_ORDER).getField("orderNo").setIsRequired(true);
|
||||||
|
QContext.getQSession().withSecurityKeyValue(TestUtils.SECURITY_KEY_TYPE_STORE_ALL_ACCESS, true);
|
||||||
|
InsertInput insertInput = new InsertInput();
|
||||||
|
insertInput.setInputSource(new TestInputSource());
|
||||||
|
insertInput.setTableName(TestUtils.TABLE_NAME_ORDER);
|
||||||
|
insertInput.setRecords(List.of(
|
||||||
|
new QRecord().withValue("storeId", 999),
|
||||||
|
new QRecord().withValue("storeId", 999).withValue("orderNo", "ORD1"),
|
||||||
|
new QRecord().withValue("storeId", 999).withValue("orderNo", " ")
|
||||||
|
));
|
||||||
|
InsertOutput insertOutput = new InsertAction().execute(insertInput);
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
// 1st record had no value in orderNo, but insert it anyway. //
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
assertEquals(0, insertOutput.getRecords().get(0).getErrors().size());
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
// 2nd record had a value - it should insert //
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
assertEquals(0, insertOutput.getRecords().get(1).getErrors().size());
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// 3rd record had spaces-only in orderNo - but insert it anyway. //
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
assertEquals(0, insertOutput.getRecords().get(2).getErrors().size());
|
||||||
|
|
||||||
|
//////////////////////////
|
||||||
|
// all 3 should insert. //
|
||||||
|
//////////////////////////
|
||||||
|
assertEquals(3, TestUtils.queryTable(qInstance, TestUtils.TABLE_NAME_ORDER).size());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user