/******************************************************************************************************************* * ******************************************************************************************************************/ @Nonnull private void assertProperPresentationModel (final @Nonnull String indent, final @Nonnull PresentationModel pm, final @Nonnull MockDatum datum) { log.debug("assertProperPresentationModel() - {} {}, {}", new Object[] { indent, pm, datum }); pm.as(MockRole1.class); // must not throw AsException final MockRole2 role = pm.as(MockRole2.class); // must not throw AsException assertThat(role.getDatum(), is(sameInstance(datum))); final SimpleComposite<PresentationModel> composite = pm.as(SimpleComposite.class); final List<? extends PresentationModel> childrenPm = composite.findChildren().results(); final List<MockDatum> childrenData = datum.getChildren(); assertThat(childrenPm.size(), is(childrenData.size())); for (int i = 0; i < childrenPm.size(); i++) { assertProperPresentationModel(indent + " ", childrenPm.get(i), childrenData.get(i)); } } }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_create_a_PresentationModel_containing_the_proper_children() { final MockDatum c1 = new MockDatum("c1"); final MockDatum c2 = new MockDatum("c2"); final MockDatum c3 = new MockDatum("c3"); final MockDatum b1 = new MockDatum("b1").withChildren(c1, c2, c3); final MockDatum b2 = new MockDatum("b2"); final MockDatum b3 = new MockDatum("b3"); final MockDatum a = new MockDatum("a").withChildren(b1, b2, b3); final SimpleCompositePresentable<MockDatum> underTest = new SimpleCompositePresentable<>(a, new DefaultPresentationModelFactory()); final MockRole1 role1 = new MockRole1(); final MockRoleFactory roleFactory = new MockRoleFactory(); final PresentationModel pm = underTest.createPresentationModel(role1, roleFactory); assertProperPresentationModel("", pm, a); }