public void CreateVehicle_SuccessfullySendsNewVehicleToRepository()
        {
            var newVehicle = new CreateVehicleCommandParameter(
                "Test Vehicle",
                50,
                123.32,
                23.4,
                66,
                54.67,
                30);

            var newId = _createVehicleCommandHandler.CreateVehicle(newVehicle);

            _vehicleRepositoryMock.Verify(x => x.CreateVehicle(It.Is <Vehicle>(x =>
                                                                               x.VehicleId == newId &&
                                                                               x.Name == newVehicle.Name &&
                                                                               x.Speed == newVehicle.Speed &&
                                                                               x.Latitude == newVehicle.Latitude &&
                                                                               x.Longitude == newVehicle.Longitude &&
                                                                               x.EngineTemperature == newVehicle.EngineTemperature &&
                                                                               x.RadiatorPressure == newVehicle.RadiatorPressure &&
                                                                               x.FuelRemaining == newVehicle.FuelRemaining)), Times.Once());

            newId.Should().NotBeNull();
            newId.Should().NotBeEmpty();
        }
        public void CreateVehicle_ReturnsNullForInvalidFields()
        {
            var newVehicle = new CreateVehicleCommandParameter(
                null,
                50,
                123.32,
                23.4,
                66,
                54.67,
                30);

            var newId = _createVehicleCommandHandler.CreateVehicle(newVehicle);

            newId.Should().BeNull();

            newVehicle = new CreateVehicleCommandParameter(
                "Test Vehicle",
                50,
                123.32,
                23.4,
                -1,
                54.67,
                30);
            newId = _createVehicleCommandHandler.CreateVehicle(newVehicle);
            newId.Should().BeNull();

            newVehicle = new CreateVehicleCommandParameter(
                "Test Vehicle",
                50,
                123.32,
                23.4,
                66,
                -54.67,
                30);
            newId = _createVehicleCommandHandler.CreateVehicle(newVehicle);
            newId.Should().BeNull();

            newVehicle = new CreateVehicleCommandParameter(
                "Test Vehicle",
                50,
                123.32,
                23.4,
                66,
                54.67,
                -3);
            newId = _createVehicleCommandHandler.CreateVehicle(newVehicle);
            newId.Should().BeNull();

            _vehicleRepositoryMock.Verify(x => x.CreateVehicle(It.IsAny <Vehicle>()), Times.Never());
        }
예제 #3
0
        public Guid?CreateVehicle(CreateVehicleCommandParameter createVehicleCommandParameter)
        {
            if (string.IsNullOrWhiteSpace(createVehicleCommandParameter.Name))
            {
                return(null);
            }
            if (createVehicleCommandParameter.Speed < 0)
            {
                return(null);
            }
            if (createVehicleCommandParameter.EngineTemperature < 0)
            {
                return(null);
            }
            if (createVehicleCommandParameter.RadiatorPressure < 0)
            {
                return(null);
            }
            if (createVehicleCommandParameter.FuelRemaining < 0)
            {
                return(null);
            }

            var newVehicle = Vehicle.CreateNew(
                createVehicleCommandParameter.Name,
                createVehicleCommandParameter.Speed,
                createVehicleCommandParameter.Latitude,
                createVehicleCommandParameter.Longitude,
                createVehicleCommandParameter.EngineTemperature,
                createVehicleCommandParameter.RadiatorPressure,
                createVehicleCommandParameter.FuelRemaining);

            try
            {
                _vehicleRepository.CreateVehicle(newVehicle);
            }
            catch (Exception e)
            {
                return(null);
            }

            return(newVehicle.VehicleId);
        }
        public IActionResult CreateVehicle([FromBody] CreateVehicleApiParameters createVehicleApiParameters)
        {
            var vehicle = new CreateVehicleCommandParameter(
                createVehicleApiParameters.Name,
                createVehicleApiParameters.Speed,
                createVehicleApiParameters.Latitude,
                createVehicleApiParameters.Longitude,
                createVehicleApiParameters.EngineTemperature,
                createVehicleApiParameters.RadiatorPressure,
                createVehicleApiParameters.FuelRemaining);

            var vehicleId = _createVehicleCommandHandler.CreateVehicle(vehicle);

            if (vehicleId == null)
            {
                return(BadRequest());
            }

            return(Ok(vehicleId));
        }