public async void ShouldReturnNotFoundResultIfTimeRegistrationDoesntExist()
            {
                MockTimeRegistrationService
                .Setup(t => t.DeleteAsync(100, CancellationToken.None))
                .Throws(new TimeRegistrationNotFoundException("Example project creation for BUILD session"));

                var result = await Sut.Delete(100, CancellationToken.None);

                var notFoundResult = Assert.IsType <NotFoundResult>(result);
            }
            public async void ShouldReturnCreatedAtActionResultWithTheCreatedTimeRegistration()
            {
                MockTimeRegistrationService
                .Setup(t => t.CreateAsync(_expectedTimeRegistration, CancellationToken.None))
                .ReturnsAsync(_expectedTimeRegistration);

                var result = await Sut.Create(_expectedTimeRegistration, CancellationToken.None);

                var createdResult = Assert.IsType <CreatedAtActionResult>(result);

                Assert.Same(_expectedTimeRegistration, createdResult.Value);
            }
            public async void ShouldReturnOkActionResultWithUpdatedTimeRegistration()
            {
                MockTimeRegistrationService
                .Setup(t => t.UpdateAsync(_expectedTimeRegistration.Id, _expectedTimeRegistration, CancellationToken.None))
                .ReturnsAsync(_expectedTimeRegistration);

                var result = await Sut.Update(_expectedTimeRegistration.Id, _expectedTimeRegistration, CancellationToken.None);

                var okResult = Assert.IsType <OkObjectResult>(result);

                Assert.Same(_expectedTimeRegistration, okResult.Value);
            }
            public async void ShouldReturnOkWithTimeRegistrationItems()
            {
                var expectedTimeRegistrations = new List <TimeRegistration>()
                {
                    new TimeRegistration
                    {
                        Id           = 1,
                        ProjectId    = 1,
                        ProjectName  = "Sample web project for BUILD event",
                        CustomerName = "Microsoft",
                        Date         = new DateTime(2018, 3, 24),
                        HoursWorked  = 6.5m,
                        Accounted    = false
                    },
                    new TimeRegistration
                    {
                        Id           = 2,
                        ProjectId    = 2,
                        ProjectName  = "Creation of a Picking List application",
                        CustomerName = "Amazon",
                        Date         = new DateTime(2018, 3, 23),
                        HoursWorked  = 5.5m,
                        Accounted    = false
                    }
                };

                MockTimeRegistrationService
                .Setup(t => t.ReadAllAsync(CancellationToken.None))
                .ReturnsAsync(expectedTimeRegistrations);

                var result = await Sut.GetTimeRegistrations(CancellationToken.None);

                var okResult = Assert.IsType <OkObjectResult>(result);

                Assert.Same(expectedTimeRegistrations, okResult.Value);
            }