public async Task ShouldGetAllStudentExamsAsync() { // given int randomNumber = GetRandomNumber(); var randomStudentExams = new List <StudentExam>(); for (int i = 0; i < randomNumber; i++) { randomStudentExams.Add(await PostRandomStudentExamAsync()); } List <StudentExam> inputStudentExams = randomStudentExams; List <StudentExam> expectedStudentExams = inputStudentExams.ToList(); // when List <StudentExam> actualStudentExams = await this.otripleSApiBroker.GetAllStudentExamsAsync(); // then foreach (StudentExam expectedStudentExam in expectedStudentExams) { StudentExam actualStudentExam = actualStudentExams.Single(student => student.Id == expectedStudentExam.Id); actualStudentExam.Should().BeEquivalentTo(expectedStudentExam); await DeleteStudentExam(actualStudentExam); } }
public async Task ShouldRetrieveStudentExamByIdAsync() { // given Guid randomStudentExamId = Guid.NewGuid(); Guid inputStudentExamId = randomStudentExamId; DateTimeOffset randomDateTime = GetRandomDateTime(); StudentExam randomStudentExam = CreateRandomStudentExam(randomDateTime); StudentExam storageStudentExam = randomStudentExam; StudentExam expectedStudentExam = storageStudentExam; this.storageBrokerMock.Setup(broker => broker.SelectStudentExamByIdAsync(inputStudentExamId)) .ReturnsAsync(storageStudentExam); // when StudentExam actualStudentExam = await this.studentExamService.RetrieveStudentExamByIdAsync(inputStudentExamId); // then actualStudentExam.Should().BeEquivalentTo(expectedStudentExam); this.dateTimeBrokerMock.Verify(broker => broker.GetCurrentDateTime(), Times.Never); this.storageBrokerMock.Verify(broker => broker.SelectStudentExamByIdAsync(inputStudentExamId), Times.Once); this.dateTimeBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }
public async Task ShouldModifyStudentExamAsync() { // given int randomNumber = GetRandomNumber(); int randomDays = randomNumber; DateTimeOffset randomDate = GetRandomDateTime(); DateTimeOffset randomInputDate = GetRandomDateTime(); StudentExam randomStudentExam = CreateRandomStudentExam(randomInputDate); StudentExam inputStudentExam = randomStudentExam; StudentExam afterUpdateStorageStudentExam = inputStudentExam; StudentExam expectedStudentExam = afterUpdateStorageStudentExam; StudentExam beforeUpdateStorageStudentExam = randomStudentExam.DeepClone(); inputStudentExam.UpdatedDate = randomDate; Guid studentId = inputStudentExam.StudentId; Guid guardianId = inputStudentExam.ExamId; this.dateTimeBrokerMock.Setup(broker => broker.GetCurrentDateTime()) .Returns(randomDate); this.storageBrokerMock.Setup(broker => broker.SelectStudentExamByIdAsync(inputStudentExam.Id)) .ReturnsAsync(beforeUpdateStorageStudentExam); this.storageBrokerMock.Setup(broker => broker.UpdateStudentExamAsync(inputStudentExam)) .ReturnsAsync(afterUpdateStorageStudentExam); // when StudentExam actualStudentExam = await this.studentExamService.ModifyStudentExamAsync(inputStudentExam); // then actualStudentExam.Should().BeEquivalentTo(expectedStudentExam); this.dateTimeBrokerMock.Verify(broker => broker.GetCurrentDateTime(), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectStudentExamByIdAsync(inputStudentExam.Id), Times.Once); this.storageBrokerMock.Verify(broker => broker.UpdateStudentExamAsync(inputStudentExam), Times.Once); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); this.dateTimeBrokerMock.VerifyNoOtherCalls(); }
public async Task ShouldPostStudentExamAsync() { // given StudentExam randomStudentExam = await CreateRandomStudentExamAsync(); StudentExam inputStudentExam = randomStudentExam; StudentExam expectedStudentExam = inputStudentExam; // when StudentExam actualStudentExam = await this.otripleSApiBroker.PostStudentExamAsync(inputStudentExam); // then actualStudentExam.Should().BeEquivalentTo(expectedStudentExam); await DeleteStudentExam(actualStudentExam); }
public async Task ShouldPutStudentExamAsync() { // given StudentExam randomStudentExam = await PostRandomStudentExamAsync(); StudentExam modifiedStudentExam = await UpdateStudentExamRandomAsync(randomStudentExam); // when await this.otripleSApiBroker.PutStudentExamAsync(modifiedStudentExam); StudentExam actualStudentExam = await this.otripleSApiBroker.GetStudentExamByIdAsync(randomStudentExam.Id); // then actualStudentExam.Should().BeEquivalentTo(modifiedStudentExam); await DeleteStudentExam(actualStudentExam); }
public async Task ShouldDeleteStudentExamAsync() { // given StudentExam randomStudentExam = await PostRandomStudentExamAsync(); StudentExam inputStudentExam = randomStudentExam; StudentExam expectedStudentExam = inputStudentExam; // when StudentExam deletedStudentExam = await DeleteStudentExam(inputStudentExam); ValueTask <StudentExam> getStudentExamByIdTask = this.otripleSApiBroker.GetStudentExamByIdAsync(inputStudentExam.Id); // then deletedStudentExam.Should().BeEquivalentTo(expectedStudentExam); await Assert.ThrowsAsync <HttpResponseNotFoundException>(() => getStudentExamByIdTask.AsTask()); }
public async Task ShouldAddStudentStudentExamAsync() { // given DateTimeOffset randomDateTime = GetRandomDateTime(); DateTimeOffset dateTime = randomDateTime; StudentExam randomStudentExam = CreateRandomStudentExam(randomDateTime); randomStudentExam.UpdatedBy = randomStudentExam.CreatedBy; StudentExam inputStudentExam = randomStudentExam; StudentExam storageStudentExam = randomStudentExam; StudentExam expectedStudentExam = storageStudentExam; this.dateTimeBrokerMock.Setup(broker => broker.GetCurrentDateTime()) .Returns(dateTime); this.storageBrokerMock.Setup(broker => broker.InsertStudentExamAsync(inputStudentExam)) .ReturnsAsync(storageStudentExam); // when StudentExam actualStudentExam = await this.studentExamService.AddStudentExamAsync(inputStudentExam); // then actualStudentExam.Should().BeEquivalentTo(expectedStudentExam); this.dateTimeBrokerMock.Verify(broker => broker.GetCurrentDateTime(), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertStudentExamAsync(inputStudentExam), Times.Once); this.dateTimeBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); }