예제 #1
0
        public void TestBlueDistinctionPlusAwardProcessUpdate()
        {
            //Arrange
            BlueDistinctionPlusAward award = new BlueDistinctionPlusAward(10);

            //Act
            award.ProcessUpdate();

            //Assert
            Assert.AreEqual(award.ExpiresIn, 10);
            Assert.AreEqual(award.Quality, 80);
            Assert.AreEqual(award.ToString(), "Award Name: Blue Distinction Plus, Expires In: 10, Quality: 80");
        }
        public void Algorithm_ConstantQuality()
        {
            var    algo  = new ConstantQualityAlgorithm();
            IAward award = new BlueDistinctionPlusAward(TimeSpan.FromDays(0));

            var originalQuality = award.Quality;

            for (var i = 0; i < 50; i++)
            {
                award = algo.Run(award);
                Assert.AreEqual(originalQuality, award.Quality,
                                $"Quality changed from '{originalQuality}' to '{award.Quality}' on iteration '{i}'");
            }
        }
        public void Award_BlueDistinctionPlus()
        {
            IAward award = new BlueDistinctionPlusAward(TimeSpan.FromDays(1));
            var    algo  = award.UpdateAlgorithm;

            Assert.IsFalse(award.IsExpired);
            Assert.IsTrue(award.IsNotExpired);
            Assert.AreEqual(80, award.Quality);

            award.IncrementDay();
            award = algo.Run(award);
            Assert.AreEqual(80, award.Quality);
            Assert.IsFalse(award.IsExpired);
            Assert.IsTrue(award.IsNotExpired);

            award.IncrementDay();
            award = algo.Run(award);
            Assert.AreEqual(80, award.Quality);
            Assert.IsTrue(award.IsExpired);
            Assert.IsFalse(award.IsNotExpired);
        }