### Question:
ItemsBuilder extends ItemsBuilderAbstraction { @Override public boolean isPossibleToCreateNextItem(DateTime currentDate, DateTime executionDate) { return getBuildingStrategy().isPossibleToCreateNextItem(currentDate, executionDate); }  @Override List<Item> getItems(DateTime currentDate, DateTime executionDate); @Override DateTime getNextAlarmDate(DateTime executionDate); @Override boolean isPossibleToCreateNextItem(DateTime currentDate, DateTime executionDate);  }### Answer:
@Test public void testIfIsPossibleToCreateNextItemForSleepNowStrategy() { itemsBuilder.setBuildingStrategy(new SleepNowBuildingStrategy()); assertTrue(itemsBuilder.isPossibleToCreateNextItem(getDateTime("05/02/2011 22:32"), getDateTime("05/02/2011 00:02"))); }
@Test public void testIfIsPossibleToCreateNextItemForWakeUpAtBuildingStrategy() { itemsBuilder.setBuildingStrategy(new WakeUpAtBuildingStrategy()); assertTrue(itemsBuilder.isPossibleToCreateNextItem(getDateTime("04/02/2011 18:30"), getDateTime("04/02/2011 23:00"))); assertTrue(itemsBuilder.isPossibleToCreateNextItem(getDateTime("04/02/2011 20:30"), getDateTime("05/02/2011 20:20"))); assertTrue(itemsBuilder.isPossibleToCreateNextItem(getDateTime("04/02/2011 00:30"), getDateTime("04/02/2011 02:30"))); assertTrue(itemsBuilder.isPossibleToCreateNextItem(getDateTime("04/02/2011 11:54"), getDateTime("04/02/2011 14:54"))); }
@Test public void testIfItsNotPossibleToCreateNextItemForWakeUpAtBuildingStrategy() { itemsBuilder.setBuildingStrategy(new WakeUpAtBuildingStrategy()); assertFalse(itemsBuilder.isPossibleToCreateNextItem(getDateTime("04/02/2011 20:30"), getDateTime("04/02/2011 20:20"))); assertFalse(itemsBuilder.isPossibleToCreateNextItem(getDateTime("04/02/2011 23:53"), getDateTime("05/02/2011 00:53"))); }