Esempio n. 1
0
        public void DeleteReservation_RemoveThrowsException_ErrorStatusCode()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Add(_reservation1));
            mockRepository.Setup(mpr => mpr.Find(_reservation1.Id)).Returns(_reservation1);
            mockRepository.Setup(mpr => mpr.Remove(_reservation1.Id)).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);

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

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

            Assert.Equal(500, viewResult.StatusCode);
        }
Esempio n. 2
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. 3
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. 4
0
        public void GetReservation_empty_Input()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Find("")).Returns((Reservation)null);

            var controller = new ReservationsQueueController(mockRepository.Object, _restClient, Logger, _externalProcesses);

            // Act
            var result = controller.GetById("");

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

            mockRepository.Setup(mpr => mpr.GetAll()).Returns(new List <Reservation>());

            var controller = new ReservationsQueueController(mockRepository.Object, _restClient, Logger, _externalProcesses);

            // Act
            var result = controller.GetAll();

            // Assert
            Assert.IsType <List <Reservation> >(result);
            Assert.Empty(result);
        }
Esempio n. 6
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. 7
0
        public void GetReservation_reservation2()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.Find(_reservation2.Id)).Returns(_reservation2);

            var controller = new ReservationsQueueController(mockRepository.Object, _restClient, Logger, _externalProcesses);

            // Act
            var result = controller.GetById(_reservation2.Id);

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

            Assert.Equal(_reservation2, viewResult.Value);
        }
Esempio n. 8
0
        public void GetAllReservations()
        {
            // Arrange
            var mockRepository = new Mock <IRepository <Reservation> >();

            mockRepository.Setup(mpr => mpr.GetAll()).Returns(GetTestReservations());

            var controller = new ReservationsQueueController(mockRepository.Object, _restClient, Logger, _externalProcesses);

            // Act
            var result = controller.GetAll();

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

            Assert.Equal(2, result.Count());
            Assert.Contains(_reservation1, viewResult);
            Assert.Contains(_reservation2, viewResult);
        }
Esempio n. 9
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);
        }