Esempio n. 1
0
        public async void CreateReservation_null_requested_devices()
        {
            var reservation = _reservation1;

            reservation.RequestedDevices = null;

            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Add(reservation));

            var mockRestClient = new Mock <IRestClient>();

            mockRestClient.Setup(mrc => mrc.GetDevices()).Returns(new Task <IEnumerable <Device> >(GetTestDevices));

            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When($"{_httpLocalhost}/api/v1/device").Respond("application/json",
                                                                     JsonConvert.SerializeObject(new List <Device> {
                _device1
            }));

            var restClient = new RestClient(_config.Object,
                                            new HttpClient(mockHttp), Logger);
            var controller = new ReservationsQueueController(mockRepository.Object, restClient, Logger, _externalProcesses);

            // Act
            var result = await controller.CreateAsync(reservation);

            // Assert
            var viewResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal("RequestedDevices property is empty.", viewResult.Value);
        }
Esempio n. 2
0
        public async void CreateReservation_AddThrowsException_ErrorStatusCode()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Add(_reservation1)).Throws(new Exception());

            var mockRestClient = new Mock <IRestClient>();

            mockRestClient.Setup(mrc => mrc.GetDevices()).Returns(new Task <IEnumerable <Device> >(GetTestDevices));

            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When($"{_httpLocalhost}/api/v1/device").Respond("application/json",
                                                                     JsonConvert.SerializeObject(new List <Device> {
                _device1
            }));
            mockHttp.When($"{_httpLocalhost}/api/v1/device/{_device1.Id}")
            .Respond("application/json", JsonConvert.SerializeObject(_device1));

            var restClient = new RestClient(_config.Object,
                                            new HttpClient(mockHttp), Logger);
            var controller = new ReservationsQueueController(mockRepository.Object, restClient, Logger, _externalProcesses);

            // Act
            var result = await controller.CreateAsync(_reservation1);

            // Assert
            var viewResult = Assert.IsType <ObjectResult>(result);

            Assert.Equal(500, viewResult.StatusCode);
        }
Esempio n. 3
0
        public async void CreateReservation_device_with_id_notFound()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Add(_reservation1));

            var mockRestClient = new Mock <IRestClient>();

            mockRestClient.Setup(mrc => mrc.GetDevices()).Returns(new Task <IEnumerable <Device> >(GetTestDevices));

            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When($"{_httpLocalhost}/api/v1/device").Respond("application/json",
                                                                     JsonConvert.SerializeObject(new List <Device> {
                _device2
            }));

            var restClient = new RestClient(_config.Object,
                                            new HttpClient(mockHttp), Logger);
            var controller = new ReservationsQueueController(mockRepository.Object, restClient, Logger, _externalProcesses);

            // Act
            var result = await controller.CreateAsync(_reservation1);

            // Assert
            var viewResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal(
                $"Requested device(s) not found in the device pool: [\"{{\\\"DeviceId\\\":\\\"{_device1.Id}\\\",\\\"DeviceType\\\":\\\"{_device1.Type}\\\"}}\"]",
                viewResult.Value);
        }
Esempio n. 4
0
        public async void CreateReservation_NullRequest_BadRequest()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Add(_reservation1));

            var mockHttp   = new MockHttpMessageHandler();
            var restClient = new RestClient(_config.Object, new HttpClient(mockHttp), Logger);
            var controller = new ReservationsQueueController(mockRepository.Object, restClient, Logger, _externalProcesses);

            // Act
            var result = await controller.CreateAsync(null);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Esempio n. 5
0
        public async void DeleteReservation_id_notFound()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Add(_reservation1));
            mockRepository.Setup(mpr => mpr.Find(_reservation1.Id)).Returns((Reservation)null);

            var mockRestClient = new Mock <IRestClient>();

            mockRestClient.Setup(mrc => mrc.GetDevices()).Returns(new Task <IEnumerable <Device> >(GetTestDevices));

            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When($"{_httpLocalhost}/api/v1/device").Respond("application/json",
                                                                     JsonConvert.SerializeObject(new List <Device> {
                _device1
            }));
            mockHttp.When($"{_httpLocalhost}/api/v1/device/{_device1.Id}")
            .Respond("application/json", JsonConvert.SerializeObject(_device1));

            var restClient = new RestClient(_config.Object,
                                            new HttpClient(mockHttp), Logger);
            var controller = new ReservationsQueueController(mockRepository.Object, restClient, Logger, _externalProcesses);

            // Act
            var result = await controller.CreateAsync(_reservation1);

            // Assert created
            var viewResult = Assert.IsType <CreatedAtRouteResult>(result);

            Assert.Equal(_reservation1, viewResult.Value);

            var resultDelete = controller.Delete(_reservation1.Id);

            // Assert deleted
            var viewResultDelete = Assert.IsType <NotFoundObjectResult>(resultDelete);

            Assert.Equal("Reservation not found in the database.", viewResultDelete.Value);
        }