コード例 #1
0
        public async Task Download_ShouldRedirectToCourseIndex_GivenInvalidUser()
        {
            // Arrange
            var userManager = UserManagerMock.GetMock;

            userManager.GetUserId(null);

            var controller = new ExamsController(
                userManager.Object,
                cloudinaryService: null,
                courseService: null,
                examService: null)
            {
                TempData = TempDataMock.GetMock
            };

            using (controller)
            {
                // Act
                var result = await controller.Download(TestExamId);

                // Assert
                controller.TempData.AssertErrorMsg(WebConstants.InvalidUserMsg);

                this.AssertRedirectToCoursesIndex(result);

                userManager.Verify();
            }
        }
コード例 #2
0
        public async Task Download_ShouldRedirectToCourseIndex_GivenUserIsNotTrainerOrEnrolledStudent()
        {
            // Arrange
            var userManager = UserManagerMock.GetMock;

            userManager.GetUserId(TestUserId);

            var examService = ExamServiceMock.GetMock;

            examService.CanBeDownloadedByUser(false);

            var controller = new ExamsController(
                userManager.Object,
                cloudinaryService: null,
                courseService: null,
                examService.Object)
            {
                TempData = TempDataMock.GetMock
            };

            using (controller)
            {
                // Act
                var result = await controller.Download(TestExamId);

                // Assert
                controller.TempData.AssertErrorMsg(WebConstants.ExamDownloadUnauthorizedMsg);

                this.AssertRedirectToCoursesIndex(result);

                userManager.Verify();
                examService.Verify();
            }
        }
コード例 #3
0
        public async Task Download_ShouldRedirectToUrl_GivenValidInput()
        {
            // Arrange
            var userManager = UserManagerMock.GetMock;

            userManager.GetUserId(TestUserId);

            var examService = ExamServiceMock.GetMock;

            examService
            .CanBeDownloadedByUser(true)
            .GetDownloadUrlAsync(FileUrl);

            var controller = new ExamsController(
                userManager.Object,
                cloudinaryService: null,
                courseService: null,
                examService.Object);

            using (controller)
            {
                // Act
                var result = await controller.Download(TestExamId);

                // Assert
                var redirectResult = Assert.IsType <RedirectResult>(result);
                Assert.Equal(FileUrl, redirectResult.Url);

                userManager.Verify();
                examService.Verify();
            }
        }