public async Task TranscriptCRUD_should_work_as_expected() { // Arrange: var receivedDateUtc = DateTime.UtcNow; var studentNumber = "AP-API-IT-2"; var studentName = "IntegrationTests-2, ApplicationPlanner.API"; var dob = "2000/01/01"; var transcript = new TranscriptModel { TranscriptId = 1000000, SchoolId = integrationTestSchoolId, StudentNumber = studentNumber, StudentName = studentName, DateOfBirth = dob, EmailAddress = "*****@*****.**", ReceivedDateUtc = receivedDateUtc, PortfolioId = 0, // unmatched this should be 0 LinkApprovedDateUTC = null, // unmatched this should be null EducatorId = 0, IsAutoLink = false, // unmatched this should be false IsAvailable = true, IsArchived = false }; // Reset await _sql.ExecuteAsync("DELETE FROM ApplicationPlanner.Transcript WHERE StudentNumber = @studentNumber", new { studentNumber }); await _sql.ExecuteAsync("DELETE FROM ApplicationPlanner.TranscriptLog WHERE StudentNumber = @studentNumber", new { studentNumber }); // Import a transcript and do not automatch it to the integration test student await _qaRepository.ImportTranscriptAsync(0, integrationTestSchoolId, studentNumber, studentName, dob, "*****@*****.**"); var justAddedTranscript = (await _transcriptRepository.GetTranscriptUnmatchedBySchoolIdAsync(integrationTestSchoolId)).SingleOrDefault(t => t.StudentNumber == studentNumber); // Act: // Delete and check if deleted + Get await _transcriptRepository.DeleteByIdAsync(justAddedTranscript.TranscriptId); var result = await _transcriptRepository.GetByIdAsync(justAddedTranscript.TranscriptId); Assert.IsTrue(result.IsAvailable == false); // Undo Delete and check if added back + Get await _transcriptRepository.DeleteUndoByIdAsync(justAddedTranscript.TranscriptId); result = await _transcriptRepository.GetByIdAsync(justAddedTranscript.TranscriptId); Assert.IsTrue(result.IsAvailable == true); Assert.AreEqual(justAddedTranscript.TranscriptId, result.TranscriptId); Assert.AreEqual(transcript.SchoolId, result.SchoolId); Assert.AreEqual(transcript.StudentNumber, result.StudentNumber); Assert.AreEqual(transcript.StudentName, result.StudentName); Assert.AreEqual(transcript.DateOfBirth, result.DateOfBirth); Assert.AreEqual(transcript.EmailAddress, result.EmailAddress); Assert.IsTrue(transcript.ReceivedDateUtc != null); Assert.AreEqual(transcript.PortfolioId, result.PortfolioId); Assert.AreEqual(transcript.LinkApprovedDateUTC, result.LinkApprovedDateUTC); Assert.AreEqual(transcript.EducatorId, result.EducatorId); Assert.AreEqual(transcript.IsAutoLink, result.IsAutoLink); Assert.AreEqual(transcript.IsArchived, result.IsArchived); }