public void RepeatedChecksGiveExpectedBehaviour() { var moodChangeEvery = 10; var startFrom = DateTime.Now; var actionStatus = new ActionStatus { LastAction = startFrom, LastChecked = startFrom, SatisfactionLevel = SatisfactionLevel.Neutral }; for (var i = 0; i <= 20; i++) { var compareWith = startFrom.AddSeconds(i); var mockTime = new Mock <ITimeService>(); mockTime.Setup(x => x.GetCurrentTime()).Returns(compareWith); var elapsedService = new ElapsedService(mockTime.Object); var satisfactionService = new SatisfactionService(elapsedService, mockTime.Object); actionStatus = satisfactionService.Check(actionStatus, moodChangeEvery); } actionStatus.SatisfactionLevel.Should().Be(SatisfactionLevel.VeryBad); }
public void DoesCalculateCorrectDifference() { var date1 = DateTime.Now; var date2 = date1.AddSeconds(_compareTime); var mockTime = new Mock <ITimeService>(); mockTime.Setup(x => x.GetCurrentTime()).Returns(date2); var elapseService = new ElapsedService(mockTime.Object); var difference = elapseService.GetElapsedTime(date1); ((int)difference.TotalSeconds).Should().Be(_compareTime); }
public void DragonAgesCorrectly() { const string name = "Logan"; var current = DateTime.Now; var compareWith = current.AddSeconds(_elapsedTime); var myDragon = Common.HatchDragon(name, current, new DragonAgeingOptions(_childAfter, _teenAfter, _adultAfter, _deadAfter)); var mockTime = new Mock <ITimeService>(); mockTime.Setup(x => x.GetCurrentTime()).Returns(compareWith); var elapsedService = new ElapsedService(mockTime.Object); var lifecycleService = new LifecycleService(elapsedService, mockTime.Object); myDragon = lifecycleService.Age(myDragon); myDragon.LifeStage.Should().Be(_expectedStage); }
public void MoodChangesAsExpected() { var startFrom = DateTime.Now; var compareWith = startFrom.AddSeconds(_secondsSinceLastInteraction); var mockTime = new Mock <ITimeService>(); mockTime.Setup(x => x.GetCurrentTime()).Returns(compareWith); var elapsedService = new ElapsedService(mockTime.Object); var satisfactionService = new SatisfactionService(elapsedService, mockTime.Object); var actionStatus = new ActionStatus { LastAction = startFrom, LastChecked = startFrom, SatisfactionLevel = _startLevel }; actionStatus = satisfactionService.Perform(actionStatus, _moodChangeEvery); actionStatus.SatisfactionLevel.Should().Be(_expectedLevel); // Check again, expect no change actionStatus.SatisfactionLevel.Should().Be(_expectedLevel); }