public void Given_Test_When_NewTestIsAdded_Then_ShouldHaveOneTestInDatabase()
        {
            RunOnDatabase(context => {
                // ARRANGE
                context.Roles.Add(Role.Create("student"));
                context.SaveChanges();
                var userType = context.Roles.FirstOrDefault();

                if (userType != null)
                {
                    context.Users.Add(User.Create(
                                          "John",
                                          "Mark",
                                          "john.mar",
                                          "*****@*****.**",
                                          "password"
                                          )
                                      );
                }
                context.SaveChanges();

                var user = context.Users.FirstOrDefault();

                context.TestTypes.Add(TestType.Create("grila"));
                context.SaveChanges();

                var testType = context.TestTypes.FirstOrDefault();

                var testsRepository = new TestsRepository(context);
                if (user == null)
                {
                    return;
                }
                if (testType == null)
                {
                    return;
                }
                var test = Test.Create(
                    "mytest",
                    "descriere",
                    user.Id,
                    testType.Id
                    );
                var testInserted = testsRepository.InsertAsync(test).Result;
                // ACT
                var result = testsRepository.GetByIdAsync(testInserted.Id);
                // ASSERT
                result.Should().NotBe(null);
            });
        }
Esempio n. 2
0
        public async Task <ActionResult> CreateReview(Review review, Guid testsGuid)
        {
            ModelState.Remove("testsGuid");
            ModelState.Remove(nameof(Review.Id));
            ModelState.Remove(nameof(Review.Created));
            ModelState.Remove(nameof(Review.Creator));
            if (ModelState.IsValid)
            {
                TestsRepository testsRepo = new TestsRepository();
                var             testsTask = testsRepo.GetByIdAsync(testsGuid);

                ApplicationUserRepository <Tester> userRepo = new ApplicationUserRepository <Tester>();
                var testerTask = userRepo.GetByUserNameAsync(User.Identity.Name);

                review.Created = DateTime.Now;
                review.Creator = await testerTask;

                DataAccess.Model.Tests.Tests tests = await testsTask;

                tests.Test.Reviews.Add(review);

                tests.Test.CountRating();
                tests.Status = TestsStatus.Reviewed;

                ReviewRepository reviewRepo = new ReviewRepository();

                reviewRepo.Create(review);

                testsRepo.Update(tests);

                return(RedirectToAction("FinishedTests"));
            }

            ViewBag.TestsGuid = testsGuid;
            return(View("AddReview", review));
        }