public void ShouldRequireMinimumFields() { var command = new CreateExtraClassCommand(); FluentActions.Invoking(() => SendAsync(command)).Should().Throw <ValidationException>(); }
public async Task CreateExtraClass_GivenSuccessfulValidation_ShouldCreateSuccessfully() { // Arrange var userId = await RunAsDefaultUserAsync(); var subjectId = await SendAsync(new CreateSubjectCommand { Name = "Wizardry" }); var name = "Staff logic training"; var date = new DateTime(2056, 1, 1); var duration = new TimeSpan(1, 0, 0); var size = 10; var price = 100; var command = new CreateExtraClassCommand { Name = name, Date = date, Duration = duration, Size = size, SubjectId = subjectId, Price = price }; //Actual var extraClassId = await SendAsync(command); // Assert var extraClass = await FindAsync <ExtraClass>(extraClassId); extraClass.Name.Should().Be(name); extraClass.Date.Should().Be(date); extraClass.SubjectId.Should().Be(subjectId); extraClass.Duration.Should().Be(duration); extraClass.Size.Should().Be(size); extraClass.Price.Should().Be(price); extraClass.CreatedBy.Should().Be(userId); extraClass.Created.Should().BeCloseTo(DateTime.Now, 10000); }
public void CreateExtraClass_GivenSuccessfulValidation_SubjectDoesNotExist_ShouldThrowNotFoundException() { // Arrange var name = "Staff logic training"; var date = new DateTime(2056, 1, 1); var duration = new TimeSpan(1, 0, 0); var size = 10; var subjectId = 99; var price = 100; var command = new CreateExtraClassCommand { Name = name, Date = date, Duration = duration, Size = size, SubjectId = subjectId, Price = price }; //Assert FluentActions.Invoking(() => SendAsync(command)).Should().Throw <NotFoundException>(); }
public async Task <IActionResult> Create([FromBody] CreateExtraClassCommand command) { return(Ok(await Mediator.Send(command))); }