@Test @InSequence(3) public void shouldChangeCurrentRevision() throws Exception { transaction.begin(); entityManager.joinTransaction(); Document document = entityManager.find(Document.class, Long.valueOf(1)); assertNotNull(document); assertEquals(1, document.getContentList().size()); Content content = document.getContentList().get(0); assertNotNull(content); ContentRevision revision = content.getCurrent(); assertNotNull(revision); assertEquals(2, content.getRevisionList().size()); assertSame(revision, content.getRevisionList().get(1)); revision.setTextData("CHANGED"); document = entityManager.merge(document); content = document.getContentList().get(0); revision = content.getCurrent(); assertSame(revision, content.getRevisionList().get(1)); assertEquals("CHANGED", revision.getTextData()); transaction.commit(); }
@Test @InSequence(1) public void shouldLoadContentAndRevision() throws Exception { Content content = entityManager.find(Content.class, Long.valueOf(1)); assertNotNull("should have found content #1", content); // same checks as before: assertNotNull("content should have current revision", content.getCurrent()); assertSame("content should be same as revision's parent", content, content.getCurrent().getContent()); assertEquals("content should have 1 revision", 1, content.getRevisionList().size()); assertSame("the list should contain same reference", content.getCurrent(), content.getRevisionList().get(0)); }
ContentRevision revision = content.getCurrent(); assertNotNull(revision); assertEquals(2, content.getRevisionList().size()); assertSame(revision, content.getRevisionList().get(1)); transaction.commit(); assertSame(revision, content.getRevisionList().get(1)); assertEquals("CHANGED2", revision.getTextData());
@Test @InSequence(2) public void shouldAddAnotherRevision() throws Exception { transaction.begin(); entityManager.joinTransaction(); Content content = entityManager.find(Content.class, Long.valueOf(1)); ContentRevision revision = content.addRevision("My second revision"); entityManager.persist(revision); content.setCurrent(revision); transaction.commit(); // re-load and validate: content = entityManager.find(Content.class, Long.valueOf(1)); // same checks as before: assertNotNull("content should have current revision", content.getCurrent()); assertSame("content should be same as revision's parent", content, content.getCurrent().getContent()); assertEquals("content should have 2 revisions", 2, content.getRevisionList().size()); assertSame("the list should contain same reference", content.getCurrent(), content.getRevisionList().get(1)); }