Example #1
0
        public void EvaluatesOnEvaluationUpdated()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("EvaluatesOnEvaluationUpdated");
            var user = Helpers.GetOrCreateUser("EvaluatesOnEvaluationUpdated");

            SessionTracker.StartSession(game.Id, user.Id);

            var evaluation = Helpers.CreateGenericAchievement("EvaluatesOnEvaluationUpdated", game.Id);

            Helpers.CreateGenericAchievementGameData(evaluation, user.Id);

            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            if (progress?.ContainsKey(user.Id) == true)
            {
                Assert.False(progress[user.Id].Any(kvp => kvp.Key.Id == evaluation.Id));    // Make sure the evaluation wasn't returned when it wasn't completed
            }

            // Act
            foreach (var criteria in evaluation.EvaluationCriterias)
            {
                criteria.Value = $"{50}";
            }

            ControllerLocator.EvaluationController.Update(evaluation);

            // Assert
            progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            foreach (var actorProgress in progress.Values)
            {
                actorProgress.Values.ToList().ForEach(val => Assert.Equal(1, val));
            }
        }
 public OperationEvaluationContext(WorkbookEvaluator bookEvaluator, IEvaluationWorkbook workbook, int sheetIndex, int srcRowNum,
                                   int srcColNum, EvaluationTracker tracker)
 {
     _bookEvaluator = bookEvaluator;
     _workbook      = workbook;
     _sheetIndex    = sheetIndex;
     _rowIndex      = srcRowNum;
     _columnIndex   = srcColNum;
     _tracker       = tracker;
 }
Example #3
0
        public void NoEvaluationWhenNoSession()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("NoEvaluationWhenNoSession");
            var user = Helpers.GetOrCreateUser("NoEvaluationWhenNoSession");

            Helpers.CreateAndCompleteGenericAchievement("NoEvaluationWhenNoSession", user.Id, game.Id);

            // Act
            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            // Assert
            Assert.Equal(0, progress.Count);
        }
Example #4
0
        public void EvaluatesOnSessionStarted()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("EvaluatesOnSessionStarted");
            var user = Helpers.GetOrCreateUser("EvaluatesOnSessionStarted");

            var evaluation = Helpers.CreateAndCompleteGenericAchievement("EvaluatesOnSessionStarted", user.Id, game.Id);

            // Act
            SessionTracker.StartSession(game.Id, user.Id);

            // Assert
            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            Assert.True(progress.ContainsKey(user.Id));                                          // should have evalauted for this user
            Assert.True(progress[user.Id].Any(kvp => kvp.Key.Id == evaluation.Id));              // Should have returned the progress for the evaluation
            Assert.Equal(1, progress[user.Id].Single(kvp => kvp.Key.Id == evaluation.Id).Value); //Completed evaluation should have progress value of 1
        }
Example #5
0
        public void NoEvaluationWhenNotComplete()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("NoEvaluationWhenNotComplete");
            var user = Helpers.GetOrCreateUser("NoEvaluationWhenNotComplete");

            var evaluation = Helpers.CreateGenericAchievement("NoEvaluationWhenNotComplete", game.Id);

            Helpers.CreateGenericAchievementGameData(evaluation, user.Id);

            // Act
            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            // Assert
            if (progress.ContainsKey(user.Id))
            {
                Assert.False(progress[user.Id].Any(p => p.Key.Id == evaluation.Id));
            }
        }
Example #6
0
        public void EvaluatesOnEvaluationDataAdded()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("EvaluatesOnEvaluationDataAdded");
            var user = Helpers.GetOrCreateUser("EvaluatesOnEvaluationDataAdded");

            SessionTracker.StartSession(game.Id, user.Id);

            var evaluation = Helpers.CreateGenericAchievement("EvaluatesOnEvaluationDataAdded", game.Id);

            var gameDatas = Helpers.ComposeAchievementGameDatas(user.Id, evaluation, "100");

            // Act
            gameDatas.ForEach(g => ControllerLocator.GameDataController.Add(g));

            // Assert
            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            Assert.True(progress.ContainsKey(user.Id));                             // should have evalauted for this user
            Assert.True(progress[user.Id].Any(kvp => kvp.Key.Id == evaluation.Id)); // Should have returned the progress for the evaluation
        }
Example #7
0
        public void RemovesOnSessionEnded()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("RemovesOnSessionEnded");
            var user = Helpers.GetOrCreateUser("RemovesOnSessionEnded");

            Helpers.CreateAndCompleteGenericAchievement("RemovesOnSessionEnded", user.Id, game.Id);

            var session = SessionTracker.StartSession(game.Id, user.Id);

            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            Assert.True(progress.ContainsKey(user.Id)); // should have evalauted for this user

            // Act
            SessionTracker.EndSession(session.Id);

            // Assert
            progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);
            Assert.False(progress.ContainsKey(user.Id)); // Shouldn't have any progress for this user
        }
Example #8
0
        public void DoesntGetAlreadyRecievedNotifications()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("DoesntGetAlreadyRecievedNotifications");
            var user = Helpers.GetOrCreateUser("DoesntGetAlreadyRecievedNotifications");

            SessionTracker.StartSession(game.Id, user.Id);

            var evaluation = Helpers.CreateAndCompleteGenericAchievement("DoesntGetAlreadyRecievedNotifications", user.Id, game.Id);
            var progress   = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            Helpers.CompleteGenericAchievement(evaluation, game.Id);
            // Act
            progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            // Assert
            if (progress.ContainsKey(user.Id))
            {
                Assert.False(progress[user.Id].Any(p => p.Key.Id == evaluation.Id));
            }
        }
Example #9
0
        public void RemovesProgressWhenGotten()
        {
            // Arrange
            var game = Helpers.GetOrCreateGame("RemovesProgressWhenGotten");
            var user = Helpers.GetOrCreateUser("RemovesProgressWhenGotten");

            SessionTracker.StartSession(game.Id, user.Id);

            var evaluation = Helpers.CreateAndCompleteGenericAchievement("RemovesProgressWhenGotten", user.Id, game.Id);

            // Act
            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            // Assert
            progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            if (progress.ContainsKey(user.Id))
            {
                Assert.False(progress[user.Id].Any(p => p.Key.Id == evaluation.Id));
            }
        }
Example #10
0
        public void RemovesProgressOnEvaluationDeleted()
        {
            // Arange
            var game = Helpers.GetOrCreateGame("RemovesProgressOnEvaluationDeleted");
            var user = Helpers.GetOrCreateUser("RemovesProgressOnEvaluationDeleted");

            SessionTracker.StartSession(game.Id, user.Id);

            var evaluation = Helpers.CreateAndCompleteGenericAchievement("RemovesProgressOnEvaluationDeleted", user.Id, game.Id);

            // Act
            ControllerLocator.EvaluationController.Delete(evaluation.Token, game.Id, EvaluationType.Achievement);

            // Assert
            var progress = EvaluationTracker.GetPendingNotifications(game.Id, user.Id);

            // Make sure that there are no instances of the evaluation in the progress
            foreach (var actorProgress in progress)
            {
                Assert.False(actorProgress.Value.Any(kvp => kvp.Key.Id == evaluation.Id));
            }
        }
Example #11
0
 public WrapResponseFilter(EvaluationTracker evaluationTracker)
 {
     _evaluationTracker = evaluationTracker;
 }
 protected EvaluationsController(Core.Controllers.EvaluationController evaluationCoreController, EvaluationTracker evaluationTracker, IAuthorizationService authorizationService)
 {
     EvaluationCoreController = evaluationCoreController;
     _evaluationTracker       = evaluationTracker;
     _authorizationService    = authorizationService;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="evaluationCoreController"></param>
 /// <param name="evaluationTracker"></param>
 /// <param name="authorizationService"></param>
 public AchievementsController(EvaluationController evaluationCoreController, EvaluationTracker evaluationTracker, IAuthorizationService authorizationService) : base(evaluationCoreController, evaluationTracker, authorizationService)
 {
 }
Example #14
0
 public SkillsController(Core.Controllers.EvaluationController evaluationCoreController, EvaluationTracker evaluationTracker, IAuthorizationService authorizationService)
     : base(evaluationCoreController, evaluationTracker, authorizationService)
 {
 }
 protected EvaluationTestsBase()
 {
     ProgressEvaluator = new ProgressEvaluator(ControllerLocator.EvaluationController);
     EvaluationTracker = new EvaluationTracker(ProgressEvaluator, ControllerLocator.EvaluationController, SessionTracker);
 }