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_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)); }
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); }
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 create_a_valid_course() { var command = CreateCourseCommandMother.Random(); var course = CourseMother.FromRequest(command); var domainEvent = CourseCreatedDomainEventMother.FromCourse(course); _handler.Handle(command); ShouldHaveSave(course); ShouldHavePublished(domainEvent); }
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); }
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(); }
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); }
public void WhenCalled_CreateTheCourse() { _sut.Handle(_command, default).Wait(); _service.Verify(x => x.CreateCourse(_command.Title)); }