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); }); }
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)); }