Ejemplo n.º 1
0
        public void RewardTraining_UpdatesExisting()
        {
            int months = 24;
            var tester = RewardTrainingTestData.Create();
            var target = tester.AddCourse(new TrainingCourse {
                DisplayName = "Target", FullName = "Target Course", ValidMonths = months
            });
            var existing = new ComputedTrainingAward
            {
                Course    = target,
                Member    = tester.Member,
                Expiry    = DateTime.Today.AddDays(7),
                Completed = DateTime.Today.AddMonths(-months).AddDays(7)
            };

            tester.DatabaseRecords.Add(existing);
            tester.myAwards  = tester.DatabaseRecords.ToDictionary(f => f.Course.Id, f => f);
            tester.NewString = target.Id.ToString();

            bool result = tester.RunRewardTraining();

            Assert.IsTrue(result, "should have updated record");
            var record = tester.DatabaseRecords.Single();

            Assert.AreEqual(tester.Expiry, record.Expiry, "expirt");
        }
Ejemplo n.º 2
0
        public void RewardTraining_CourseNotFound()
        {
            var tester = RewardTrainingTestData.Create();

            tester.NewString = Guid.NewGuid().ToString();

            TestCalculator calc = new TestCalculator(tester.MockDB.Object);

            Assert.Throws <InvalidOperationException>(() => tester.RunRewardTraining());
        }
Ejemplo n.º 3
0
        public void RewardTraining_UseTargetsDefaultNoExpiry()
        {
            var tester = RewardTrainingTestData.Create();
            var target = tester.AddCourse(new TrainingCourse {
                DisplayName = "Target", FullName = "Target"
            });

            tester.NewString = string.Format("{0}:default", target.Id);

            bool result = tester.RunRewardTraining();

            Assert.IsTrue(result, "should have added record");
            var record = tester.DatabaseRecords.Single();

            Assert.IsFalse(record.Expiry.HasValue, "expiration");
        }
Ejemplo n.º 4
0
        public void RewardTraining_UseRuleExpiry()
        {
            int customMonths = 16;
            var tester       = RewardTrainingTestData.Create();
            var target       = tester.AddCourse(new TrainingCourse {
                DisplayName = "Target", FullName = "Target", ValidMonths = 13
            });

            tester.NewString = string.Format("{0}:{1}", target.Id, customMonths);

            bool result = tester.RunRewardTraining();

            Assert.IsTrue(result, "should have added record");
            var record = tester.DatabaseRecords.Single();

            Assert.AreEqual(tester.Completed.Value.AddMonths(customMonths), record.Expiry, "reward should use expiry specified by rule");
        }
Ejemplo n.º 5
0
        public void RewardTraining_UseTargetsDefaultExpiry()
        {
            int months = 35;
            var tester = RewardTrainingTestData.Create();
            var target = tester.AddCourse(new TrainingCourse {
                DisplayName = "Target", FullName = "Target Course With Expiry", ValidMonths = months
            });

            tester.NewString = string.Format("{0}:default", target.Id);

            bool result = tester.RunRewardTraining();

            Assert.IsTrue(result, "should have added a record");
            Assert.AreEqual(1, tester.DatabaseRecords.Count(), "expected awards count");
            var record = tester.DatabaseRecords.Single();

            Assert.AreEqual(tester.Completed.Value.AddMonths(months), record.Expiry, "resulting expiry");
        }
Ejemplo n.º 6
0
        public void RewardTraining_CourseWithExpiryGivesTwoCourses()
        {
            var tester = RewardTrainingTestData.Create();
            var source = tester.AddCourse(new TrainingCourse {
                DisplayName = "A", FullName = "Composite Source A", ValidMonths = 24
            });
            var resultA = tester.AddCourse(new TrainingCourse {
                DisplayName = "B", FullName = "Component Course B"
            });
            var resultB = tester.AddCourse(new TrainingCourse {
                DisplayName = "C", FullName = "Component Course C"
            });

            tester.NewString = string.Format("{0}+{1}", resultA.Id, resultB.Id);

            bool result = tester.RunRewardTraining();

            Assert.IsTrue(result, "should have indicated a new record");
            Assert.AreEqual(2, tester.DatabaseRecords.Count(), "expected awards count");
            Assert.IsTrue(tester.DatabaseRecords.Any(f => f.Completed == tester.Completed && f.Course == resultA && f.Member == tester.Member && f.Expiry == tester.Expiry));
            Assert.IsTrue(tester.DatabaseRecords.Any(f => f.Completed == tester.Completed && f.Course == resultB && f.Member == tester.Member && f.Expiry == tester.Expiry));
        }