@Test public void testUpdate_adjustsName() { givenAWorkerAndATaskRequiring(1000); givenTheWorkerIsWorkingOnTheTask(); whenOneHourOfGameTimeElapses(); assertNotEquals( "Name should have been updated", INITIAL_TASK_NAME, world.name.get(taskEntity.id)); }
@Test public void testUpdate_timeRemainingDecreasesWhenBeingWorkedOn() { final int initialSecondsRemaining = 1000; givenAWorkerAndATaskRequiring(initialSecondsRemaining); givenTheWorkerIsWorkingOnTheTask(); whenOneHourOfGameTimeElapses(); assertTrue( "Seconds remaining has decreased", world.secondsRemaining.get(taskEntity.id) < initialSecondsRemaining); }
@Test public void testUpdate_noChangeInTimeRemainingWhenNotBeingWorkedOn() { final int initialSecondsRemaining = 1000; givenAWorkerAndATaskRequiring(initialSecondsRemaining); whenOneHourOfGameTimeElapses(); assertEquals( "Time remaining should not have changed", initialSecondsRemaining, world.secondsRemaining.get(taskEntity.id)); }
@Test public void testUpdate_onCompleteIsCalledWhenComplete() { final int initialSecondsRemaining = ClockUtils.SECONDS_PER_HOUR; givenAWorkerAndATaskRequiring(initialSecondsRemaining); givenTheWorkerIsWorkingOnTheTask(); Runnable onComplete = mock(Runnable.class); taskEntity.add(world.onComplete); world.onComplete.set(taskEntity.id, onComplete); whenOneHourOfGameTimeElapses(); verify(onComplete, times(1)).run(); }