Ejemplo n.º 1
0
        public async Task Handler_should_throw_not_found_exception_if_sensor_doesnt_exist()
        {
            //Arrange
            _dataContextMock.Setup(x => x.StaticSensors).ReturnsDbSet(new List <StaticSensor>());
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);

            var cancellationToken = new CancellationToken();
            var notification      = new StaticSensorReadingCreatedNotification(0, new StaticSensorReading());
            var handler           = new StaticSensorReadingCreatedNotificationHandler(_pwaDispatchHelperMock.Object,
                                                                                      _sensorCacheHelperMock.Object, _dataContextFactoryMock.Object);

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

            //Assert
            await Assert.ThrowsAsync <SensorNotFoundException>(Act);
        }
Ejemplo n.º 2
0
        public async Task Handler_dispatch_reading_if_sensor_available()
        {
            //Arrange
            var fakeSensor = new StaticSensor
            {
                Id       = 1,
                Readings = new List <StaticSensorReading>
                {
                    new StaticSensorReading
                    {
                        StaticSensorId = 1
                    }
                },
                IsActive  = true,
                IsVisible = true
            };

            var fakeSensorDbSet = new List <StaticSensor> {
                fakeSensor
            };

            _dataContextMock.Setup(x => x.StaticSensors).ReturnsDbSet(fakeSensorDbSet);
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);
            _sensorCacheHelperMock.Setup(x => x.GetPollutionLevelAsync(fakeSensor.Id))
            .Returns(Task.FromResult(PollutionLevel.High));

            var cancellationToken = new CancellationToken();
            var notification      = new StaticSensorReadingCreatedNotification(fakeSensor.Id, fakeSensor.Readings.First());
            var handler           = new StaticSensorReadingCreatedNotificationHandler(_pwaDispatchHelperMock.Object,
                                                                                      _sensorCacheHelperMock.Object, _dataContextFactoryMock.Object);

            //Act
            await handler.Handle(notification, cancellationToken);

            //Assert
            _pwaDispatchHelperMock.Verify(
                x => x.DispatchReadingsForStaticSensor(It.Is <int>(it => it == fakeSensor.Id),
                                                       It.Is <PollutionLevel>(it => it == PollutionLevel.High),
                                                       It.Is <StaticSensorReading>(it => it == notification.Reading)),
                Times.Once);
        }
Ejemplo n.º 3
0
        public async Task Handler_update_cache()
        {
            //Arrange

            var fakeReading = new StaticSensorReading
            {
                Id             = 1,
                StaticSensorId = 1
            };

            var fakeSensor = new StaticSensor
            {
                Id        = 1,
                ApiKey    = ApiKeyHelper.Generate(),
                IsActive  = true,
                IsVisible = true,
                Readings  = new List <StaticSensorReading> {
                    fakeReading
                }
            };
            var fakeSensorDbSet = new List <StaticSensor> {
                fakeSensor
            };

            _dataContextMock.Setup(x => x.Set <StaticSensor>()).ReturnsDbSet(fakeSensorDbSet);
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);

            var cancellationToken = new CancellationToken();
            var notification      = new StaticSensorReadingCreatedNotification(fakeSensor.Id, fakeReading);
            var handler           =
                new StaticSensorReadingCreatedNotificationHandler(_dataContextFactoryMock.Object,
                                                                  _sensorCacheHelperMock.Object);

            //Act
            await handler.Handle(notification, cancellationToken);

            //Assert
            _sensorCacheHelperMock.Verify(
                x => x.UpdateSensorCacheWithReadingAsync(It.Is <StaticSensorReading>(it => it == fakeReading)), Times.Once);
        }
Ejemplo n.º 4
0
        public async Task Handler_should_throw_exception_if_sensor_not_found()
        {
            //Arrange

            var fakeReading = new StaticSensorReading
            {
                Id             = 1,
                StaticSensorId = 1
            };

            var fakeSensor = new StaticSensor
            {
                Id        = 1,
                ApiKey    = ApiKeyHelper.Generate(),
                IsActive  = true,
                IsVisible = true,
                Readings  = new List <StaticSensorReading> {
                    fakeReading
                }
            };
            var fakeSensorDbSet = new List <StaticSensor> ();

            _dataContextMock.Setup(x => x.Set <StaticSensor>()).ReturnsDbSet(fakeSensorDbSet);
            _dataContextFactoryMock.Setup(x => x.Create()).Returns(_dataContextMock.Object);

            var cancellationToken = new CancellationToken();
            var notification      = new StaticSensorReadingCreatedNotification(fakeSensor.Id, fakeReading);
            var handler           =
                new StaticSensorReadingCreatedNotificationHandler(_dataContextFactoryMock.Object,
                                                                  _sensorCacheHelperMock.Object);

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

            //Assert
            await Assert.ThrowsAsync <SensorNotFoundException>(Act);
        }
Ejemplo n.º 5
0
        public async Task Handler_should_dispatch_reading_for_portable_sensor()
        {
            //Arrange
            var fakeSensor = new StaticSensor
            {
                Id = 1
            };
            var fakeSensorReading = new StaticSensorReading
            {
                Id = 1
            };

            var cancellationToken = new CancellationToken();
            var notification      = new StaticSensorReadingCreatedNotification(fakeSensor.Id, fakeSensorReading);
            var handler           = new StaticSensorReadingCreatedNotificationHandler(_adminDispatchHelperMock.Object);

            //Act
            await handler.Handle(notification, cancellationToken);

            //Assert
            _adminDispatchHelperMock.Verify(x =>
                                            x.DispatchReadingsForStaticSensorAsync(It.Is <int>(it => it == fakeSensor.Id),
                                                                                   It.Is <StaticSensorReading>(it => it == fakeSensorReading)), Times.Once);
        }