@Test(expected=IllegalArgumentException.class) public void mustThrowExceptionWhenNoExplicitDisplayNameAndNoBoundObject() { fixture.createChild().build(); }
@Test(expected=IllegalArgumentException.class) public void mustThrowExceptionWhenNoExplicitDisplayNameAndBoundObjectHasNoDisplayName() { final Lookup.Provider boundObject = mock(Lookup.Provider.class); when(boundObject.getLookup()).thenReturn(Lookup.EMPTY); fixture.createChild().boundTo(boundObject).build(); }
@Test public void aDefaultItemMustHaveAnId() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). build(); assertThat(item, is(notNullValue())); assertThat(item.getId(), is(notNullValue())); }
@Test public void aRenamableItemMustHaveAnId() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). thatCanBeRenamed(). build(); assertThat(item, is(notNullValue())); assertThat(item.getId(), is(notNullValue())); }
@Test public void mustUseTheDisplayableOfBoundObjectWhenNoExpicitDisplayableIsProvided() { final Displayable displayable = mock(Displayable.class); final Lookup lookup = Lookups.fixed(displayable); final Lookup.Provider boundObject = mock(Lookup.Provider.class); when(boundObject.getLookup()).thenReturn(lookup); final HItem item = fixture.createChild().boundTo(boundObject).build(); assertThat(item.as(Displayable), is(sameInstance(displayable))); }
@Test public void mustCreateItemsWithDifferentIds() { final List<Id> ids = new ArrayList<Id>(); for (int i = 0; i < 100; i++) { final HItem item = fixture.createChild(). withDisplayName("My Item " + i). build(); assertFalse(ids.contains(item.getId())); ids.add(item.getId()); } }
@Test public void aDefaultItemMustReturnTheRightView() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). build(); assertThat(item, is(notNullValue())); assertThat(item.getView(), is(sameInstance(fixture))); }
@Test public void aDefaultItemMustHaveTheCorrectName() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). build(); assertThat(item, is(notNullValue())); assertThat(item.as(Displayable).getDisplayName(), is("My Item 1")); }
@Test public void mustUseTheProvidedDisplayableEvenWhenTheBoundObjectHasGotExpicitDisplayable() { final Displayable displayable = mock(Displayable.class); final Lookup lookup = Lookups.fixed(displayable); final Lookup.Provider boundObject = mock(Lookup.Provider.class); when(boundObject.getLookup()).thenReturn(lookup); final HItem item = fixture.createChild().boundTo(boundObject).withDisplayName("new name").build(); assertThat(item.as(Displayable), is(not(sameInstance(displayable)))); assertThat(item.as(Displayable).getDisplayName(), is("new name")); }
@Test public void aRenamableItemMustReturnTheRightView() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). thatCanBeRenamed(). build(); assertThat(item, is(notNullValue())); assertThat(item.getView(), is(sameInstance(fixture))); }
@Test public void aRenamableItemMustHaveTheCorrectName() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). thatCanBeRenamed(). build(); assertThat(item, is(notNullValue())); assertThat(item.as(Displayable).getDisplayName(), is("My Item 1")); }
@Test(expected=AsException.class) public void aDefaultItemMustNotBeMovable() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). build(); item.as(Movable); }
@Test(expected=AsException.class) public void aDefaultItemMustNotBeCopiable() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). build(); item.as(Copiable); }
@Before public void setUp() { hViewManager = Locator.find(HViewManager); hViewManager.as(Resettable.class).reset(); hView = hViewManager.createView().withDisplayName("view 1").build(); hItems[0] = hView.createChild().withDisplayName("item 1").build(); hItems[1] = hView.createChild().withDisplayName("item 2").build(); hItems[2] = hView.createChild().withDisplayName("item 3").build(); }
@Test public void mustMakeTheBoundObjectAvailableInTheLookup() { final BoundObject boundObject = new BoundObject(); final HItem hItem = fixture.createChild().boundTo(boundObject).withDisplayName("name").build(); assertThat(hItem.getLookup().lookup(BoundObject.class), is(sameInstance(boundObject))); }
@Test public void aDefaultItemMustBeInitiallyEmpty() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). build(); assertThat(item.findChildren().count(), is(0)); }
@Test(expected=AsException.class) public void aRenamableItemMustNotBeMovable() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). thatCanBeRenamed(). build(); item.as(Movable); }
@Test public void aRenamableItemMustBeInitiallyEmpty() { final HItem item = fixture.createChild(). withDisplayName("My Item 1"). thatCanBeRenamed(). build(); assertThat(item.findChildren().count(), is(0)); }
@Test public void mustMakeTheBoundObjectAvailableAsAPersonality() { final BoundObject boundObject = new BoundObject(); final HItem hItem = fixture.createChild().boundTo(boundObject).withDisplayName("name").build(); assertThat(hItem.as(BoundObject.class), is(sameInstance(boundObject))); }
@Before public void setUp() { final HViewManager hvManager = new SimpleHViewManager(); final HView view = hvManager.createView().withDisplayName("View 1").build(); fixture = view.createChild().withDisplayName("Parent").build(); } }