public async Task Deletes_appointment() { var tempPath = Path.GetTempPath(); var catalogueFileName = $"{Guid.NewGuid()}_catalogue.json"; // given an appointment var appointment = new Appointment(); appointment.Id = Guid.NewGuid().ToString(); appointment.Place = "Alaska"; appointment.Comments = "this is a comment"; appointment.Description = "this is a description"; appointment.DateTime = new DateTime(2009, 11, 23); await new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }.Save(appointment); // when DeleteAppointmentCommand is executed var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; var command = new AppointmentsManager.Application.Appointments.DeleteAppointmentCommand.Command(); command.Id = appointment.Id; var commandHandler = new AppointmentsManager.Application.Appointments.DeleteAppointmentCommand.Handler(appointmentStorage); await commandHandler.Handle(command, CancellationToken.None); // then appointment is deleted var deletedAppointment = await appointmentStorage.GetAppointment(appointment.Id); Assert.IsNull(deletedAppointment); }
public async Task Creates_appointment() { var tempPath = Path.GetTempPath(); var catalogueFileName = $"{Guid.NewGuid()}_catalogue.json"; // given an appointment var appointment = new Appointment(); appointment.Id = Guid.NewGuid().ToString(); appointment.Place = "Alaska"; appointment.Comments = "this is a comment"; appointment.Description = "this is a description"; appointment.DateTime = new DateTime(2009, 11, 23); await new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }.Save(appointment); // and given an updated appointment appointment.Place = "Colombo"; // when UpdateAppointmentCommand is executed var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; var command = new AppointmentsManager.Application.Appointments.UpdateAppointmentCommand.Command(); command.Id = appointment.Id; command.Place = "Colombo"; command.Comments = appointment.Comments; command.Description = appointment.Description; command.DateTime = appointment.DateTime; var commandHandler = new AppointmentsManager.Application.Appointments.UpdateAppointmentCommand.Handler(appointmentStorage); var result = await commandHandler.Handle(command, CancellationToken.None); // then appointment is updated var updatedAppointment = await appointmentStorage.GetAppointment(appointment.Id); Assert.IsTrue(updatedAppointment.Place == "Colombo"); // then appointment-id is returned Assert.IsNotNull(result == appointment.Id); }