public async Task ShouldRetrieveSemesterCourseByIdAsync()
        {
            // given
            Guid           randomSemesterCourseId = Guid.NewGuid();
            Guid           inputSemesterCourseId  = randomSemesterCourseId;
            DateTimeOffset randomDateTime         = GetRandomDateTime();
            SemesterCourse randomSemesterCourse   = CreateRandomSemesterCourse(randomDateTime);
            SemesterCourse storageSemesterCourse  = randomSemesterCourse;
            SemesterCourse expectedSemesterCourse = storageSemesterCourse;

            this.storageBrokerMock.Setup(broker =>
                                         broker.SelectSemesterCourseByIdAsync(inputSemesterCourseId))
            .ReturnsAsync(storageSemesterCourse);

            // when
            SemesterCourse actualSemesterCourse =
                await this.semesterCourseService.RetrieveSemesterCourseByIdAsync(inputSemesterCourseId);

            // then
            actualSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);

            this.dateTimeBrokerMock.Verify(broker =>
                                           broker.GetCurrentDateTime(),
                                           Times.Never);

            this.storageBrokerMock.Verify(broker =>
                                          broker.SelectSemesterCourseByIdAsync(inputSemesterCourseId),
                                          Times.Once);

            this.dateTimeBrokerMock.VerifyNoOtherCalls();
            this.storageBrokerMock.VerifyNoOtherCalls();
            this.storageBrokerMock.VerifyNoOtherCalls();
        }
        public async Task ShouldGetAllSemesterCoursesAsync()
        {
            // given
            List <SemesterCourse> randomSemesterCourses = new List <SemesterCourse>();

            for (int i = 0; i <= GetRandomNumber(); i++)
            {
                randomSemesterCourses.Add(await PostRandomSemesterCourseAsync());
            }

            List <SemesterCourse> inputSemesterCourses    = randomSemesterCourses.ToList();
            List <SemesterCourse> expectedSemesterCourses = inputSemesterCourses.ToList();

            // when
            List <SemesterCourse> actualSemesterCourses =
                await this.otripleSApiBroker.GetAllSemesterCoursesAsync();

            // then
            foreach (SemesterCourse expectedSemesterCourse in expectedSemesterCourses)
            {
                SemesterCourse actualSemesterCourse =
                    actualSemesterCourses.Single(semesterCourse =>
                                                 semesterCourse.Id == expectedSemesterCourse.Id);

                SemesterCourse expectedReturnedCourse = CreateExpectedSemesterCourse(expectedSemesterCourse);
                actualSemesterCourse.Should().BeEquivalentTo(expectedReturnedCourse);
                await DeleteSemesterCourseAsync(actualSemesterCourse);
            }
        }
Пример #3
0
        public async Task ShouldGetAllSemesterCoursesAsync()
        {
            // given
            IEnumerable <SemesterCourse> randomSemesterCourses = CreateRandomSemesterCourses();
            List <SemesterCourse>        inputSemesterCourses  = randomSemesterCourses.ToList();

            foreach (SemesterCourse semesterCourse in inputSemesterCourses)
            {
                await this.otripleSApiBroker.PostSemesterCourseAsync(semesterCourse);
            }

            List <SemesterCourse> expectedSemesterCourses = inputSemesterCourses.ToList();

            // when
            List <SemesterCourse> actualSemesterCourses =
                await this.otripleSApiBroker.GetAllSemesterCoursesAsync();

            // then
            foreach (SemesterCourse expectedSemesterCourse in expectedSemesterCourses)
            {
                SemesterCourse actualSemesterCourse =
                    actualSemesterCourses.Single(semesterCourse =>
                                                 semesterCourse.Id == expectedSemesterCourse.Id);

                SemesterCourse expectedReturnedCourse = CreateExpectedSemesterCourse(expectedSemesterCourse);
                actualSemesterCourse.Should().BeEquivalentTo(expectedReturnedCourse);
                await this.otripleSApiBroker.DeleteSemesterCourseByIdAsync(actualSemesterCourse.Id);
            }
        }
        public async Task ShouldModifySemesterCourseAsync()
        {
            // given
            int            randomNumber                      = GetRandomNumber();
            int            randomDays                        = randomNumber;
            DateTimeOffset randomDate                        = GetRandomDateTime();
            DateTimeOffset randomInputDate                   = GetRandomDateTime();
            SemesterCourse randomSemesterCourse              = CreateRandomSemesterCourse(randomInputDate);
            SemesterCourse inputSemesterCourse               = randomSemesterCourse;
            SemesterCourse afterUpdateStorageSemesterCourse  = inputSemesterCourse;
            SemesterCourse expectedSemesterCourse            = afterUpdateStorageSemesterCourse;
            SemesterCourse beforeUpdateStorageSemesterCourse = randomSemesterCourse.DeepClone();

            inputSemesterCourse.UpdatedDate = randomDate;
            Guid semesterCourseId = inputSemesterCourse.Id;

            this.dateTimeBrokerMock.Setup(broker =>
                                          broker.GetCurrentDateTime())
            .Returns(randomDate);

            this.storageBrokerMock.Setup(broker =>
                                         broker.SelectSemesterCourseByIdAsync(semesterCourseId))
            .ReturnsAsync(beforeUpdateStorageSemesterCourse);

            this.storageBrokerMock.Setup(broker =>
                                         broker.UpdateSemesterCourseAsync(inputSemesterCourse))
            .ReturnsAsync(afterUpdateStorageSemesterCourse);

            // when
            SemesterCourse actualSemesterCourse =
                await this.semesterCourseService.ModifySemesterCourseAsync(inputSemesterCourse);

            // then
            actualSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);

            this.dateTimeBrokerMock.Verify(broker =>
                                           broker.GetCurrentDateTime(),
                                           Times.Once);

            this.storageBrokerMock.Verify(broker =>
                                          broker.SelectSemesterCourseByIdAsync(semesterCourseId),
                                          Times.Once);

            this.storageBrokerMock.Verify(broker =>
                                          broker.UpdateSemesterCourseAsync(inputSemesterCourse),
                                          Times.Once);

            this.storageBrokerMock.VerifyNoOtherCalls();
            this.loggingBrokerMock.VerifyNoOtherCalls();
            this.dateTimeBrokerMock.VerifyNoOtherCalls();
        }
        public async Task ShouldPutSemesterCourseAsync()
        {
            // given
            SemesterCourse randomSemesterCourse = await PostRandomSemesterCourseAsync();

            SemesterCourse modifiedSemesterCourse = UpdateSemesterCourseRandom(randomSemesterCourse);

            // when
            await this.otripleSApiBroker.PutSemesterCourseAsync(modifiedSemesterCourse);

            SemesterCourse expectedSemesterCourse =
                CreateExpectedSemesterCourse(modifiedSemesterCourse);

            SemesterCourse actualSemesterCourse =
                await this.otripleSApiBroker.GetSemesterCourseByIdAsync(randomSemesterCourse.Id);

            // then
            actualSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);
            await DeleteSemesterCourseAsync(actualSemesterCourse);
        }
Пример #6
0
        public async Task ShouldPostSemesterCourseAsync()
        {
            // given
            SemesterCourse randomSemesterCourse = CreateRandomSemesterCourse();
            SemesterCourse inputSemesterCourse  = randomSemesterCourse;

            SemesterCourse expectedSemesterCourse =
                CreateExpectedSemesterCourse(inputSemesterCourse);

            // when
            await this.otripleSApiBroker.PostSemesterCourseAsync(inputSemesterCourse);

            SemesterCourse actualSemesterCourse =
                await this.otripleSApiBroker.GetSemesterCourseByIdAsync(inputSemesterCourse.Id);

            // then
            actualSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);

            await this.otripleSApiBroker.DeleteSemesterCourseByIdAsync(actualSemesterCourse.Id);
        }
        public async Task ShouldGetAllSemesterCoursesAsync()
        {
            // given
            Teacher randomTeacher = await PostTeacherAsync();

            Classroom randomClassroom = await PostClassRoomAsync();

            Course randomCourse = await PostCourseAsync();

            List <SemesterCourse> randomSemesterCourses = new List <SemesterCourse>();

            for (int i = 0; i <= GetRandomNumber(); i++)
            {
                randomSemesterCourses.Add(
                    await CreateRandomSemesterCourseAsync(randomTeacher, randomClassroom, randomCourse));
            }

            List <SemesterCourse> inputSemesterCourses    = randomSemesterCourses.ToList();
            List <SemesterCourse> expectedSemesterCourses = inputSemesterCourses.ToList();

            // when
            List <SemesterCourse> actualSemesterCourses =
                await this.otripleSApiBroker.GetAllSemesterCoursesAsync();

            // then
            foreach (SemesterCourse expectedSemesterCourse in expectedSemesterCourses)
            {
                SemesterCourse actualSemesterCourse =
                    actualSemesterCourses.Single(semesterCourse =>
                                                 semesterCourse.Id == expectedSemesterCourse.Id);

                SemesterCourse expectedReturnedCourse = CreateExpectedSemesterCourse(expectedSemesterCourse);
                actualSemesterCourse.Should().BeEquivalentTo(expectedReturnedCourse);
                await this.otripleSApiBroker.DeleteSemesterCourseByIdAsync(actualSemesterCourse.Id);
            }
            await this.otripleSApiBroker.DeleteCourseByIdAsync(randomCourse.Id);

            await this.otripleSApiBroker.DeleteClassroomByIdAsync(randomClassroom.Id);

            await this.otripleSApiBroker.DeleteTeacherByIdAsync(randomTeacher.Id);
        }
        public async Task ShouldDeleteSemesterCourseAsync()
        {
            // given
            SemesterCourse randomSemesterCourse = await PostRandomSemesterCourseAsync();

            SemesterCourse inputSemesterCourse    = randomSemesterCourse;
            SemesterCourse expectedSemesterCourse = inputSemesterCourse;

            // when
            SemesterCourse deletedSemesterCourse =
                await DeleteSemesterCourseAsync(inputSemesterCourse);

            ValueTask <SemesterCourse> getSemesterCourseByIdTask =
                this.otripleSApiBroker.GetSemesterCourseByIdAsync(inputSemesterCourse.Id);

            // then
            deletedSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);

            await Assert.ThrowsAsync <HttpResponseNotFoundException>(() =>
                                                                     getSemesterCourseByIdTask.AsTask());
        }
        public async Task ShouldCreateSemesterCourseAsync()
        {
            // given
            DateTimeOffset randomDateTime       = GetRandomDateTime();
            DateTimeOffset dateTime             = randomDateTime;
            SemesterCourse randomSemesterCourse = CreateRandomSemesterCourse(randomDateTime);

            randomSemesterCourse.UpdatedBy   = randomSemesterCourse.CreatedBy;
            randomSemesterCourse.UpdatedDate = randomSemesterCourse.CreatedDate;
            SemesterCourse inputSemesterCourse    = randomSemesterCourse;
            SemesterCourse storageSemesterCourse  = randomSemesterCourse;
            SemesterCourse expectedSemesterCourse = storageSemesterCourse;

            this.dateTimeBrokerMock.Setup(broker =>
                                          broker.GetCurrentDateTime())
            .Returns(dateTime);

            this.storageBrokerMock.Setup(broker =>
                                         broker.InsertSemesterCourseAsync(inputSemesterCourse))
            .ReturnsAsync(storageSemesterCourse);

            // when
            SemesterCourse actualSemesterCourse =
                await this.semesterCourseService.CreateSemesterCourseAsync(inputSemesterCourse);

            // then
            actualSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);

            this.dateTimeBrokerMock.Verify(broker =>
                                           broker.GetCurrentDateTime(),
                                           Times.Once);

            this.storageBrokerMock.Verify(broker =>
                                          broker.InsertSemesterCourseAsync(inputSemesterCourse),
                                          Times.Once);

            this.dateTimeBrokerMock.VerifyNoOtherCalls();
            this.storageBrokerMock.VerifyNoOtherCalls();
            this.storageBrokerMock.VerifyNoOtherCalls();
        }
        public async Task ShouldDeleteSemesterCourseAsync()
        {
            // given
            DateTimeOffset dateTime               = GetRandomDateTime();
            SemesterCourse randomSemesterCourse   = CreateRandomSemesterCourse(dateTime);
            Guid           inputSemesterCourseId  = randomSemesterCourse.Id;
            SemesterCourse inputSemesterCourse    = randomSemesterCourse;
            SemesterCourse storageSemesterCourse  = inputSemesterCourse;
            SemesterCourse expectedSemesterCourse = storageSemesterCourse;

            this.storageBrokerMock.Setup(broker =>
                                         broker.SelectSemesterCourseByIdAsync(inputSemesterCourseId))
            .ReturnsAsync(inputSemesterCourse);

            this.storageBrokerMock.Setup(broker =>
                                         broker.DeleteSemesterCourseAsync(inputSemesterCourse))
            .ReturnsAsync(storageSemesterCourse);

            // when
            SemesterCourse actualSemesterCourse =
                await this.semesterCourseService.DeleteSemesterCourseAsync(inputSemesterCourseId);

            //then
            actualSemesterCourse.Should().BeEquivalentTo(expectedSemesterCourse);

            this.storageBrokerMock.Verify(broker =>
                                          broker.SelectSemesterCourseByIdAsync(inputSemesterCourseId),
                                          Times.Once);

            this.storageBrokerMock.Verify(broker =>
                                          broker.DeleteSemesterCourseAsync(inputSemesterCourse),
                                          Times.Once);

            this.storageBrokerMock.VerifyNoOtherCalls();
            this.loggingBrokerMock.VerifyNoOtherCalls();
            this.dateTimeBrokerMock.VerifyNoOtherCalls();
        }