public async Task ShouldPostTeacherProperly()
        {
            var subjects = EntitiesGenerationRange.Select(_ => new Subject()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Subjects.AddRangeAsync(subjects);

            await context.SaveChangesAsync();

            var teacherDto = ComposeTestTeacherDto(subjects);

            await new TeachersController(context, null).PostAsync(teacherDto);

            var teacher = await context.Teachers.SingleAsync();

            AssertAreEqual(teacherDto, teacher);
        }
예제 #2
0
        public async Task ShouldPostStudentProperly()
        {
            var grades = EntitiesGenerationRange.Select(_ => new Grade()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Grades.AddRangeAsync(grades);

            await context.SaveChangesAsync();

            var studentDto = ComposeTestStudentDto(grades);

            await new StudentsController(context, null).PostAsync(studentDto);

            var student = await context.Students.SingleAsync();

            AssertAreEqual(studentDto, student);
        }
예제 #3
0
        public async Task ShouldPostPublisherProperly()
        {
            var publications = EntitiesGenerationRange.Select(_ => new Publication()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Publications.AddRangeAsync(publications);

            await context.SaveChangesAsync();

            var publisherDto = ComposeTestPublisherDto(publications);

            await new PublishersController(context, null).PostAsync(publisherDto);

            var publisher = await context.Publishers.SingleAsync();

            AssertAreEqual(publisherDto, publisher);
        }
        public async Task ShouldGetAllAuthorsProperly()
        {
            var authors = EntitiesGenerationRange.Select(_ => new Author()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Authors.AddRangeAsync(authors);

            await context.SaveChangesAsync();

            var mapperMock = new Mock <IMapper>();

            authors.ForEach(author => mapperMock.Setup(mapper => mapper.Map <AuthorBriefDto>(author)).Verifiable());

            foreach (var _ in await new AuthorsController(context, mapperMock.Object).GetAllAsync())
            {
            }

            authors.ForEach(author => mapperMock.Verify(mapper => mapper.Map <AuthorBriefDto>(author), Times.Once));
        }
예제 #5
0
        public async Task ShouldGetAllStudentsProperly()
        {
            var students = EntitiesGenerationRange.Select(_ => new Student()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Students.AddRangeAsync(students);

            await context.SaveChangesAsync();

            var mapperMock = new Mock <IMapper>();

            students.ForEach(student =>
                             mapperMock.Setup(mapper => mapper.Map <StudentMinDto>(student)).Verifiable());

            foreach (var _ in await new StudentsController(context, mapperMock.Object).GetAllAsync())
            {
            }

            students.ForEach(student =>
                             mapperMock.Verify(mapper => mapper.Map <StudentMinDto>(student), Times.Once));
        }
예제 #6
0
        public async Task ShouldGetAllReviewsProperly()
        {
            var reviews = EntitiesGenerationRange.Select(_ => new Review()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Reviews.AddRangeAsync(reviews);

            await context.SaveChangesAsync();

            var mapperMock = new Mock <IMapper>();

            reviews.ForEach(review =>
                            mapperMock.Setup(mapper => mapper.Map <ReviewBriefDto>(review)).Verifiable());

            foreach (var _ in await new ReviewsController(context, mapperMock.Object).GetAllAsync())
            {
            }

            reviews.ForEach(review =>
                            mapperMock.Verify(mapper => mapper.Map <ReviewBriefDto>(review), Times.Once));
        }
예제 #7
0
        public async Task ShouldGetAllPublicationsProperly()
        {
            var publications = EntitiesGenerationRange.Select(_ => new Publication()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Publications.AddRangeAsync(publications);

            await context.SaveChangesAsync();

            var mapperMock = new Mock <IMapper>();

            publications.ForEach(publication =>
                                 mapperMock.Setup(mapper => mapper.Map <PublicationBriefDto>(publication)).Verifiable());

            foreach (var _ in await new PublicationsController(context, mapperMock.Object).GetAllAsync())
            {
            }

            publications.ForEach(publication =>
                                 mapperMock.Verify(mapper => mapper.Map <PublicationBriefDto>(publication), Times.Once));
        }
예제 #8
0
        public async Task ShouldGetAllGradesProperly()
        {
            var grades = EntitiesGenerationRange.Select(_ => new Grade()).ToList();

            var context = ComposeEmptyDataContext();
            await context.Grades.AddRangeAsync(grades);

            await context.SaveChangesAsync();

            var mapperMock = new Mock <IMapper>();

            grades.ForEach(grade =>
                           mapperMock.Setup(mapper => mapper.Map <GradeMinDto>(grade)).Verifiable());

            foreach (var _ in await new GradesController(context, mapperMock.Object).GetAllAsync())
            {
            }

            grades.ForEach(grade =>
                           mapperMock.Verify(mapper => mapper.Map <GradeMinDto>(grade), Times.Once));
        }
예제 #9
0
        public async Task ShouldPostPublicationProperly()
        {
            var authors   = EntitiesGenerationRange.Select(_ => new Author()).ToList();
            var reviews   = EntitiesGenerationRange.Select(_ => new Review()).ToList();
            var publisher = new Publisher();

            var context = ComposeEmptyDataContext();
            await context.Authors.AddRangeAsync(authors);

            await context.Reviews.AddRangeAsync(reviews);

            await context.Publishers.AddAsync(publisher);

            await context.SaveChangesAsync();

            var publicationDto = ComposeTestPublicationDto(authors, reviews, publisher);

            await new PublicationsController(context, null).PostAsync(publicationDto);

            var publication = await context.Publications.SingleAsync();

            AssertAreEqual(publicationDto, publication);
        }