public async Task Handler_return_true_if_reading_is_for_portable_sensor()
        {
            //Arrange
            var apiKey             = CryptoHelper.GenerateApiKey();
            var fakePortableSensor = new PortableSensor()
            {
                Id = 1, ApiKey = apiKey
            };
            var fakeReading = new SensorReadingDTO();

            _dataContextMock.Setup(x => x.Sensors).ReturnsDbSet(new List <Sensor> {
                fakePortableSensor
            });
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);


            //Act
            var cancellationToken = new CancellationToken();
            var command           = new CreateReadingCommand(fakeReading, apiKey);
            var handler           = new CreateReadingCommandHandler(_mediatorMock.Object, _dataContextFactoryMock.Object,
                                                                    _mapperMock.Object);
            var result = await handler.Handle(command, cancellationToken);

            //Assert
            Assert.True(result);
        }
        public async Task Handler_publish_notification_if_reading_is_for_static_sensor()
        {
            //Arrange
            var apiKey           = CryptoHelper.GenerateApiKey();
            var fakeStaticSensor = new StaticSensor {
                Id = 1, ApiKey = apiKey
            };
            var fakeStaticSensorReading = new StaticSensorReading();
            var fakeReadingDTO          = new SensorReadingDTO();
            var fakeReadingsDbSet       = new List <StaticSensorReading>();

            _dataContextMock.Setup(x => x.Sensors).ReturnsDbSet(new List <Sensor> {
                fakeStaticSensor
            });
            _dataContextMock.Setup(x => x.StaticSensorReadings).ReturnsDbSet(fakeReadingsDbSet);
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);
            _mapperMock.Setup(x => x.Map <SensorReadingDTO, StaticSensorReading>(fakeReadingDTO))
            .Returns(fakeStaticSensorReading);


            //Act
            var cancellationToken = new CancellationToken();
            var command           = new CreateReadingCommand(fakeReadingDTO, apiKey);
            var handler           = new CreateReadingCommandHandler(_mediatorMock.Object, _dataContextFactoryMock.Object,
                                                                    _mapperMock.Object);
            var result = await handler.Handle(command, cancellationToken);

            //Assert
            _mediatorMock.Verify(
                x => x.Publish(
                    It.Is <StaticSensorReadingCreatedNotification>(it =>
                                                                   it.SensorId == fakeStaticSensor.Id && it.Reading == fakeStaticSensorReading),
                    It.Is <CancellationToken>(it => it == cancellationToken)), Times.Once);
        }
        public async Task Handler_should_throw_exception_if_sensor_not_found()
        {
            //Arrange
            var apiKey            = CryptoHelper.GenerateApiKey();
            var notExistingApiKey = apiKey.Reverse().ToString();
            var fakeStaticSensor  = new StaticSensor {
                Id = 1, ApiKey = apiKey
            };
            var fakeReading = new SensorReadingDTO();

            _dataContextMock.Setup(x => x.Sensors).ReturnsDbSet(new List <Sensor> {
                fakeStaticSensor
            });
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);

            var cancellationToken = new CancellationToken();
            var command           = new CreateReadingCommand(fakeReading, notExistingApiKey);
            var handler           = new CreateReadingCommandHandler(_mediatorMock.Object, _dataContextFactoryMock.Object,
                                                                    _mapperMock.Object);

            //Act
            Task Act() => handler.Handle(command, cancellationToken);

            //Assert
            await Assert.ThrowsAsync <SensorNotFoundException>(Act);
        }
Ejemplo n.º 4
0
        public async Task Handler_return_true_if_reading_is_for_static_sensor()
        {
            //Arrange
            var apiKey           = ApiKeyHelper.Generate();
            var fakeStaticSensor = new StaticSensor {
                Id = 1, ApiKey = apiKey
            };
            var fakeStaticSensorReading = new StaticSensorReading();
            var fakeReadingDTO          = new SensorReadingDTO();
            var fakeReadingsDbSet       = new List <StaticSensorReading>();

            _dataContextMock.Setup(x => x.Sensors).ReturnsDbSet(new List <Sensor> {
                fakeStaticSensor
            });
            _dataContextMock.Setup(x => x.StaticSensorReadings).ReturnsDbSet(fakeReadingsDbSet);
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);
            _mapperMock.Setup(x => x.Map <SensorReadingDTO, StaticSensorReading>(fakeReadingDTO))
            .Returns(fakeStaticSensorReading);


            //Act
            var cancellationToken = new CancellationToken();
            var command           = new CreateReadingCommand(fakeReadingDTO, apiKey);
            var handler           = new CreateReadingCommandHandler(_mediatorMock.Object, _dataContextFactoryMock.Object,
                                                                    _mapperMock.Object);
            var result = await handler.Handle(command, cancellationToken);

            //Assert
            Assert.True(result);
        }