public async Task <IActionResult> EndShift(int babySitterId, int shiftId, [FromBody] EndShiftArgs args) { args = args.WithShiftId(shiftId) .WithSitterId(babySitterId); await _commandBus.Execute(args); return(NoContent()); }
public async Task EndShift(int sitterId, int shiftId, LocalDateTime endTime) { var endArgs = new EndShiftArgs(sitterId, shiftId, endTime); using (var client = CreateClient()) { await client.PutJsonAsync($"babysitters/{sitterId}/shifts/{shiftId}/endShift", endArgs); } }
public async Task ShouldThrowEntityNotFoundWhenShiftIsNotFound() { var sitter = _context.Add(ModelFactory.CreateSitter()).Entity; var shift = _context.Add(ModelFactory.CreateShift(sitter)).Entity; _context.SaveChanges(); var args = new EndShiftArgs(sitter.Id, int.MaxValue, shift.EndTime.Value); await Assert.ThrowsAsync <EntityNotFoundException <Shift> >(() => _command.Execute(args)); }
public async Task ShouldThrowValidationException() { var sitter = _context.Add(ModelFactory.CreateSitter()).Entity; var shift = _context.Add(ModelFactory.CreateShift(sitter)).Entity; _context.SaveChanges(); var endTime = LocalDateTime.FromDateTime(DateTime.MinValue); var args = new EndShiftArgs(sitter.Id, shift.Id, endTime); await Assert.ThrowsAsync <ValidationException>(() => _command.Execute(args)); }
public async Task ShouldEndShift() { var sitter = _context.Add(ModelFactory.CreateSitter()).Entity; var shift = _context.Add(ModelFactory.CreateShift(sitter)).Entity; shift.EndTime = null; _context.SaveChanges(); var endTime = new LocalDateTime(2018, 7, 1, 0, 0); var args = new EndShiftArgs(sitter.Id, shift.Id, endTime); await _command.Execute(args); Assert.Equal(endTime, shift.EndTime); }
public async Task ShouldHaveAmountCharged() { var sitter = _context.Add(ModelFactory.CreateSitter()).Entity; var shift = _context.Add(ModelFactory.CreateShift( sitter, startTime: "7:00 PM".ToLocalDateTime(), bedtime: "9:00 PM".ToLocalDateTime()) ).Entity; shift.EndTime = null; _context.SaveChanges(); var endTime = "12:00 AM".ToLocalDateTime().PlusDays(1); var args = new EndShiftArgs(sitter.Id, shift.Id, endTime); await _command.Execute(args); Assert.Equal(48, shift.AmountCharged); }