public void GetVehiclesByCustomerId_ReturnsNiceErrorMessage_WithInvalidCustomerId()
        {
            // Arrange
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            _controller.GetCustomerVehiclesByCustomerId(null);
        }
        public void GetCustomersVehicles_ReturnsNiceErrorMessage_WithInternalExceptionOccures()
        {
            // Arrange
            _mockUOW.Setup(uow => uow.GetCustomersVehicles()).Throws <Exception>();
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            _controller.GetCustomersVehicles();
        }
        public void GetVehiclesByCustomerId_ReturnsNiceErrorMessage_WithInternalExceptionOccures()
        {
            // Arrange
            _mockUOW.Setup(uow => uow.GetCustomerVehiclesByCustomerId(It.IsAny <Guid>())).Throws <Exception>();
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            _controller.GetCustomerVehiclesByCustomerId("EFB499FA-B179-4B99-9539-6925751F1FB6");
        }
        public void GetCustomersVehicles_ReturnsCustomers_WithListOfVehiclesDTOsToEachCustomer()
        {
            // Arrange
            _mockUOW.Setup(uow => uow.GetCustomersVehicles()).Returns(_customers);
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            var result = _controller.GetCustomersVehicles();

            // Assert
            var returnedCustomersList = result.Value as List <CustomerDTO>;

            Assert.AreEqual(3, returnedCustomersList[0].Vehicles.Count());
            Assert.AreEqual(2, returnedCustomersList[1].Vehicles.Count());
            Assert.AreEqual(2, returnedCustomersList[2].Vehicles.Count());
        }
        public void GetCustomersVehicles_ReturnsJsonResult_WithListOfCustomersDTOs()
        {
            // Arrange
            _mockUOW.Setup(uow => uow.GetCustomersVehicles()).Returns(_customers);
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            var result = _controller.GetCustomersVehicles();

            // Assert
            Assert.IsInstanceOfType(result, typeof(JsonResult));
            Assert.IsInstanceOfType(result.Value, typeof(IEnumerable <CustomerDTO>));
            var customersList = result.Value as List <CustomerDTO>;

            Assert.AreEqual(3, customersList.Count);
        }
        public void GetCustomersVehiclesByStatus_ReturnsCustomers_WithListOfVehiclesDTOsMatchingTheSentStatus()
        {
            // Arrange
            _mockUOW.Setup(uow => uow.GetCustomersVehiclesByStatus(true)).Returns(_customersWithConnectedVehicles);
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            var result = _controller.GetCustomersVehiclesByStatus(true);

            // Assert
            var returnedCustomersList = result.Value as List <CustomerDTO>;

            Assert.AreEqual(2, returnedCustomersList[0].Vehicles.Where(v => v.CurrentStatus).Count());
            Assert.AreEqual(1, returnedCustomersList[1].Vehicles.Where(v => v.CurrentStatus).Count());
            Assert.AreEqual(1, returnedCustomersList[2].Vehicles.Where(v => v.CurrentStatus).Count());
        }
        public void GetVehiclesByCustomerId_ReturnsCustomer_WithListOfVehiclesDTOs()
        {
            // Arrange
            var customerId   = new Guid("EFB499FA-B179-4B99-9539-6925751F1FB6");
            var testCustomer = _customers.SingleOrDefault(c => c.CustomerId == customerId);

            _mockUOW.Setup(uow => uow.GetCustomerVehiclesByCustomerId(customerId)).Returns(testCustomer);
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            var result = _controller.GetCustomerVehiclesByCustomerId(customerId.ToString());

            // Assert
            var returnedCustomer = result.Value as CustomerDTO;

            Assert.AreEqual(3, returnedCustomer.Vehicles.Count());
        }
        public void GetVehiclesByCustomerId_ReturnsJsonResult_WithOneCustomerDTO()
        {
            // Arrange
            var testCustomer = _customers.SingleOrDefault(c => c.CustomerId == new Guid("EFB499FA-B179-4B99-9539-6925751F1FB6"));

            _mockUOW.Setup(uow => uow.GetCustomerVehiclesByCustomerId(new Guid("EFB499FA-B179-4B99-9539-6925751F1FB6"))).Returns(testCustomer);
            _controller = new MonitoringBoardController(_mockUOW.Object, _mockLogger, _mockConfigOptions);

            // Act
            var result = _controller.GetCustomerVehiclesByCustomerId("EFB499FA-B179-4B99-9539-6925751F1FB6");

            // Assert
            Assert.IsInstanceOfType(result, typeof(JsonResult));
            Assert.IsInstanceOfType(result.Value, typeof(CustomerDTO));
            var selectedCustomer = result.Value as CustomerDTO;

            Assert.AreEqual(new Guid("EFB499FA-B179-4B99-9539-6925751F1FB6"), selectedCustomer.CustomerId);
        }