use of net.n2oapp.framework.api.metadata.global.dao.object.field.ObjectListField in project n2o-framework by i-novus-llc.
the class InvocationProcessorTest method testAdvancedNestingWithMapInvocationProvider.
@Test
public void testAdvancedNestingWithMapInvocationProvider() {
N2oTestDataProvider invocation = new N2oTestDataProvider();
invocation.setOperation(N2oTestDataProvider.Operation.echo);
// STRUCTURE
// Reference
ObjectReferenceField refParam = new ObjectReferenceField();
refParam.setId("entity");
refParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity");
refParam.setMapping("['refEntity']");
// Simple
ObjectSimpleField simpleParam = new ObjectSimpleField();
simpleParam.setId("valueStr");
// List
ObjectListField listParam = new ObjectListField();
listParam.setId("entities");
listParam.setMapping("['innerObjList']");
listParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity");
ObjectSimpleField childParam1 = new ObjectSimpleField();
childParam1.setId("id");
childParam1.setMapping("['valueInt']");
ObjectSimpleField childParam2 = new ObjectSimpleField();
childParam2.setId("name");
childParam2.setMapping("['valueStr']");
// List Set
ObjectSetField setParam = new ObjectSetField();
setParam.setId("set");
setParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity$InnerInnerEntity");
setParam.setMapping("['innerInnerObjSet']");
ObjectSimpleField setChildParam = new ObjectSimpleField();
setChildParam.setId("name");
setChildParam.setMapping("['innerName']");
setParam.setFields(new AbstractParameter[] { setChildParam });
listParam.setFields(new AbstractParameter[] { childParam1, childParam2, setParam });
refParam.setFields(new AbstractParameter[] { simpleParam, listParam });
// DATASET
DataSet innerDataSet1 = new DataSet();
innerDataSet1.put("id", 666);
innerDataSet1.put("name", "testStr1");
HashSet innerInnerDataSet = new HashSet();
innerDataSet1.put("set", innerInnerDataSet);
innerInnerDataSet.add(new DataSet("name", "code1"));
innerInnerDataSet.add(new DataSet("name", "code2"));
DataSet innerDataSet2 = new DataSet();
innerDataSet2.put("id", 777);
innerDataSet2.put("name", "testStr2");
innerInnerDataSet = new HashSet();
innerDataSet2.put("set", innerInnerDataSet);
innerInnerDataSet.add(new DataSet("name", "code3"));
List list = Arrays.asList(innerDataSet1, innerDataSet2);
DataSet refParamFields = new DataSet();
refParamFields.put("entities", list);
refParamFields.put("valueStr", "test");
DataSet dataSet = new DataSet();
dataSet.put("entity", refParamFields);
List<AbstractParameter> inParameters = Arrays.asList(refParam);
List<ObjectSimpleField> outParameters = new ArrayList<>();
// Result
DataSet result = invocationProcessor.invoke(invocation, dataSet, inParameters, outParameters);
TestEntity entity = (TestEntity) result.get("entity");
assertThat(entity.getValueInt(), nullValue());
assertThat(entity.getInnerObj(), nullValue());
assertThat(entity.getValueStr(), is("test"));
List<TestEntity.InnerEntity> innerObjList = entity.getInnerObjList();
assertThat(innerObjList.size(), is(2));
assertThat(innerObjList.get(0).getValueInt(), is(666));
assertThat(innerObjList.get(0).getValueStr(), is("testStr1"));
Set<TestEntity.InnerEntity.InnerInnerEntity> innerInnerObjSet = innerObjList.get(0).getInnerInnerObjSet();
assertThat(innerInnerObjSet.size(), is(2));
assertThat(innerInnerObjSet.contains(new TestEntity.InnerEntity.InnerInnerEntity("code1")), is(true));
assertThat(innerInnerObjSet.contains(new TestEntity.InnerEntity.InnerInnerEntity("code2")), is(true));
assertThat(innerObjList.get(1).getValueInt(), is(777));
assertThat(innerObjList.get(1).getValueStr(), is("testStr2"));
innerInnerObjSet = innerObjList.get(1).getInnerInnerObjSet();
assertThat(innerInnerObjSet.size(), is(1));
assertThat(innerInnerObjSet.contains(new TestEntity.InnerEntity.InnerInnerEntity("code3")), is(true));
}
use of net.n2oapp.framework.api.metadata.global.dao.object.field.ObjectListField in project n2o-framework by i-novus-llc.
the class InvocationProcessorTest method testAdvancedNestingWithArgumentsInvocationProvider.
@Test
public void testAdvancedNestingWithArgumentsInvocationProvider() {
N2oJavaDataProvider invocation = new N2oJavaDataProvider();
invocation.setClassName("net.n2oapp.framework.engine.test.source.StaticInvocationTestClass");
invocation.setMethod("methodReturnedEntity");
Argument argument = new Argument();
argument.setClassName("net.n2oapp.framework.engine.util.TestEntity");
argument.setType(Argument.Type.ENTITY);
invocation.setArguments(new Argument[] { argument });
// STRUCTURE
// Simple
ObjectSimpleField simpleParam = new ObjectSimpleField();
simpleParam.setId("valueStr");
simpleParam.setMapping("[0].valueStr");
// List
ObjectListField listParam = new ObjectListField();
listParam.setId("entities");
listParam.setMapping("[0].innerObjList");
listParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity");
ObjectSimpleField childParam1 = new ObjectSimpleField();
childParam1.setId("id");
childParam1.setMapping("valueInt");
ObjectSimpleField childParam2 = new ObjectSimpleField();
childParam2.setId("name");
childParam2.setMapping("valueStr");
// List Set
ObjectSetField setParam = new ObjectSetField();
setParam.setId("set");
setParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity$InnerInnerEntity");
setParam.setMapping("innerInnerObjSet");
ObjectSimpleField setChildParam = new ObjectSimpleField();
setChildParam.setId("name");
setChildParam.setMapping("innerName");
setParam.setFields(new AbstractParameter[] { setChildParam });
listParam.setFields(new AbstractParameter[] { setParam, childParam2, childParam1 });
// DATASET
DataSet innerDataSet1 = new DataSet();
innerDataSet1.put("id", 666);
innerDataSet1.put("name", "testStr1");
HashSet innerInnerDataSet = new HashSet();
innerDataSet1.put("set", innerInnerDataSet);
innerInnerDataSet.add(new DataSet("name", "code1"));
innerInnerDataSet.add(new DataSet("name", "code2"));
DataSet innerDataSet2 = new DataSet();
innerDataSet2.put("id", 777);
innerDataSet2.put("name", "testStr2");
innerInnerDataSet = new HashSet();
innerDataSet2.put("set", innerInnerDataSet);
innerInnerDataSet.add(new DataSet("name", "code3"));
List list = Arrays.asList(innerDataSet1, innerDataSet2);
DataSet dataSet = new DataSet();
dataSet.put("entities", list);
dataSet.put("valueStr", "test");
List<AbstractParameter> inParameters = Arrays.asList(listParam, simpleParam);
List<ObjectSimpleField> outParameters = new ArrayList<>();
// Result
DataSet result = invocationProcessor.invoke(invocation, dataSet, inParameters, outParameters);
assertThat(result.size(), is(2));
assertThat(result.get("valueStr"), is("test"));
List<TestEntity.InnerEntity> innerObjList = (List<TestEntity.InnerEntity>) result.get("entities");
assertThat(innerObjList.size(), is(2));
assertThat(innerObjList.get(0).getValueInt(), is(666));
assertThat(innerObjList.get(0).getValueStr(), is("testStr1"));
Set<TestEntity.InnerEntity.InnerInnerEntity> innerInnerObjSet = innerObjList.get(0).getInnerInnerObjSet();
assertThat(innerInnerObjSet.size(), is(2));
assertThat(innerInnerObjSet.contains(new TestEntity.InnerEntity.InnerInnerEntity("code1")), is(true));
assertThat(innerInnerObjSet.contains(new TestEntity.InnerEntity.InnerInnerEntity("code2")), is(true));
assertThat(innerObjList.get(1).getValueInt(), is(777));
assertThat(innerObjList.get(1).getValueStr(), is("testStr2"));
innerInnerObjSet = innerObjList.get(1).getInnerInnerObjSet();
assertThat(innerInnerObjSet.size(), is(1));
assertThat(innerInnerObjSet.contains(new TestEntity.InnerEntity.InnerInnerEntity("code3")), is(true));
}
use of net.n2oapp.framework.api.metadata.global.dao.object.field.ObjectListField in project n2o-framework by i-novus-llc.
the class InvocationProcessorTest method fullMappingTest.
@Test
public void fullMappingTest() {
N2oJavaDataProvider method = new N2oJavaDataProvider();
method.setMethod("methodReturnedEntity");
method.setClassName("net.n2oapp.framework.engine.test.source.StaticInvocationTestClass");
Argument entityTypeArgument = new Argument();
entityTypeArgument.setName("argument");
entityTypeArgument.setClassName("net.n2oapp.framework.engine.util.TestEntity");
entityTypeArgument.setType(Argument.Type.ENTITY);
method.setArguments(new Argument[] { entityTypeArgument });
DataSet dataSet = new DataSet();
DataSet inDataSet = new DataSet();
inDataSet.put("name", "testName");
inDataSet.put("id", 123);
dataSet.put("entity", inDataSet);
List<DataSet> list = new ArrayList<>();
inDataSet = new DataSet();
inDataSet.put("id", 1234);
inDataSet.put("name", "testName1");
list.add(inDataSet);
inDataSet = new DataSet();
inDataSet.put("name", "testName2");
inDataSet.put("id", 12345);
list.add(inDataSet);
dataSet.put("entities", list);
List<AbstractParameter> inMapping = new ArrayList<>();
ObjectReferenceField param = new ObjectReferenceField();
param.setId("entity");
param.setMapping("[0].innerObj");
param.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity");
ObjectSimpleField inParam1 = new ObjectSimpleField();
inParam1.setId("name");
inParam1.setMapping("valueStr");
ObjectSimpleField inParam2 = new ObjectSimpleField();
inParam2.setId("id");
inParam2.setMapping("valueInt");
param.setFields(new AbstractParameter[] { inParam1, inParam2 });
inMapping.add(param);
ObjectListField listParam = new ObjectListField();
listParam.setId("entities");
listParam.setMapping("[0].innerObjList");
listParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity");
inParam1 = new ObjectSimpleField();
inParam1.setId("name");
inParam1.setMapping("valueStr");
inParam1.setDefaultValue("testName1");
inParam1.setNormalize("#this.toLowerCase()");
inParam2 = new ObjectSimpleField();
inParam2.setId("id");
inParam2.setMapping("valueInt");
listParam.setFields(new AbstractParameter[] { inParam1, inParam2 });
inMapping.add(listParam);
List<ObjectSimpleField> outMapping = new ArrayList<>();
ObjectSimpleField outParam = new ObjectSimpleField();
outParam.setId("testValue");
outParam.setMapping("#this");
outMapping.add(outParam);
DataSet resultDataSet = invocationProcessor.invoke(method, dataSet, inMapping, outMapping);
assertThat(resultDataSet.size(), is(3));
assertThat(((TestEntity.InnerEntity) resultDataSet.get("entity")).getValueInt(), is(123));
assertThat(((TestEntity.InnerEntity) resultDataSet.get("entity")).getValueStr(), is("testName"));
assertThat(((List<TestEntity.InnerEntity>) resultDataSet.get("entities")).get(0).getValueStr(), is("testname1"));
assertThat(((List<TestEntity.InnerEntity>) resultDataSet.get("entities")).get(1).getValueInt(), is(12345));
assertThat(((List<TestEntity.InnerEntity>) resultDataSet.get("entities")).get(1).getValueStr(), is("testname2"));
}
use of net.n2oapp.framework.api.metadata.global.dao.object.field.ObjectListField in project n2o-framework by i-novus-llc.
the class MappingProcessorTest method testEntityCollectionMapping.
private void testEntityCollectionMapping() {
// List
ObjectListField listParam = new ObjectListField();
listParam.setId("entities");
listParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity");
ObjectSimpleField childParam1 = new ObjectSimpleField();
childParam1.setId("id");
childParam1.setMapping("valueInt");
ObjectSimpleField childParam2 = new ObjectSimpleField();
childParam2.setId("name");
childParam2.setMapping("valueStr");
listParam.setFields(new AbstractParameter[] { childParam1, childParam2 });
DataSet innerDataSet1 = new DataSet();
innerDataSet1.put("id", 666);
innerDataSet1.put("name", "testStr1");
DataSet innerDataSet2 = new DataSet();
innerDataSet2.put("id", 777);
innerDataSet2.put("name", "testStr2");
List list = new ArrayList();
list.add(innerDataSet1);
list.add(innerDataSet2);
DataSet outerDataSetWithList = new DataSet();
outerDataSetWithList.put("entities", list);
MappingProcessor.mapParameter(listParam, outerDataSetWithList);
assert outerDataSetWithList.get("entities") instanceof List;
assert ((TestEntity.InnerEntity) ((List) outerDataSetWithList.get("entities")).get(0)).getValueInt().equals(666);
assert ((TestEntity.InnerEntity) ((List) outerDataSetWithList.get("entities")).get(0)).getValueStr().equals("testStr1");
assert ((TestEntity.InnerEntity) ((List) outerDataSetWithList.get("entities")).get(1)).getValueInt().equals(777);
assert ((TestEntity.InnerEntity) ((List) outerDataSetWithList.get("entities")).get(1)).getValueStr().equals("testStr2");
// Set
ObjectSetField setParam = new ObjectSetField();
setParam.setId("entities");
setParam.setEntityClass("net.n2oapp.framework.engine.util.TestEntity$InnerEntity");
childParam1 = new ObjectSimpleField();
childParam1.setId("id");
childParam1.setMapping("valueInt");
childParam2 = new ObjectSimpleField();
childParam2.setId("name");
childParam2.setMapping("valueStr");
setParam.setFields(new AbstractParameter[] { childParam1, childParam2 });
innerDataSet1 = new DataSet();
innerDataSet1.put("id", 666);
innerDataSet1.put("name", "testStr1");
innerDataSet2 = new DataSet();
innerDataSet2.put("id", 777);
innerDataSet2.put("name", "testStr2");
Set set = new HashSet();
set.add(innerDataSet1);
set.add(innerDataSet2);
DataSet outerDataSetWithSet = new DataSet();
outerDataSetWithSet.put("entities", set);
MappingProcessor.mapParameter(setParam, outerDataSetWithSet);
assert outerDataSetWithSet.get("entities") instanceof Set;
assert ((Set) outerDataSetWithSet.get("entities")).containsAll((List) outerDataSetWithList.get("entities"));
}
use of net.n2oapp.framework.api.metadata.global.dao.object.field.ObjectListField in project n2o-framework by i-novus-llc.
the class ActionRequestInfo method setOperation.
public void setOperation(CompiledObject.Operation operation) {
this.operation = operation;
if (operation.getInParametersMap() != null)
for (String paramId : operation.getInParametersMap().keySet()) {
AbstractParameter sourceParam = operation.getInParametersMap().get(paramId);
AbstractParameter param;
if (sourceParam instanceof ObjectSimpleField)
param = new ObjectSimpleField((ObjectSimpleField) sourceParam);
else if (sourceParam instanceof ObjectListField)
param = new ObjectListField((ObjectListField) sourceParam);
else if (sourceParam instanceof ObjectSetField)
param = new ObjectSetField((ObjectSetField) sourceParam);
else
param = new ObjectReferenceField((ObjectReferenceField) sourceParam);
inParametersMap.put(paramId, param);
}
if (operation.getOutParametersMap() != null)
for (String paramName : operation.getOutParametersMap().keySet()) {
ObjectSimpleField srcParam = operation.getOutParametersMap().get(paramName);
outParametersMap.put(paramName, new ObjectSimpleField(srcParam));
}
}
Aggregations