示例#1
0
        public async Task Return_Valid_Sensor_Enumerable()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "GetAllUserCoordinates_Private_Return_Valid_Sensor_Enumerable")
                             .Options;
            var userId  = Guid.NewGuid().ToString();
            var sensor  = SetupFakeSensor();
            var sensor2 = SetupFakeSensor();

            sensor2.IsPublic = true;
            sensor.UserId    = userId;
            sensor2.UserId   = userId;

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddRangeAsync(new List <Sensor>() { sensor, sensor2 });

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut     = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var sensors = await sut.GetAllUserCoordinates(userId);

                Assert.AreEqual(2, sensors.Count());
            }
        }
        public async Task Restore_Sensor_When_Exists_And_Is_Deleted()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Restore_Sensor_When_Exists_And_Is_Deleted")
                             .Options;

            var sensor = SetupFakeSensor();

            sensor.IsDeleted = true;

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new SensorsService(assertContext,
                                             measureTypeServiceMock.Object);

                await sut.DeleteSensor(sensor.Id);

                var result = await assertContext.Sensors.FirstOrDefaultAsync(s => s.Id == sensor.Id);

                Assert.IsFalse(result.IsDeleted);
            }
        }
        public async Task Return_Valid_Sensor_Enumerable_When_MeasureType_Is_Not_Default()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase
                                 (databaseName: "GetUserSensorsReturn_Return_Valid_Sensor_Enumerable_When_MeasureType_Is_Not_Default")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }
            measureTypeServiceMock
            .Setup(x => x.Exists(It.IsAny <string>()))
            .ReturnsAsync(true);

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut     = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var sensors = await sut.GetUserSensors(sensor.UserId, "", "temperature", -1, -1);

                Assert.AreEqual(1, sensors.Count());
            }
        }
示例#4
0
        public async Task Return_Valid_Sensor_Enumerable()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Private_Return_Valid_Sensor_Enumerable")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut     = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var sensors = await sut.GetAllUserPrivateCoordinates(sensor.UserId);

                Assert.AreEqual(1, sensors.Count());
            }
        }
        public async Task Return_Valid_Sensor_Enumerable_When_SearchTerm_Is_Not_Default()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase
                                 (databaseName: "GetUserSensorsReturn_Return_Valid_Sensor_Enumerable_When_SearchTerm_Is_Not_Default")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut     = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var sensors = await sut.GetUserSensors(sensor.UserId, "description", "all", -1, -1);

                Assert.AreEqual(1, sensors.Count());
            }
        }
        public async Task <List <SensorType> > GetSensorTypesAsync()
        {
            var service = new SensorsService(new Uri("https://inmovery.ru"));
            var results = await service.getSensorTypes();

            return(results);
        }
        public async Task Return_Valid_Sensor_Enumerable_When_MeasureType_Is_Boolean_False()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase
                                 (databaseName: "GetUserSensorsReturn_Return_Valid_Sensor_Enumerable_When_MeasureType_Is_Boolean_False")
                             .Options;

            var sensor = SetupFakeSensor();

            sensor.IcbSensor.MeasureType.SuitableSensorType = "Boolean switch (door/occupancy/etc)";
            sensor.CurrentValue = 0;

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }
            measureTypeServiceMock
            .Setup(x => x.Exists(It.IsAny <string>()))
            .ReturnsAsync(true);

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut     = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var sensors = await sut.GetUserSensors(sensor.UserId, "",
                                                       "all", -1, -1);

                Assert.AreEqual(1, sensors.Count());
            }
        }
        public async Task Return_Valid_Sensor_Enumerable_When_Passed_Parameters_Are_Default()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Return_Valid_Sensor_Enumerable_When_Passed_Parameters_Are_Default")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut     = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var sensors = await sut.AllAdmin();

                Assert.AreEqual(1, sensors.Count());
            }
        }
        public async Task Return_Null_When_Id_Is_Not_Found()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Sensor_Return_Null_When_Id_Is_Not_Found")
                             .Options;

            var sensor = SetupFakeSensor();

            sensor.IsDeleted = true;

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new SensorsService(assertContext,
                                             measureTypeServiceMock.Object);

                var result = await sut.GetSensorById(sensor.Id);

                Assert.AreEqual(null, result);
            }
        }
        public async Task Return_Valid_Sensors_List()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Return_Valid_Sensors_List")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var result = await sut.GetAllForUpdate();

                Assert.AreEqual(1, result.Count());
            }
        }
        public async Task Return_Sensor_When_Id_Is_Found()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Gauge_Return_Sensor_When_Id_Is_Found")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new SensorsService(assertContext,
                                             measureTypeServiceMock.Object);

                var result = await sut.GetGaugeData(sensor.Id);

                Assert.AreEqual(result.CurrentValue, sensor.CurrentValue);
            }
        }
示例#12
0
        public async Task Successfully_Register_Sensor_When_Parameters_Are_Valid()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Successfully_Register_Sensor_When_Parameters_Are_Valid")
                             .Options;

            string icbSensorId = Guid.NewGuid().ToString();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.IcbSensors.AddAsync(new IcbSensor()
                {
                    Id = icbSensorId
                });

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var result = await sut.RegisterNewSensor("userId", icbSensorId, "name", "desc", 50,
                                                         true, true, 40, 50, 20.5, 40.5, true);

                var sensorsCount = await assertContext.Sensors.CountAsync();

                var sensor = await assertContext.Sensors.FirstOrDefaultAsync(x => x.Id == result);

                Assert.AreEqual(result, sensor.Id);
                Assert.AreEqual(1, sensorsCount);
            }
        }
示例#13
0
        public async Task Successfully_Update_Sensor_When_Parameters_Are_Valid()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Successfully_Update_Sensor_When_Parameters_Are_Valid")
                             .Options;

            var sensor = SetupFakeSensor();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Sensors.AddAsync(sensor);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut      = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var resultId = await sut.Update(sensor.Id, sensor.UserId, sensor.IcbSensorId,
                                                sensor.Name, sensor.Description, sensor.PollingInterval, sensor.IsPublic,
                                                sensor.AlarmOn, sensor.MinRangeValue, sensor.MaxRangeValue,
                                                sensor.Coordinates.Longitude, sensor.Coordinates.Latitude, sensor.SwitchOn);

                var resultSensor = await assertContext.Sensors.FirstOrDefaultAsync(s => s.Id == sensor.Id);

                Assert.AreEqual(resultSensor.ModifiedOn.Value.Day, DateTime.Now.Day);
                Assert.AreEqual(resultSensor.Id, sensor.Id);
            }
        }
        public async Task Throw_ArugmentException_When_Passed_Invalid_Guid()
        {
            // Arrange
            var contextMock = new Mock <SmartDormitoryContext>();

            var sut = new SensorsService(contextMock.Object,
                                         measureTypeServiceMock.Object);

            // Act & Assert
            await Assert.ThrowsExceptionAsync <ArgumentException>(
                () => sut.GetSensorById("InvalidGuid"));
        }
        public async Task Throw_EntityDoesntExistException_When_User_Does_Not_Exist()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "GetUsersSensors_Throw_EntityDoesntExistException_When_User_Does_Not_Exist")
                             .Options;

            string userId = Guid.NewGuid().ToString();

            // Act && Assert// Arrange

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new SensorsService(assertContext,
                                             measureTypeServiceMock.Object);

                await Assert.ThrowsExceptionAsync <EntityDoesntExistException>(
                    () => sut.GetUserSensors(userId));
            }
        }
示例#16
0
        public async Task Return_Empty_String_When_Icb_Sensors_Are_Empty()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Return_Valid_Sensor_Enumerable")
                             .Options;

            string expected = "";

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new SensorsService(assertContext, measureTypeServiceMock.Object);
                var result = await sut.RegisterNewSensor(It.IsAny <string>(), "icbSensorId",
                                                         It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(),
                                                         It.IsAny <bool>(), It.IsAny <float>(), It.IsAny <float>(), It.IsAny <double>(),
                                                         It.IsAny <double>(), It.IsAny <bool>());

                Assert.AreEqual(expected, result);
            }
        }
示例#17
0
        public async Task Throw_EntityDoesntExistException_When_Sensor_Does_Not_Exist()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Update_Throw_EntityDoesntExistException_When_Sensor_Does_Not_Exist")
                             .Options;

            string sensorId = Guid.NewGuid().ToString();

            // Act && Assert

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new SensorsService(assertContext,
                                             measureTypeServiceMock.Object);

                await Assert.ThrowsExceptionAsync <EntityDoesntExistException>(
                    () => sut.Update(sensorId, It.IsAny <string>(), It.IsAny <string>(),
                                     It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(),
                                     It.IsAny <bool>(), It.IsAny <float>(), It.IsAny <float>(), It.IsAny <double>(),
                                     It.IsAny <double>(), It.IsAny <bool>()));
            }
        }
示例#18
0
 public UpdateSensorsJob(SensorsService sensorsService)
 {
     this.sensorsService = sensorsService;
 }
示例#19
0
 public DataController(SensorsService sensorsService, WeatherService weatherService)
 {
     this.sensorsService = sensorsService;
     this.weatherService = weatherService;
 }