Esempio n. 1
0
        public async Task <IActionResult> EndShift(int babySitterId, int shiftId, [FromBody] EndShiftArgs args)
        {
            args = args.WithShiftId(shiftId)
                   .WithSitterId(babySitterId);

            await _commandBus.Execute(args);

            return(NoContent());
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }