Esempio n. 1
0
        public async Task InsertQuizSuccess()
        {
            const int    userId    = 54;
            const string title     = "Quiz Title";
            const string intro     = "Quiz Intro";
            const int    passScore = 75;

            SaveQuizResult result    = null;
            Quiz           addedQuiz = null;

            using (var context = new QuizContext(ManagerTestHelper.Options))
            {
                var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>());

                result = await sut.InsertQuiz(userId, new Quiz
                {
                    Title     = title,
                    Intro     = intro,
                    PassScore = passScore
                });

                addedQuiz = await context.Quizes.FindAsync(result.Result);
            }

            Assert.AreEqual(SaveQuizResultStatus.Success, result.Status);
            Assert.AreEqual(title, addedQuiz.Title);
            Assert.AreEqual(intro, addedQuiz.Intro);
            Assert.AreEqual(passScore, addedQuiz.PassScore);
            Assert.AreEqual(1, addedQuiz.Version);
            Assert.AreEqual(QuizStatus.Current, addedQuiz.Status);
        }
Esempio n. 2
0
        public async Task UpdateQuizNotValid()
        {
            const int      userId = 54;
            SaveQuizResult result = null;

            using (var context = new QuizContext(ManagerTestHelper.Options))
            {
                var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>());

                var insertResult = await sut.InsertQuizInternalAsync(userId, new Quiz
                {
                    Title   = "",
                    Intro   = "",
                    Version = 1,
                    Status  = QuizStatus.Current
                });

                result = await sut.UpdateQuiz(userId, insertResult.QuizId, new Quiz
                {
                    Id             = insertResult.QuizId,
                    QuizIdentityId = insertResult.QuizIdentityId,
                    Version        = 1,
                    Status         = QuizStatus.Current,
                    PassScore      = -10
                });
            }

            Assert.AreEqual(SaveQuizResultStatus.GeneralError, result.Status);
        }
Esempio n. 3
0
        public async Task PostUpdateThrowsException()
        {
            const int userId     = 56;
            const int quizId     = 44;
            const int questionId = 154;
            var       question   = new Question
            {
                Id    = questionId,
                Body  = "Test",
                Level = 3,
                Type  = QuestionType.MultiSelect
            };

            var response = new SaveQuizResult
            {
                Result = 5,
                Status = SaveQuizResultStatus.Success
            };

            var questionManager = new Mock <IQuestionManager>();

            questionManager
            .Setup(c => c.UpdateQuestion(userId, quizId, questionId, question))
            .Returns(Task.FromResult(response));

            var sut = new QuestionsController(questionManager.Object);

            var result = await sut.PostUpdateQuestion(quizId, questionId, question);

            Assert.AreEqual(HttpStatusCode.OK, (HttpStatusCode)result.StatusCode);
        }
Esempio n. 4
0
        public async Task InsertQuizNull()
        {
            const int      userId = 54;
            SaveQuizResult result = null;

            using (var context = new QuizContext(ManagerTestHelper.Options))
            {
                var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>());

                result = await sut.InsertQuiz(userId, null);
            }

            Assert.AreEqual(SaveQuizResultStatus.GeneralError, result.Status);
        }
Esempio n. 5
0
        public async Task InsertQuizIdentityIdNotDefault()
        {
            const int      userId = 54;
            SaveQuizResult result = null;

            using (var context = new QuizContext(ManagerTestHelper.Options))
            {
                var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>());

                result = await sut.InsertQuiz(userId, new Quiz
                {
                    QuizIdentityId = 5
                });
            }

            Assert.AreEqual(SaveQuizResultStatus.NotAuthorized, result.Status);
        }
Esempio n. 6
0
        public async Task UpdateQuizIdNotAuthorized()
        {
            const int      userId = 54;
            const int      quizId = 134;
            SaveQuizResult result = null;

            using (var context = new QuizContext(ManagerTestHelper.Options))
            {
                var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>());

                result = await sut.UpdateQuiz(userId, quizId, new Quiz
                {
                    Id = quizId
                });
            }

            Assert.AreEqual(SaveQuizResultStatus.NotAuthorized, result.Status);
        }
Esempio n. 7
0
        public async Task PutInsertThrowsException()
        {
            const int userId   = 56;
            var       response = new SaveQuizResult
            {
                Result = 5,
                Status = SaveQuizResultStatus.Success
            };

            var quizManager = new Mock <IQuizManager>();

            quizManager.Setup(c => c.InsertQuiz(userId, It.IsAny <Quiz>()))
            .Returns(Task.FromResult(response));

            var sut = new QuizzesController(quizManager.Object);

            var result = await sut.PutInsertQuiz(new Quiz());

            Assert.AreEqual(HttpStatusCode.OK, (HttpStatusCode)result.StatusCode);
        }
Esempio n. 8
0
        public async Task UpdateQuizSuccess()
        {
            const int      userId      = 54;
            const string   title       = "Quiz Title";
            const string   intro       = "Quiz Intro";
            const int      passScore   = 75;
            SaveQuizResult result      = null;
            Quiz           updatedQuiz = null;

            using (var context = new QuizContext(ManagerTestHelper.Options))
            {
                var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>());

                var insertResult = await sut.InsertQuizInternalAsync(userId, new Quiz
                {
                    Title     = "",
                    Intro     = "",
                    Version   = 1,
                    Status    = QuizStatus.Current,
                    PassScore = 10
                });

                var quiz = await context.Quizes.FindAsync(insertResult.QuizId);

                quiz.Title     = title;
                quiz.Intro     = intro;
                quiz.PassScore = passScore;

                result = await sut.UpdateQuiz(userId, insertResult.QuizId, quiz);

                updatedQuiz = await context.Quizes.FindAsync(insertResult.QuizId);
            }

            Assert.AreEqual(SaveQuizResultStatus.Success, result.Status);
            Assert.AreEqual(title, updatedQuiz.Title);
            Assert.AreEqual(intro, updatedQuiz.Intro);
            Assert.AreEqual(passScore, updatedQuiz.PassScore);
            Assert.AreEqual(1, updatedQuiz.Version);
            Assert.AreEqual(QuizStatus.Current, updatedQuiz.Status);
        }
Esempio n. 9
0
        public async Task PostUpdate(int saveResult, SaveQuizResultStatus status, HttpStatusCode expectedResponse)
        {
            const int userId     = 56;
            const int quizId     = 44;
            const int questionId = 154;
            var       question   = new Question
            {
                Id    = questionId,
                Body  = "Test",
                Level = 3,
                Type  = QuestionType.MultiSelect
            };

            var response = new SaveQuizResult
            {
                Result = saveResult,
                Status = status
            };

            var questionManager = new Mock <IQuestionManager>();

            questionManager
            .Setup(c => c.UpdateQuestion(userId, quizId, questionId, question))
            .Returns(Task.FromResult(response));

            var sut = new QuestionsController(questionManager.Object);

            sut.Token = new AuthToken
            {
                Token      = "token",
                UserId     = userId,
                ValidUntil = DateTime.Now.AddDays(1),
                IsVerified = true
            };

            var result = await sut.PostUpdateQuestion(quizId, questionId, question);

            Assert.AreEqual(expectedResponse, (HttpStatusCode)result.StatusCode);
            Assert.IsTrue((HttpStatusCode)result.StatusCode != HttpStatusCode.OK || ((GenericWrapper <int>)result.Value).Value == saveResult);
        }
Esempio n. 10
0
        public async Task PutInsert(int saveResult, SaveQuizResultStatus status, HttpStatusCode expectedResponse)
        {
            const int userId = 56;
            var       quiz   = new Quiz
            {
                Title = "Test",
                Intro = "Intro"
            };

            var response = new SaveQuizResult
            {
                Result = saveResult,
                Status = status
            };

            var quizManager = new Mock <IQuizManager>();

            quizManager
            .Setup(c => c.InsertQuiz(userId, quiz))
            .Returns(Task.FromResult(response));

            var sut = new QuizzesController(quizManager.Object);

            sut.Token = new AuthToken
            {
                Token      = "token",
                UserId     = userId,
                ValidUntil = DateTime.Now.AddDays(1),
                IsVerified = true
            };

            var result = await sut.PutInsertQuiz(quiz);

            Assert.AreEqual(expectedResponse, (HttpStatusCode)result.StatusCode);
            Assert.IsTrue((HttpStatusCode)result.StatusCode != HttpStatusCode.OK || ((GenericWrapper <int>)result.Value).Value == saveResult);
        }