public async void PostProgressReport_PostsProgressReport() { using (var context = new RCCSContext(_contextOptions)) { //Arrange var createProgressReportController = new CreateProgressReportController(context); var createProgressViewModel = new CreateProgressReportViewModel { CPR = 2905891233, Title = "Progressreport title", Report = "Test report", ResponsibleCaretaker = "Me" }; //Act var progressReportViewModel = await createProgressReportController.PostProgressReport(createProgressViewModel); //Assert Assert.NotNull(progressReportViewModel); var actionResult = Assert.IsType <ActionResult <ProgressReport> >(progressReportViewModel); var createdAtActionResult = Assert.IsType <CreatedAtActionResult>(actionResult.Result); Assert.Equal("PostProgressReport", createdAtActionResult.ActionName); var progressReportCreated = Assert.IsType <ProgressReport>(createdAtActionResult.Value); Assert.True(createProgressViewModel.CPR.Equals(progressReportCreated.CitizenCPR)); Assert.True(createProgressViewModel.Title.Equals(progressReportCreated.Title)); Assert.True(createProgressViewModel.Report.Equals(progressReportCreated.Report)); Assert.True(createProgressViewModel.ResponsibleCaretaker.Equals(progressReportCreated.ResponsibleCaretaker)); } }
public async Task <ActionResult <ProgressReport> > PostProgressReport(CreateProgressReportViewModel cprvm) { ProgressReport progressReport = new ProgressReport { Date = DateTime.Now, Title = cprvm.Title, Report = cprvm.Report, ResponsibleCaretaker = cprvm.ResponsibleCaretaker, CitizenCPR = cprvm.CPR }; var citizen = await _context.Citizens .Include(c => c.CitizenOverview) .FirstOrDefaultAsync(c => c.CPR == cprvm.CPR); citizen.CitizenOverview.NumberOfReevaluations = citizen.CitizenOverview.NumberOfReevaluations + 1; _context.Entry(citizen).State = EntityState.Modified; await _context.ProgressReports.AddAsync(progressReport); try { await _context.SaveChangesAsync(); } catch (DbUpdateException e) { if (ProgressReportExists(progressReport.Id)) { return(Conflict()); } else { Console.WriteLine(e); throw; } } return(CreatedAtAction("PostProgressReport", new { id = progressReport.Date }, progressReport)); }