use of com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PersonCreateView in project blaze-persistence by Blazebit.
the class EntityViewUpdateSimpleCreatableSubviewCollectionsTest method testUpdateWithPersonCreateView.
@Test
public void testUpdateWithPersonCreateView() {
final UpdatableDocumentWithCollectionsView docView = getDoc1View();
clearQueries();
// When
PersonCreateView personCreateView = evm.create(PersonCreateView.class);
personCreateView.setName("newPers");
docView.addPerson(personCreateView);
update(docView);
// Then
// Assert that only the document is loaded, as we don't need to load the old person
AssertStatementBuilder builder = assertUnorderedQuerySequence();
if (isQueryStrategy()) {
if (isFullMode()) {
assertReplaceAnd(builder);
}
} else {
if (isFullMode()) {
fullFetch(builder);
} else {
// builder.select(Document.class);
// Adding elements to a list requires full fetching
fullFetch(builder);
}
}
builder.insert(Person.class);
if (version || isFullMode() && isQueryStrategy()) {
builder.update(Document.class);
}
builder.insert(Document.class, "people").validate();
assertNoUpdateAndReload(docView, true);
assertEquals(doc1.getPeople().get(1).getId(), personCreateView.getId());
assertEquals("newPers", doc1.getPeople().get(1).getName());
assertSubviewEquals(doc1.getPeople(), docView.getPeople());
}
use of com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PersonCreateView in project blaze-persistence by Blazebit.
the class EntityViewUpdateSimpleCreatableSubviewMapsTest method testUpdateWithPersonCreateView.
@Test
public void testUpdateWithPersonCreateView() {
final UpdatableDocumentWithMapsView docView = getDoc1View();
clearQueries();
// When
PersonCreateView personCreateView = evm.create(PersonCreateView.class);
personCreateView.setName("newPers");
docView.addContact(2, personCreateView);
update(docView);
// Then
// Assert that only the document is loaded, as we don't need to load the old person
AssertStatementBuilder builder = assertUnorderedQuerySequence();
if (isQueryStrategy()) {
if (isFullMode()) {
builder.delete(Document.class, "contacts").insert(Document.class, "contacts");
}
} else {
// builder.select(Document.class);
// Adding elements to a list requires full fetching
fullFetch(builder);
}
builder.insert(Person.class);
if (version || isQueryStrategy() && isFullMode()) {
builder.update(Document.class);
}
builder.insert(Document.class, "contacts").validate();
assertNoUpdateAndReload(docView, true);
assertEquals(doc1.getContacts().get(2).getId(), personCreateView.getId());
assertEquals("newPers", doc1.getContacts().get(2).getName());
assertSubviewEquals(doc1.getContacts(), docView.getContacts());
}
use of com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PersonCreateView in project blaze-persistence by Blazebit.
the class EntityViewUpdateSimpleCreatableSubviewTest method testUpdateWithPersonCreateView.
@Test
public void testUpdateWithPersonCreateView() {
final UpdatableDocumentView docView = getDoc1View();
final Person oldResponsiblePerson = doc1.getResponsiblePerson();
clearQueries();
// When
PersonCreateView personCreateView = evm.create(PersonCreateView.class);
personCreateView.setName("newPers");
docView.setResponsiblePerson(personCreateView);
update(docView);
// Then
// Assert that only the document is loaded, as we don't need to load the old person
AssertStatementBuilder builder = assertUnorderedQuerySequence();
if (!isQueryStrategy()) {
if (isFullMode()) {
fullFetch(builder);
} else {
builder.select(Document.class);
}
}
builder.insert(Person.class).update(Document.class).validate();
assertNoUpdateAndReload(docView);
assertNotEquals(oldResponsiblePerson.getId(), doc1.getResponsiblePerson().getId());
Assert.assertEquals(doc1.getResponsiblePerson().getId(), personCreateView.getId());
assertEquals("newPers", doc1.getResponsiblePerson().getName());
}
Aggregations