Ejemplo n.º 1
0
        public async Task Should_update_grade()
        {
            // create course
            var createCourseCommand = new CreateCourseCommand()
            {
                Id          = Guid.NewGuid(),
                Code        = 1,
                Name        = "Course 1",
                Description = "Test"
            };

            var createCourseCommandHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);

            var courseResult = await createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None);

            // Create student
            var createStudentCommand = new CreateStudentCommand()
            {
                Id          = Guid.NewGuid(),
                FirstName   = "Milos",
                LastName    = "Stojkovic",
                Address     = "Bata Noleta 31",
                City        = "Sokobanja",
                DateOfBirth = new DateTime(1991, 3, 18),
                State       = "Srbija",
                Gender      = 0
            };

            var createStudentCommandHandler = new CreateStudentCommandHandler(this.autoMapper, this.context);

            var studentResult = await createStudentCommandHandler.Handle(createStudentCommand, CancellationToken.None);

            var createOrUpdateEnrollmentCommand = new CreateOrUpdateEnrollmentCommand()
            {
                Id         = createStudentCommand.Id,
                CourseCode = createCourseCommand.Code,
                Grade      = (int)Domain.Enumerations.Grade.Seven
            };

            var createOrUpdateEnrollmentCommandHandler = new CreateOrUpdateEnrollmentCommandHandler(this.context);
            var result = await createOrUpdateEnrollmentCommandHandler.Handle(createOrUpdateEnrollmentCommand, CancellationToken.None);

            result.ShouldBe(true);

            var enrollment = await this.context.Enrollment
                             .FirstOrDefaultAsync(e => e.Course.Code == createOrUpdateEnrollmentCommand.CourseCode && e.Student.Id == createOrUpdateEnrollmentCommand.Id, CancellationToken.None);

            enrollment.Grade.ShouldBe(Domain.Enumerations.Grade.Seven);

            createOrUpdateEnrollmentCommand.Grade = (int)Domain.Enumerations.Grade.Eight;
            var updateResult = await createOrUpdateEnrollmentCommandHandler.Handle(createOrUpdateEnrollmentCommand, CancellationToken.None);

            updateResult.ShouldBe(true);
            var updatedEnrollment = await this.context.Enrollment
                                    .FirstOrDefaultAsync(e => e.Course.Code == createOrUpdateEnrollmentCommand.CourseCode && e.Student.Id == createOrUpdateEnrollmentCommand.Id, CancellationToken.None);

            updatedEnrollment.Grade.ShouldBe(Domain.Enumerations.Grade.Eight);
        }
        public async Task Should_throw_delete_failure_exception()
        {
            // create course
            var createCourseCommand = new CreateCourseCommand()
            {
                Id          = Guid.NewGuid(),
                Code        = 1,
                Name        = "Course 1",
                Description = "Test"
            };

            var createCourseCommandHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);
            var commandResult = await createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None);

            commandResult.ShouldBe(true);

            // Create student
            var createStudentCommand = new CreateStudentCommand()
            {
                Id          = Guid.NewGuid(),
                FirstName   = "Milos",
                LastName    = "Stojkovic",
                Address     = "Bata Noleta 31",
                City        = "Sokobanja",
                DateOfBirth = new DateTime(1991, 3, 18),
                State       = "Srbija",
                Gender      = 0
            };

            var createStudentCommandHandler = new CreateStudentCommandHandler(this.autoMapper, this.context);

            commandResult = await createStudentCommandHandler.Handle(createStudentCommand, CancellationToken.None);

            commandResult.ShouldBe(true);

            var createOrUpdateEnrollmentCommand = new CreateOrUpdateEnrollmentCommand()
            {
                Id         = createStudentCommand.Id,
                CourseCode = createCourseCommand.Code,
                Grade      = (int)Domain.Enumerations.Grade.Seven
            };

            var createOrUpdateEnrollmentCommandHandler = new CreateOrUpdateEnrollmentCommandHandler(this.context);

            commandResult = await createOrUpdateEnrollmentCommandHandler.Handle(createOrUpdateEnrollmentCommand, CancellationToken.None);

            commandResult.ShouldBe(true);

            var deleteStudentCommand = new DeleteStudentCommand()
            {
                Id = createStudentCommand.Id
            };

            var deleteStudentCommandHandler = new DeleteStudentCommandHandler(this.context);
            await Assert.ThrowsAsync <DeleteFailureException>(() => deleteStudentCommandHandler.Handle(deleteStudentCommand, CancellationToken.None));
        }
        public void SetUp()
        {
            _service    = new Mock <ICreateCourseService>();
            _unitOfWork = new Mock <IUnitOfWork>();
            _command    = new CreateCourseCommand {
                Title = "course title"
            };

            _sut = new CreateCourseCommandHandler(_service.Object, _unitOfWork.Object);

            _createdCourse = new Course(_command.Title, "creatorId", DateTime.Now);
            _service.Setup(c => c.CreateCourse(_command.Title)).Returns(_createdCourse);
        }
        public async Task Should_return_sutdents_with_passed_coruces()
        {
            // create course
            var courseQuery = new CreateCourseCommand()
            {
                Id          = Guid.NewGuid(),
                Code        = 5,
                Name        = "Course 2",
                Description = "Test"
            };

            var courseHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);

            var courseResult = await courseHandler.Handle(courseQuery, CancellationToken.None);

            // Create student
            var createStudentCommand = new CreateStudentCommand()
            {
                Id          = Guid.NewGuid(),
                FirstName   = "Milos",
                LastName    = "Stojkovic",
                Address     = "Bata Noleta 31",
                City        = "Sokobanja",
                DateOfBirth = new DateTime(1991, 3, 18),
                State       = "Srbija",
                Gender      = 0
            };

            var createStudentCommandHandler = new CreateStudentCommandHandler(this.autoMapper, this.context);

            var studentResult = await createStudentCommandHandler.Handle(createStudentCommand, CancellationToken.None);

            var createOrUpdateEnrollmentCommand = new CreateOrUpdateEnrollmentCommand()
            {
                Id         = createStudentCommand.Id,
                CourseCode = courseQuery.Code,
                Grade      = (int)Domain.Enumerations.Grade.Seven
            };

            var createOrUpdateEnrollmentCommandHandler = new CreateOrUpdateEnrollmentCommandHandler(this.context);
            var enrollmentResult = await createOrUpdateEnrollmentCommandHandler.Handle(createOrUpdateEnrollmentCommand, CancellationToken.None);

            enrollmentResult.ShouldBe(true);

            var query   = new GetStudentsWithPassedCoursesQuery();
            var handler = new GetStudentsWithPassedCoursesQueryHandler(this.autoMapper, this.context);
            var result  = await handler.Handle(query, CancellationToken.None);

            result.Where(s => s.Id == createStudentCommand.Id).Count().ShouldBe(1);
        }
Ejemplo n.º 5
0
        public async Task Should_throw_argument_exception()
        {
            var createCourseCommand = new CreateCourseCommand()
            {
                Id          = Guid.NewGuid(),
                Code        = 11,
                Name        = "Course 1",
                Description = "Test"
            };

            var createCourseCommandHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);

            var result = await createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None);

            result.ShouldBe(true);

            await Assert.ThrowsAsync <ArgumentException>(() => createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None));
        }
Ejemplo n.º 6
0
        public async Task Should_return_filter_courses()
        {
            var createCourseCommand = new CreateCourseCommand()
            {
                Id          = Guid.NewGuid(),
                Code        = 10,
                Name        = "Course 1",
                Description = "Test"
            };

            var createCourseCommandHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);

            var result = await createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None);

            result.ShouldBe(true);

            createCourseCommand.Id   = Guid.NewGuid();
            createCourseCommand.Code = 2;
            createCourseCommand.Name = "Test 2";

            result = await createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None);

            result.ShouldBe(true);

            var getCoursesQuery = new GetCoursesQuery()
            {
                FilterByName = "est"
            };
            var getCoursesQueryHandler = new GetCoursesQueryHandler(this.autoMapper, this.context);

            var list = await getCoursesQueryHandler.Handle(getCoursesQuery, CancellationToken.None);

            list.Where(c => c.Code == createCourseCommand.Code).Count().ShouldBe(1);

            getCoursesQuery = new GetCoursesQuery()
            {
                FilterByName = ""
            };
            getCoursesQueryHandler = new GetCoursesQueryHandler(this.autoMapper, this.context);

            list = await getCoursesQueryHandler.Handle(getCoursesQuery, CancellationToken.None);

            list.Where(c => c.Code == 10 || c.Code == 2).Count().ShouldBe(2);
        }
Ejemplo n.º 7
0
        public async Task Should_create_course()
        {
            var createCourseCommand = new CreateCourseCommand()
            {
                Id          = Guid.NewGuid(),
                Code        = 12,
                Name        = "Course 1",
                Description = "Test"
            };

            var createCourseCommandHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);

            var result = await createCourseCommandHandler.Handle(createCourseCommand, CancellationToken.None);

            result.ShouldBe(true);

            var dbCourse = await this.context.Course.FirstOrDefaultAsync(s => s.Id == createCourseCommand.Id);

            dbCourse.ShouldNotBeNull();
        }
Ejemplo n.º 8
0
 public CreateCourseCommandHandlerTest()
 {
     CourseRepository           = new Mock <ICourseRepository>();
     CreateCourseCommandHandler = new CreateCourseCommandHandler(CourseRepository.Object);
 }
Ejemplo n.º 9
0
 public CreateCourseCommandHandlerShould()
 {
     this._handler = new CreateCourseCommandHandler(new CourseCreator(Repository.Object, EventBus.Object));
 }
        public async Task Should_return_filter_Students()
        {
            var firstStudentId  = Guid.NewGuid();
            var secondStudentId = Guid.NewGuid();

            // enrollment added 1
            {
                // create course
                var courseQuery = new CreateCourseCommand()
                {
                    Id          = Guid.NewGuid(),
                    Code        = 2,
                    Name        = "Course 2",
                    Description = "Test"
                };

                var courseHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);
                var courseResult  = await courseHandler.Handle(courseQuery, CancellationToken.None);

                // Create student
                var studentQuery = new CreateStudentCommand()
                {
                    Id          = firstStudentId,
                    FirstName   = "Milos",
                    LastName    = "Stojkovic",
                    Address     = "Bata Noleta 31",
                    City        = "Sokobanja",
                    DateOfBirth = new DateTime(1991, 3, 18),
                    State       = "Srbija",
                    Gender      = 0
                };

                var studenthandler = new CreateStudentCommandHandler(this.autoMapper, this.context);
                var studentResult  = await studenthandler.Handle(studentQuery, CancellationToken.None);

                studentResult.ShouldBe(true);

                var enrollmentQuery = new CreateOrUpdateEnrollmentCommand()
                {
                    Id         = studentQuery.Id,
                    CourseCode = courseQuery.Code,
                    Grade      = (int)Domain.Enumerations.Grade.Seven
                };

                var enrollmentHandler = new CreateOrUpdateEnrollmentCommandHandler(this.context);
                var enrollmentResult  = await enrollmentHandler.Handle(enrollmentQuery, CancellationToken.None);

                enrollmentResult.ShouldBe(true);
            }

            // enrollment added 2
            {
                // create course
                var courseQuery = new CreateCourseCommand()
                {
                    Id          = Guid.NewGuid(),
                    Code        = 3,
                    Name        = "Course 2",
                    Description = "Test"
                };

                var courseHandler = new CreateCourseCommandHandler(this.autoMapper, this.context);
                var courseResult  = await courseHandler.Handle(courseQuery, CancellationToken.None);

                // Create student
                var studentQuery = new CreateStudentCommand()
                {
                    Id          = secondStudentId,
                    FirstName   = "Jelica",
                    LastName    = "Ilica",
                    Address     = "Bata Noleta 31",
                    City        = "Sokobanja",
                    DateOfBirth = new DateTime(1991, 3, 18),
                    State       = "Srbija",
                    Gender      = 0
                };

                var studenthandler = new CreateStudentCommandHandler(this.autoMapper, this.context);
                var studentResult  = await studenthandler.Handle(studentQuery, CancellationToken.None);

                studentResult.ShouldBe(true);

                var enrollmentQuery = new CreateOrUpdateEnrollmentCommand()
                {
                    Id         = studentQuery.Id,
                    CourseCode = courseQuery.Code,
                    Grade      = (int)Domain.Enumerations.Grade.Seven
                };

                var enrollmentHandler = new CreateOrUpdateEnrollmentCommandHandler(this.context);
                var enrollmentResult  = await enrollmentHandler.Handle(enrollmentQuery, CancellationToken.None);

                enrollmentResult.ShouldBe(true);
            }

            var query = new GetStudentsWithPassedCoursesQuery()
            {
                FilterByFullName = "Milos"
            };

            var handler = new GetStudentsWithPassedCoursesQueryHandler(this.autoMapper, this.context);
            var result  = await handler.Handle(query, CancellationToken.None);

            result.Where(s => s.Id == firstStudentId).Count().ShouldBe(1);

            query = new GetStudentsWithPassedCoursesQuery()
            {
                FilterByFullName = ""
            };

            handler = new GetStudentsWithPassedCoursesQueryHandler(this.autoMapper, this.context);
            result  = await handler.Handle(query, CancellationToken.None);

            result.Where(s => s.Id == firstStudentId || s.Id == secondStudentId).Count().ShouldBe(2);
        }