assertThat(sub.getName(), is("updated"));
}
@Test
public void testIfSubModelsAreUpdatedAlso_shouldUpdateParentAndSubModels() throws Exception {
TestModelDecorator model = getTestModelDecorator();
model.setEdbId("submodeltest/4");
List<Object> subs = new ArrayList<Object>();
SubModelDecorator sub = getSubModelDecorator();
sub.setName("test1");
sub.setEdbId("submodeltest/4/1");
subs.add(sub.getModel());
sub = getSubModelDecorator();
sub.setName("test2");
sub.setEdbId("submodeltest/4/2");
subs.add(sub.getModel());
model.setSubs(subs);
EKBCommit commit = getTestEKBCommit().addInsert(model.getModel());
persist.commit(commit);
subs.clear();
sub = getSubModelDecorator();
sub.setName("updatedtest1");
sub.setEdbId("submodeltest/4/1");
subs.add(sub.getModel());
sub = getSubModelDecorator();
sub.setName("updatedtest2");
sub.setEdbId("submodeltest/4/2");
subs.add(sub.getModel());
sub = getSubModelDecorator();
sub.setName("insertedtest3");
sub.setEdbId("submodeltest/4/3");
subs.add(sub.getModel());
model.setSubs(subs);
commit = getTestEKBCommit().addUpdate(model.getModel());
persist.commit(commit);
model = new TestModelDecorator(query.getModel(getTestModel(), getModelOid("submodeltest/4")));
assertThat(model.getModel(), notNullValue());
assertThat(model.getSubs(), notNullValue());
assertThat(model.getSubs().get(0), notNullValue());
assertThat(model.getSubs().get(1), notNullValue());
assertThat(model.getSubs().get(2), notNullValue());
sub = new SubModelDecorator(model.getSubs().get(0));
assertThat(sub.getName(), is("updatedtest1"));
sub = new SubModelDecorator(model.getSubs().get(1));
assertThat(sub.getName(), is("updatedtest2"));
sub = new SubModelDecorator(model.getSubs().get(2));
assertThat(sub.getName(), is("insertedtest3"));
sub = loadSubModel("submodeltest/4/1");
assertThat(sub.getName(), is("updatedtest1"));
sub = loadSubModel("submodeltest/4/2");
assertThat(sub.getName(), is("updatedtest2"));