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 command = new AppointmentsManager.Application.Appointments.CreateAppointmentCommand.Command(); command.Id = Guid.NewGuid().ToString(); command.Place = "Alaska"; command.Comments = "this is a comment"; command.Description = "this is a description"; command.DateTime = new DateTime(2009, 11, 23); // when CreateAppointmentCommand is executed var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; var commandHandler = new AppointmentsManager.Application.Appointments.CreateAppointmentCommand.Handler(appointmentStorage); var appointmentId = await commandHandler.Handle(command, CancellationToken.None); // then appointment is created var createdAppointment = await new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }.GetAppointment(command.Id); Assert.IsNotNull(createdAppointment); // and then id of the appointment is returned Assert.IsTrue(appointmentId == createdAppointment.Id); Assert.IsTrue(command.Id == createdAppointment.Id); }
public async Task Returns_list_of_appointment_summaries() { 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 GetAppointmentSummaryListQuery is called var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; var query = new AppointmentsManager.Application.Appointments.GetAppointmentSummaryListQuery.Query(); var queryHandler = new AppointmentsManager.Application.Appointments.GetAppointmentSummaryListQuery.Handler(appointmentStorage); var appointmentSummaryList = await queryHandler.Handle(query, CancellationToken.None); // then list of AppointmentSummary entries are returned Assert.IsTrue(appointmentSummaryList.Length == 1); Assert.IsTrue(appointmentSummaryList[0].Place == "Alaska"); }
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); }
public async Task Returns_empty_list_when_no_appointments_are_available() { // given there are no appointments var tempPath = Path.GetTempPath(); var catalogueFileName = $"{Guid.NewGuid()}_catalogue.json"; var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; // when GetAppointmentSummaryListQuery is called var query = new AppointmentsManager.Application.Appointments.GetAppointmentSummaryListQuery.Query(); var queryHandler = new AppointmentsManager.Application.Appointments.GetAppointmentSummaryListQuery.Handler(appointmentStorage); var appointmentSummaryList = await queryHandler.Handle(query, CancellationToken.None); // then an empty list is returned Assert.IsTrue(appointmentSummaryList.Length == 0); }
public async Task Returns_null_for_no_matching_appointment_id() { var tempPath = Path.GetTempPath(); var catalogueFileName = $"{Guid.NewGuid()}_catalogue.json"; // given no appointment // when GetAppointmentQuery is executed with an arbitrary id var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; var query = new AppointmentsManager.Application.Appointments.GetAppointmentQuery.Query { Id = "123" }; var queryHandler = new AppointmentsManager.Application.Appointments.GetAppointmentQuery.Handler(appointmentStorage); var result = await queryHandler.Handle(query, CancellationToken.None); // then null is returned Assert.IsNull(result); }
public async Task Returns_an_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 GetAppointmentQuery is executed var appointmentStorage = new FileSystemAppointmentStorage(tempPath) { AppointmentCatalogueFileName = catalogueFileName }; var query = new AppointmentsManager.Application.Appointments.GetAppointmentQuery.Query { Id = appointment.Id }; var queryHandler = new AppointmentsManager.Application.Appointments.GetAppointmentQuery.Handler(appointmentStorage); var result = await queryHandler.Handle(query, CancellationToken.None); // then appointment is returned Assert.IsNotNull(result); Assert.IsTrue(result.Id == appointment.Id); Assert.IsTrue(result.Place == appointment.Place); Assert.IsTrue(result.Comments == appointment.Comments); Assert.IsTrue(result.Description == appointment.Description); }