public void Finish_Should_Finish_An_Existing_Job() { // arrange CustomerBuilder customerBuilder = new CustomerBuilder(); VehicleBuilder vehicleBuilder = new VehicleBuilder(); MaintenanceJobBuilder maintenanceJobBuilder = new MaintenanceJobBuilder(); Customer customer = customerBuilder .Build(); Vehicle vehicle = vehicleBuilder .WithCustomerId(customer.CustomerId) .Build(); MaintenanceJob sut = maintenanceJobBuilder .WithCustomer(customer) .WithVehicle(vehicle) .Build(); DateTime actualStartTime = maintenanceJobBuilder.StartTime.AddMinutes(30); DateTime actualEndTime = maintenanceJobBuilder.EndTime.AddMinutes(15); string notes = $"Mechanic notes {maintenanceJobBuilder.Id}"; // act sut.Finish(actualStartTime, actualEndTime, notes); // assert Assert.Equal(maintenanceJobBuilder.Id, sut.Id); Assert.Equal(maintenanceJobBuilder.StartTime, sut.StartTime); Assert.Equal(maintenanceJobBuilder.EndTime, sut.EndTime); Assert.Equal(customer, sut.Customer); Assert.Equal(vehicle, sut.Vehicle); Assert.Equal(maintenanceJobBuilder.Description, sut.Description); Assert.Equal(actualStartTime, sut.ActualStartTime.Value); Assert.Equal(actualEndTime, sut.ActualEndTime.Value); Assert.Equal(notes, sut.Notes); Assert.Equal("Completed", sut.Status); }
private void Handle(MaintenanceJobFinished e) { MaintenanceJob job = Jobs.FirstOrDefault(j => j.Id == e.JobId); Timeslot actualTimeslot = Timeslot.Create(e.StartTime, e.EndTime); job.Finish(actualTimeslot, e.Notes); }
public void Finish_Should_Finish_An_Existing_Job() { // arrange MaintenanceJobBuilder maintenanceJobBuilder = new MaintenanceJobBuilder(); MaintenanceJob sut = maintenanceJobBuilder .Build(); DateTime actualStartTime = maintenanceJobBuilder.StartTime.AddMinutes(30); DateTime actualEndTime = maintenanceJobBuilder.EndTime.AddMinutes(15); string notes = $"Mechanic notes {maintenanceJobBuilder.JobId}"; // act sut.Finish(actualStartTime, actualEndTime, notes); // assert Assert.Equal(maintenanceJobBuilder.JobId, sut.Id); Assert.Equal(maintenanceJobBuilder.StartTime, sut.StartTime); Assert.Equal(maintenanceJobBuilder.EndTime, sut.EndTime); Assert.Equal(maintenanceJobBuilder.CustomerBuilder.Id, sut.Customer.Id); Assert.Equal(maintenanceJobBuilder.CustomerBuilder.Name, sut.Customer.Name); Assert.Equal(maintenanceJobBuilder.CustomerBuilder.TelephoneNumber, sut.Customer.TelephoneNumber); Assert.Equal(maintenanceJobBuilder.VehicleBuilder.LicenseNumber, sut.Vehicle.Id); Assert.Equal(maintenanceJobBuilder.VehicleBuilder.Brand, sut.Vehicle.Brand); Assert.Equal(maintenanceJobBuilder.VehicleBuilder.Type, sut.Vehicle.Type); Assert.Equal(maintenanceJobBuilder.VehicleBuilder.OwnerId, sut.Vehicle.OwnerId); Assert.Equal(maintenanceJobBuilder.Description, sut.Description); Assert.Equal(actualStartTime, sut.ActualStartTime.Value); Assert.Equal(actualEndTime, sut.ActualEndTime.Value); Assert.Equal(notes, sut.Notes); Assert.Equal("Completed", sut.Status); }