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);
        }
Esempio n. 3
0
        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);
        }