public void ShouldAwardAchievementsForAnActivity() { _repository.Save(new Achievement() { TriggerCount = 1, TargetActivityTypeName = typeof(BrokenBuild).FullName }); AchievementGenerator generator = new AchievementGenerator(_calculators); Activity activity = new BrokenBuild() { Developer = _developer }; _developer.History.Add(activity); generator.GenerateAchievements(activity); AwardedAchievement awardedAchievement = _repository.Query<AwardedAchievement>().Single(); Assert.That(awardedAchievement, Is.Not.Null); }
public void ShouldAwardAccumulatedAchievementsForActivities() { const int triggerCount = 5; _repository.Save(new Achievement() { TriggerCount = triggerCount, TargetActivityTypeName = typeof(BrokenBuild).FullName }); AchievementGenerator generator = new AchievementGenerator(_calculators); // Add enough history so that the next one will trigger the accumulator for (int i = 0; i < triggerCount - 1; i++) { _developer.History.Add(new BrokenBuild() { Developer = _developer }); } Activity activity = new BrokenBuild() { Developer = _developer }; _developer.History.Add(activity); generator.GenerateAchievements(activity); AwardedAchievement awardedAchievement = _repository.Query<AwardedAchievement>().Single(); Assert.That(awardedAchievement, Is.Not.Null); }
public void ShouldNotAwardAccumulatedAchievementsForActivitiesThatDontMeetTheTriggerCount() { const int triggerCount = 5; _repository.Save(new Achievement() { TriggerCount = triggerCount, TargetActivityTypeName = typeof(BrokenBuild).FullName }); AchievementGenerator generator = new AchievementGenerator(_calculators); // No developer history - the next Activity will be the first _developer.History.Clear(); Activity activity = new BrokenBuild() { Developer = _developer }; _developer.History.Add(activity); generator.GenerateAchievements(activity); AwardedAchievement awardedAchievement = _repository.Query<AwardedAchievement>().SingleOrDefault(); Assert.That(awardedAchievement, Is.Null); }