Ejemplo n.º 1
0
        public IActionResult CreateTest(CreateTestDTO newTest)
        {
            _logger.LogInformation("GET Test/CreateTest");
            User user = null;

            if (Get("user") != null)
            {
                Guid id = Guid.Parse(Get("user"));
                user = _userRepo.GetUser(id);
            }
            if (user == null || user.Role != "Teacher")
            {
                ViewData["LoggedIn"] = "false";
                return(RedirectToAction("Error"));
            }

            if (newTest.Name != "")
            {
                var teacher = _userRepo.GetUser(newTest.TeacherId);
                var test    = new Test(Guid.NewGuid(), newTest.Name, teacher);
                test.Tasks = new List <Task>();

                _testRepo.AddTest(test);
                return(RedirectToAction("ManageTasks", new { testId = test.Id }));
            }
            return(RedirectToAction("Error"));
        }
        public void Post_CreateTest_UserIsTeacher_TestNameIsValid_RedirectToManageTasks()
        {
            Guid id          = Guid.NewGuid();
            var  httpContext = new DefaultHttpContext();

            httpContext.Request.Headers.Add("Cookie", new CookieHeaderValue("user", id.ToString()).ToString());
            _controller.ControllerContext = new ControllerContext
            {
                HttpContext = httpContext
            };

            _mockUserRepo.Setup(repo => repo.GetUser(id))
            .Returns(new User()
            {
                Id       = id,
                Email    = "*****@*****.**",
                Password = "******",
                Role     = "Teacher"
            });

            var test = new CreateTestDTO
            {
                Name      = "sks",
                TaskCount = 0,
                TeacherId = id
            };
            var result   = _controller.CreateTest(test);
            var redirect = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("ManageTasks", redirect.ActionName);
        }
        public void Post_CreateTest_UserIsLogined_DoesNotExist_RedirectToError()
        {
            Guid id          = Guid.NewGuid();
            var  httpContext = new DefaultHttpContext();

            httpContext.Request.Headers.Add("Cookie", new CookieHeaderValue("user", id.ToString()).ToString());
            _controller.ControllerContext = new ControllerContext
            {
                HttpContext = httpContext
            };

            _mockUserRepo.Setup(repo => repo.GetUser(id))
            .Returns(null as User);

            var test = new CreateTestDTO
            {
                Name      = "Tets",
                TaskCount = 0,
                TeacherId = Guid.NewGuid()
            };
            var result   = _controller.CreateTest(test);
            var redirect = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Error", redirect.ActionName);
        }
        public void Post_CreateTest_UserIsNotLogined_RedirectToError()
        {
            var test = new CreateTestDTO
            {
                Name      = "Tets",
                TaskCount = 0,
                TeacherId = Guid.NewGuid()
            };
            var result = _controller.CreateTest(test);

            Assert.NotNull(result);
            var redirect = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Error", redirect.ActionName);
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> CreateTest(CreateTestDTO testModel)
        {
            var result = await _adminService.CreateTestAsync(testModel);

            if (result)
            {
                return(Ok());
            }
            else
            {
                return(Problem(
                           title: "Create test error.",
                           detail: "Error occured on new test. Try again.",
                           statusCode: 500));
            }
        }
Ejemplo n.º 6
0
        public async Task NewTestCanBeCreated(long catalogId, string testTitle)
        {
            var command = new CreateTestDTO()
            {
                OwnerId = TestUtils.OwnerId, Title = testTitle
            };

            var response = await client.PostAsync(EndpointName, command);

            AssertExt.EnsureSuccessStatusCode(response);

            var createdTestId = response.GetContent <long>().Value;
            var context       = factory.GetService <TestCreationDbContext>();
            var actualTest    = context.Tests.Find(createdTestId);

            AssertExt.AreEquivalent(command, actualTest);
        }
Ejemplo n.º 7
0
        public async Task <bool> CreateTestAsync(CreateTestDTO testModel)
        {
            if (string.IsNullOrEmpty(await _testRepository.GetTestNameAsync(testModel.TestName, testModel.ShortName)))
            {
                var test         = _mapper.Map <Test>(testModel);
                var testCategory = await _categoryRepository.GetCategoryByNameAsync(testModel.CategoryName);

                if (testCategory != null)
                {
                    test.Category = testCategory;
                    await _testRepository.AddAsync(test);
                }
                else
                {
                    return(false);
                }

                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 8
0
        public async Task <ActionResult <long> > CreateTest(CreateTestDTO createTest)
        {
            var result = await Send(createTest.CreateCommand());

            return(ActionResult(result));
        }