Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }