public async Task UpdateCustomerVehicle_Should_ThrowException_WhenDoesNotExist()
 {
     // Arrange
     var sut            = new CustomerVehicleService(repo, new MockVehicleDataService());
     var updatedVehicle = new CustomerVehicle {
         Registration = "SHOULDNOTEXIST", LastUpdated = DateTime.UtcNow
     };
     // Act & Assert
     await Assert.ThrowsAsync <Exception>(async() => await sut.UpdateCustomerVehicle(updatedVehicle, Guid.NewGuid()));
 }
        public async Task UpdateCustomerVehicle_Should_ReturnVehicle()
        {
            // Arrange
            var v1 = new CustomerVehicle {
                Registration = "EF02VCC"
            };
            await repo.Create(v1, Guid.NewGuid(), Guid.NewGuid());

            var sut = new CustomerVehicleService(repo, new MockVehicleDataService());
            // Act
            var result = await sut.UpdateCustomerVehicle(v1, v1.ClientId);

            // Assert
            Assert.IsType <CustomerVehicle>(result);
        }
        public async Task UpdateCustomerVehicle_Should_ReturnVehicle_WithUpdatedDataFromGet()
        {
            // Arrange
            var v1 = new CustomerVehicle {
                Registration = "EF02VCC"
            };
            await repo.Create(v1, Guid.NewGuid(), Guid.NewGuid());

            var sut = new CustomerVehicleService(repo, new MockVehicleDataService());

            v1.Colour = "SomeNewColour";
            // Act
            await sut.UpdateCustomerVehicle(v1, v1.ClientId);

            var result = (await repo.FindAllByCustomer(v1.CustomerId, v1.ClientId)).FirstOrDefault(x => x.Registration == v1.Registration);

            // Assert
            Assert.Equal("SomeNewColour", v1.Colour);
        }
        public async Task UpdateCustomerVehicle_Should_ReturnVehicle_WithUpdatedData()
        {
            // Arrange
            var clientId   = Guid.NewGuid();
            var customerId = Guid.NewGuid();
            var v1         = new CustomerVehicle {
                Registration = "EF02VCC"
            };
            await repo.Create(v1, customerId, clientId);

            var sut      = new CustomerVehicleService(repo, new MockVehicleDataService());
            var newValue = DateTime.UtcNow;

            v1.Colour = "SomeNewColour";
            // Act
            var result = await sut.UpdateCustomerVehicle(v1, clientId);

            // Assert
            Assert.Equal("SomeNewColour", result.Colour);
        }
        public async Task UpdateCustomerVehicle_Should_HaveMatchingRegistration()
        {
            // Arrange
            var v1 = new CustomerVehicle
            {
                Registration = "EF02VCC",
                LastUpdated  = DateTime.UtcNow,
                ClientId     = Guid.NewGuid(),
                CustomerId   = Guid.NewGuid()
            };
            await repo.Create(v1, v1.CustomerId, v1.ClientId);

            var sut = new CustomerVehicleService(repo, new MockVehicleDataService());

            v1.LastUpdated = DateTime.UtcNow;
            // Act
            await sut.UpdateCustomerVehicle(v1, v1.ClientId);

            var result = (await repo.FindAllByCustomer(v1.CustomerId, v1.ClientId)).FirstOrDefault(x => x.Registration == v1.Registration);

            // Assert
            Assert.Equal(result.Registration, v1.Registration);
        }