Exemplo n.º 1
0
        public int Update_ModifiedDownPass_StatDownCorrectly(int statDownPass, int downPassRoll)
        {
            // ARRANGE

            const int STAT_RATE              = 1;
            const int MIN_STAT_VALUE         = 0;
            const int MAX_STAT_VALUE         = 1;
            const int START_STAT_VALUE       = MAX_STAT_VALUE;
            const SurvivalStatType STAT_TYPE = SurvivalStatType.Satiety;

            var survivalRandomSourceMock = new Mock <ISurvivalRandomSource>();

            survivalRandomSourceMock.Setup(x => x.RollSurvival(It.IsAny <SurvivalStat>()))
            .Returns(downPassRoll);
            var survivalRandomSource = survivalRandomSourceMock.Object;

            var survivalStats = new SurvivalStat[] {
                new SurvivalStat(START_STAT_VALUE, MIN_STAT_VALUE, MAX_STAT_VALUE)
                {
                    Type         = STAT_TYPE,
                    Rate         = STAT_RATE,
                    DownPassRoll = statDownPass
                }
            };

            var survivalData = new HumanSurvivalData(_personScheme,
                                                     survivalStats,
                                                     survivalRandomSource);

            // ACT
            survivalData.Update();

            // ASSERT
            return(survivalStats[0].Value);
        }
        public void Update_StatNearKeyPoint_RaiseEventWithCorrectValues()
        {
            // ARRANGE
            const SurvivalStatType STAT_TYPE = SurvivalStatType.Satiety;

            const int MIN_STAT_VALUE   = 0;
            const int MAX_STAT_VALUE   = 1;
            const int START_STAT_VALUE = MAX_STAT_VALUE;

            const int LESSER_SURVIVAL_STAT_KEYPOINT = 0;
            const SurvivalStatHazardLevel LESSER_SURVIVAL_STAT_KEYPOINT_TYPE = SurvivalStatHazardLevel.Lesser;

            const int STAT_RATE = 1;

            const int EXPECTED_SURVIVAL_STAT_KEYPOINT = LESSER_SURVIVAL_STAT_KEYPOINT;

            const int FAKE_ROLL_SURVIVAL_RESULT = 6;

            var survivalRandomSourceMock = new Mock <ISurvivalRandomSource>();

            survivalRandomSourceMock.Setup(x => x.RollSurvival(It.IsAny <SurvivalStat>()))
            .Returns(FAKE_ROLL_SURVIVAL_RESULT);
            var survivalRandomSource = survivalRandomSourceMock.Object;

            var survivalStats = new SurvivalStat[] {
                new SurvivalStat(START_STAT_VALUE, MIN_STAT_VALUE, MAX_STAT_VALUE)
                {
                    Type      = STAT_TYPE,
                    Rate      = STAT_RATE,
                    KeyPoints = new[] {
                        new SurvivalStatKeyPoint(
                            LESSER_SURVIVAL_STAT_KEYPOINT_TYPE,
                            LESSER_SURVIVAL_STAT_KEYPOINT)
                    }
                }
            };

            var survivalData = new HumanSurvivalData(_personScheme,
                                                     survivalStats,
                                                     survivalRandomSource);



            // ACT
            using (var monitor = survivalData.Monitor())
            {
                survivalData.Update();



                // ASSERT
                monitor.Should().Raise(nameof(ISurvivalData.StatCrossKeyValue))
                .WithArgs <SurvivalStatChangedEventArgs>(args =>
                                                         args.Stat.Type == STAT_TYPE &&
                                                         args.KeyPoints.FirstOrDefault().Level == LESSER_SURVIVAL_STAT_KEYPOINT_TYPE &&
                                                         args.KeyPoints.FirstOrDefault().Value == EXPECTED_SURVIVAL_STAT_KEYPOINT);
            }
        }
Exemplo n.º 3
0
        private ISurvivalData CreateSurvivalData()
        {
            var survivalData = new HumanSurvivalData(_personScheme, _survivalRandomSource);

            return(survivalData);
        }