public void Should_process_message()
        {
            //Arrange
            var messageBody    = Encoding.UTF8.GetBytes("test");
            var vehiclePlot    = new VehiclePlot(1, 0, 0, DateTime.UtcNow, EventCode.IgnitionOn);
            var vehiclePlotDto = new VehiclePlotDto
            {
                VehicleId = 1
            };

            _vehiclePlotSerializer.Setup(x => x.Deserialize(It.IsAny <byte[]>()))
            .Returns(vehiclePlotDto);

            _vehiclePlotMapper.Setup(x => x.ToModel(It.IsAny <VehiclePlotDto>()))
            .Returns(vehiclePlot);

            _vehiclePlotService.Setup(x => x.InsertAsync(It.IsAny <VehiclePlot>()));

            var Sut = new MessageProcessingService(_vehiclePlotSerializer.Object, _vehiclePlotMapper.Object, _vehiclePlotService.Object, _logger.Object);

            //Act
            Sut.Process(messageBody);

            //Assert
            _vehiclePlotSerializer.Verify(x => x.Deserialize(messageBody));
            _vehiclePlotMapper.Verify(x => x.ToModel(vehiclePlotDto));
            _vehiclePlotService.Verify(x => x.InsertAsync(vehiclePlot));
        }
        public void Should_send_vehicle_plot()
        {
            //Arrange
            var vehiclePlot    = new VehiclePlot(1, 0, 0, DateTime.UtcNow, EventCode.IgnitionOn);
            var messageBody    = Encoding.UTF8.GetBytes("test");
            var vehiclePlotDto = new VehiclePlotDto
            {
                VehicleId = 1,
                Latitude  = 0,
                Longitude = 0,
                Timestamp = DateTime.UtcNow,
                EventCode = EventCode.IgnitionOn
            };

            _vehiclePlotMapper.Setup(x => x.ToDto(It.IsAny <VehiclePlot>()))
            .Returns(vehiclePlotDto);

            _vehiclePlotSerializer.Setup(x => x.Serialize(It.IsAny <VehiclePlotDto>()))
            .Returns(messageBody);

            var Sut = new VehiclePlotService(_messagingService.Object, _vehiclePlotMapper.Object, _vehiclePlotSerializer.Object);

            //Act
            Sut.Send(vehiclePlot);

            //Assert
            _vehiclePlotMapper.Verify(x => x.ToDto(vehiclePlot));
            _vehiclePlotSerializer.Verify(x => x.Serialize(vehiclePlotDto));
            _messagingService.Verify(x => x.SendMessage(messageBody));
        }
Beispiel #3
0
        public byte[] Serialize(VehiclePlotDto vehiclePlotDto)
        {
            using (var memoryStream = new MemoryStream())
            {
                var binaryFormatter = new BinaryFormatter();

                binaryFormatter.Serialize(memoryStream, vehiclePlotDto);

                var compressed = Compress(memoryStream.ToArray());
                return(compressed);
            }
        }
Beispiel #4
0
        public async Task Should_insert_vehicle_plot(int id, string definition, double score)
        {
            //Arrange
            _database.Setup(x => x.SortedSetAddAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <double>(), It.IsAny <When>(), It.IsAny <CommandFlags>()));

            var vehiclePlotDto = new VehiclePlotDto
            {
                Id         = id,
                Definition = definition,
                Score      = score
            };

            var Sut = new VehiclePlotDao(_connectionMultiplexer.Object);

            //Act
            await Sut.InsertAsync(vehiclePlotDto);

            //Assert
            _database.Verify(x => x.SortedSetAddAsync($"vehicle-plot-delivery:vehicle:{vehiclePlotDto.Id}", vehiclePlotDto.Definition, vehiclePlotDto.Score,
                                                      When.Always, CommandFlags.None));
        }
        public void Should_map_dto_to_vehicle_plot(int vehicleId, double latitude, double longitude, EventCode eventCode)
        {
            //Arrange
            var vehiclePlotDto = new VehiclePlotDto
            {
                VehicleId = vehicleId,
                Latitude  = latitude,
                Longitude = longitude,
                Timestamp = DateTime.UtcNow,
                EventCode = eventCode
            };

            //Act
            var vehiclePlot = Sut.ToModel(vehiclePlotDto);

            //Assert
            vehiclePlot.VehicleId.Should().Be(vehiclePlotDto.VehicleId);
            vehiclePlot.Latitude.Should().Be(vehiclePlotDto.Latitude);
            vehiclePlot.Longitude.Should().Be(vehiclePlotDto.Longitude);
            vehiclePlot.Timestamp.Should().Be(vehiclePlotDto.Timestamp);
            vehiclePlot.EventCode.Should().Be(vehiclePlotDto.EventCode);
        }
Beispiel #6
0
        public void Should_serialize_vehicle_plot_dto_to_byte_and_convert_back(int vehicleId, double latitude, double longitude, EventCode eventCode)
        {
            //Arrange
            var vehiclePlotDto = new VehiclePlotDto
            {
                VehicleId = vehicleId,
                Latitude  = latitude,
                Longitude = longitude,
                Timestamp = DateTime.UtcNow,
                EventCode = eventCode
            };

            //Act
            var actualSerialized   = Sut.Serialize(vehiclePlotDto);
            var actualDeserialized = Sut.Deserialize(actualSerialized);

            //Assert
            actualDeserialized.VehicleId.Should().Be(vehiclePlotDto.VehicleId);
            actualDeserialized.Latitude.Should().Be(vehiclePlotDto.Latitude);
            actualDeserialized.Longitude.Should().Be(vehiclePlotDto.Longitude);
            actualDeserialized.Timestamp.Should().Be(vehiclePlotDto.Timestamp);
            actualDeserialized.EventCode.Should().Be(vehiclePlotDto.EventCode);
        }
        public async Task Should_insert_vehicle_plot(int vehicleId, double latitude, double longitude, EventCode eventCode)
        {
            //Arrange
            var vehiclePlotDto = new VehiclePlotDto
            {
                Id = vehicleId
            };

            _vehiclePlotFactory.Setup(x => x.ToDto(It.IsAny <VehiclePlot>()))
            .Returns(vehiclePlotDto);

            _vehiclePlotDao.Setup(x => x.InsertAsync(It.IsAny <VehiclePlotDto>()))
            .Returns(Task.FromResult(0));

            var Sut         = new VehiclePlotRepository(_vehiclePlotFactory.Object, _vehiclePlotDao.Object);
            var vehiclePlot = new VehiclePlot(vehicleId, latitude, longitude, DateTime.UtcNow, eventCode);

            //Act
            await Sut.InsertAsync(vehiclePlot);

            //Assert
            _vehiclePlotFactory.Verify(x => x.ToDto(vehiclePlot));
            _vehiclePlotDao.Verify(x => x.InsertAsync(vehiclePlotDto));
        }
 public VehiclePlot ToModel(VehiclePlotDto vehiclePlotDto)
 {
     return(new VehiclePlot(vehiclePlotDto.VehicleId, vehiclePlotDto.Latitude, vehiclePlotDto.Longitude, vehiclePlotDto.Timestamp, vehiclePlotDto.EventCode));
 }