Exemplo n.º 1
0
        public async Task Change_Description_When_Invoked()
        {
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                             .Options;

            var    sensorId    = 1;
            string description = "testchangeddescription";

            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensor = new UserSensors
                {
                    Id          = 1,
                    Description = "testinitialdescription"
                };

                assertContext.UserSensors.Add(userSensor);
                assertContext.SaveChanges();

                var userSensorService = new UserSensorService(assertContext);
                await userSensorService.ChangeDescriptionAsync(sensorId, description);

                Assert.AreEqual(description, userSensor.Description);
            }
        }
        public async Task Change_Longitude_When_Invoked()
        {
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                             .Options;

            var longitude = 3;
            var latitude  = 2;


            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensor = new UserSensors
                {
                    Id        = 1,
                    Longitude = 2,
                    Latitude  = 2
                };

                assertContext.UserSensors.Add(userSensor);
                assertContext.SaveChanges();

                var userSensorService = new UserSensorService(assertContext);
                await userSensorService.ChangeCoordinatesAsync(1, longitude, latitude);

                Assert.AreEqual(longitude, userSensor.Longitude);
            }
        }
        public async Task Change_UpdateInterval_When_Invoked()
        {
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                             .Options;

            var sensorId       = 1;
            int updateInterval = 2;

            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensor = new UserSensors
                {
                    Id             = 1,
                    UpdateInterval = 33
                };

                assertContext.UserSensors.Add(userSensor);
                assertContext.SaveChanges();

                var userSensorService = new UserSensorService(assertContext);
                await userSensorService.ChangeUpdatenIntervalAsync(sensorId, updateInterval);

                Assert.AreEqual(updateInterval, userSensor.UpdateInterval);
            }
        }
Exemplo n.º 4
0
        public async Task Change_IsPublic_When_Invoked()
        {
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                             .Options;

            var  sensorId = 1;
            bool isPublic = false;

            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensor = new UserSensors
                {
                    Id       = 1,
                    IsPublic = true
                };

                assertContext.UserSensors.Add(userSensor);
                assertContext.SaveChanges();

                var userSensorService = new UserSensorService(assertContext);
                await userSensorService.ChangeIsPublicAsync(sensorId, isPublic);

                Assert.AreEqual(isPublic, userSensor.IsPublic);
            }
        }
Exemplo n.º 5
0
 public IndexViewModel(UserSensors usersensors)
 {
     this.SensorName   = usersensors.Name;
     this.Longitude    = usersensors.Longitude;
     this.Longitude    = usersensors.Latitude;
     this.UserMinValue = usersensors.UserMinValue;
     this.UserMaxValue = usersensors.UserMaxValue;
     this.Value        = usersensors.Value;
 }
Exemplo n.º 6
0
 public UserSensorsViewModel(UserSensors sensors)
 {
     this.Id                     = sensors.Id;
     this.UserId                 = sensors.UserId;
     this.SensorId               = sensors.SensorId;
     this.Longitude              = sensors.Longitude;
     this.Latitude               = sensors.Latitude;
     this.MinValue               = sensors.UserMinValue;
     this.MaxValue               = sensors.UserMaxValue;
     this.UpdateInterval         = sensors.UpdateInterval;
     this.Name                   = sensors.Name;
     this.IsPublic               = sensors.IsPublic;
     this.IsRequiredNotification = sensors.IsRequiredNotification;
 }
Exemplo n.º 7
0
 public SensorEditViewModel(UserSensors userSensors)
 {
     this.Id                     = userSensors.Id;
     this.UserId                 = userSensors.UserId;
     this.SensorId               = userSensors.SensorId;
     this.MinValue               = userSensors.MinValue;
     this.MaxValue               = userSensors.MaxValue;
     this.Longitude              = userSensors.Longitude;
     this.Latitude               = userSensors.Latitude;
     this.UpdateInterval         = userSensors.UpdateInterval;
     this.Name                   = userSensors.Name;
     this.IsPublic               = userSensors.IsPublic;
     this.IsRequiredNotification = userSensors.IsRequiredNotification;
 }
Exemplo n.º 8
0
 public SensorTableViewModel(UserSensors userSensors)
 {
     this.Id                     = userSensors.Id;
     this.User                   = userSensors.User;
     this.UserId                 = userSensors.UserId;
     this.SensorId               = userSensors.SensorId;
     this.Longitude              = userSensors.Longitude;
     this.Latitude               = userSensors.Latitude;
     this.UpdateInterval         = userSensors.UpdateInterval;
     this.Name                   = userSensors.Name;
     this.Description            = userSensors.Description;
     this.IsPublic               = userSensors.IsPublic;
     this.IsRequiredNotification = userSensors.IsRequiredNotification;
     this.Value                  = userSensors.Value;
 }
 public RegisterSensorViewModel(UserSensors userSensors, string newUserId, string newSensorId)
 {
     this.Id                     = userSensors.Id;
     this.UserId                 = userSensors.UserId;
     this.SensorId               = userSensors.SensorId;
     this.MinValue               = userSensors.MinValue;
     this.MaxValue               = userSensors.MaxValue;
     this.UpdateInterval         = userSensors.UpdateInterval;
     this.Name                   = userSensors.Name;
     this.IsPublic               = userSensors.IsPublic;
     this.IsRequiredNotification = userSensors.IsRequiredNotification;
     this.Latitude               = userSensors.Latitude;
     this.Longitude              = userSensors.Longitude;
     this.NewSensorId            = newSensorId;
     this.NewUserId              = newUserId;
     this.Description            = userSensors.Description;
 }
        public async Task ThrowException_When_MinIsLessThanSensorMin()
        {
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                             .Options;

            var ApiID = Guid.NewGuid().ToString();

            using (var arrangeContext = new SmartDormitoryDbContext(contextOptions))
            {
                var sensorForDB = new Sensor
                {
                    Id           = 1,
                    ApiId        = ApiID,
                    CurrentValue = 10,
                    Description  = "Description",
                    Name         = "Name",
                    MinValue     = 1,
                    MaxValue     = 100,
                    MinPollingIntervalInSeconds = 60,
                    SensorTypeId = 1,
                    LastUpdate   = DateTime.Now,
                };

                var userSensorForDB = new UserSensors
                {
                    Id           = 1,
                    UserMinValue = 1,
                    UserMaxValue = 100,
                    SensorId     = 1
                };

                arrangeContext.UserSensors.Add(userSensorForDB);
                arrangeContext.Sensors.Add(sensorForDB);
                arrangeContext.SaveChanges();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensorService = new UserSensorService(assertContext);

                await Assert.ThrowsExceptionAsync <ArgumentOutOfRangeException>(async() => await userSensorService.ChangeMinMaxAsync(1, 0, 1));
            }
        }
Exemplo n.º 11
0
        public void ReturnUserSensor_When_PassedId_IsValid()
        {
            //Arrange
            var contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                                 .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                                 .Options;

            var UserId = Guid.NewGuid().ToString();

            using (var arrangeContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensor = new UserSensors
                {
                    Id                     = 1,
                    UserId                 = UserId,
                    Value                  = 10,
                    Description            = "Description",
                    Name                   = "Name",
                    MinValue               = 1,
                    MaxValue               = 100,
                    UpdateInterval         = 60,
                    Type                   = 1,
                    LastUpdatedOn          = DateTime.Now,
                    IsPublic               = false,
                    IsRequiredNotification = false,
                    Latitude               = 0,
                    Longitude              = 0,
                    UserMaxValue           = 99,
                    UserMinValue           = 2,
                    SensorId               = 1
                };

                arrangeContext.UserSensors.Add(userSensor);
                arrangeContext.SaveChanges();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var userSensorService = new UserSensorService(assertContext);
                var userSensor        = userSensorService.GetUserSensorsById(1);

                Assert.AreEqual(userSensor.UserId, UserId);
            }
        }
        public async Task Change_Max_When_Invoked()
        {
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                             .Options;

            var min = 2;
            var max = 2;

            var ApiID = Guid.NewGuid().ToString();

            using (var assertContext = new SmartDormitoryDbContext(contextOptions))
            {
                var sensorForDB = new Sensor
                {
                    Id           = 1,
                    ApiId        = ApiID,
                    CurrentValue = 10,
                    Description  = "Description",
                    Name         = "Name",
                    MinValue     = 1,
                    MaxValue     = 100,
                    MinPollingIntervalInSeconds = 60,
                    SensorTypeId = 1,
                    LastUpdate   = DateTime.Now,
                };

                var userSensorForDB = new UserSensors
                {
                    Id           = 1,
                    UserMinValue = 1,
                    UserMaxValue = 100,
                    SensorId     = 1
                };

                assertContext.Sensors.Add(sensorForDB);
                assertContext.UserSensors.Add(userSensorForDB);
                var userSensorService = new UserSensorService(assertContext);
                await userSensorService.ChangeMinMaxAsync(1, min, max);

                Assert.AreEqual(max, userSensorForDB.UserMaxValue);
            }
        }
Exemplo n.º 13
0
 public UserSensorModel(UserSensors userSensor)
 {
     this.Id              = userSensor.Id;
     this.IcbSensorId     = userSensor.Sensor.IcbSensorId;
     this.Tag             = userSensor.Sensor.Tag;
     this.Name            = userSensor.Name;
     this.Description     = userSensor.Description;
     this.PollingInterval = userSensor.PollingInterval;
     this.TimeStamp       = userSensor.Sensor.TimeStamp;
     this.Value           = userSensor.Sensor.Value;
     this.MinValue        = userSensor.MinValue;
     this.MaxValue        = userSensor.MaxValue;
     this.ModifiedOn      = userSensor.Sensor.ModifiedOn;
     this.IsPublic        = userSensor.IsPublic;
     this.Alarm           = userSensor.Alarm;
     this.Latitude        = userSensor.Latitude;
     this.Longtitude      = userSensor.Longitude;
     this.ImageUrl        = userSensor.ImageUrl;
     this.IsDeleted       = userSensor.IsDeleted;
     this.MeasureType     = userSensor.Sensor.MeasureType.Type;
 }
Exemplo n.º 14
0
 public SensorViewModel(UserSensors userSensors)
 {
     this.Id              = userSensors.Id;
     this.IcbSensorId     = userSensors.Sensor.IcbSensorId;
     this.Name            = userSensors.Name;
     this.UserName        = userSensors.User.UserName;
     this.Description     = userSensors.Description;
     this.Tag             = userSensors.Sensor.Tag;
     this.Value           = userSensors.Sensor.Value;
     this.PollingInterval = userSensors.PollingInterval;
     this.ModifiedOn      = userSensors.Sensor.ModifiedOn;
     this.Alarm           = userSensors.Alarm;
     this.Latitude        = userSensors.Latitude;
     this.Longtitude      = userSensors.Longitude;
     this.URL             = userSensors.Sensor.Url;
     this.IsPublic        = userSensors.IsPublic;
     this.MinValue        = userSensors.MinValue;
     this.MaxValue        = userSensors.MaxValue;
     this.ImageURL        = userSensors.ImageUrl;
     this.MeasureType     = userSensors.Sensor.MeasureType.Type;
 }
Exemplo n.º 15
0
 public SensorDetailsViewModel(UserSensors userSensors, SensorValidationsViewModel sensorValidations)
 {
     this.Id                     = userSensors.Id;
     this.UserId                 = userSensors.UserId;
     this.SensorId               = userSensors.SensorId;
     this.MinValue               = userSensors.UserMinValue;
     this.MaxValue               = userSensors.UserMaxValue;
     this.UserMaxValue           = userSensors.UserMaxValue.ToString();
     this.UpdateInterval         = userSensors.UpdateInterval;
     this.Name                   = userSensors.Name;
     this.IsPublic               = userSensors.IsPublic;
     this.IsRequiredNotification = userSensors.IsRequiredNotification;
     this.Latitude               = userSensors.Latitude;
     this.Longitude              = userSensors.Longitude;
     this.SensorValidations      = sensorValidations;
     this.TypeId                 = userSensors.Type;
     this.Description            = userSensors.Description;
     if (userSensors.Type == 4)
     {
         this.UserMinValue = userSensors.UserMinValue.ToString();
     }
 }
Exemplo n.º 16
0
        public async Task AddSensorAsync(string userId, int sensorId, string name, string description, double minValue, double maxValue, int pollingInterval, double latitude, double longitude, bool isPublic, bool alarm, string imageUrl)
        {
            Validator.IfNull <ArgumentNullException>(userId, "Sensor Id cannot be less or equal 0!");
            Validator.IfNull <ArgumentNullException>(name, "Name cannot be null!");
            Validator.IfNull <ArgumentNullException>(description, "Description cannot be null!");
            Validator.IfIsNotPositive(sensorId, "Sensor Id cannot be less than 0!");
            Validator.IfIsNotInRangeInclusive(name.Length, 3, 20, "Name must be between 3 and 20 symbols!");
            Validator.IfIsNotInRangeInclusive(description.Length, 3, 250, "Description must be between 3 and 250 symbols!");
            Validator.IfNull <ArgumentNullException>(imageUrl, "Image URL cannot be null or empty!");
            Validator.IfIsNotInRangeInclusive(pollingInterval, 10, 40, "Polling interval must be between 10 and 40 seconds!");

            var sensor = await this.context.Sensors.FirstOrDefaultAsync(s => s.Id == sensorId);

            Validator.IfNull <ArgumentNullException>(sensor, $"Sensor with Id {sensorId} does not exist!");

            Validator.IfIsNotInRangeInclusive(minValue, sensor.MinValue, sensor.MaxValue, $"Minimal value must be between {sensor.MinValue} and {sensor.MaxValue}!");
            Validator.IfIsNotInRangeInclusive(maxValue, sensor.MinValue, sensor.MaxValue, $"Maximal value must be between {sensor.MinValue} and {sensor.MaxValue}!");

            var newUserSensor = new UserSensors
            {
                SensorId        = sensorId,
                UserId          = userId,
                Name            = name,
                Description     = description,
                MinValue        = minValue,
                MaxValue        = maxValue,
                PollingInterval = pollingInterval,
                Latitude        = latitude,
                Longitude       = longitude,
                IsPublic        = isPublic,
                Alarm           = alarm,
                ImageUrl        = imageUrl,
                IsDeleted       = false
            };

            this.context.UserSensors.Add(newUserSensor);
            this.context.SaveChanges();
        }
Exemplo n.º 17
0
        public UserSensors RegisterSensor(double lng, double lat, double minValue, double maxValue, int updateInterval, string name, string description,
                                          bool isPublic, bool notification, string defaultPosition, string userId, string sensorId)
        {
            if (minValue > maxValue)
            {
                throw new ArgumentOutOfRangeException();
            }

            if (sensorId == null)
            {
                throw new ArgumentNullException();
            }

            var sensor = this.context.Sensors.Find(int.Parse(sensorId));

            if (minValue < sensor.MinValue)
            {
                throw new ArgumentOutOfRangeException();
            }

            if (maxValue > sensor.MaxValue)
            {
                throw new ArgumentOutOfRangeException();
            }

            if (updateInterval < sensor.MinPollingIntervalInSeconds)
            {
                throw new ArgumentOutOfRangeException();
            }

            if (name == null || description == null || userId == null)
            {
                throw new ArgumentNullException();
            }

            var userSensor = new UserSensors()
            {
                Name                   = name,
                Description            = description,
                UpdateInterval         = updateInterval,
                Latitude               = lat,
                Longitude              = lng,
                IsPublic               = isPublic,
                IsRequiredNotification = notification,
                UserId                 = userId,
                SensorId               = int.Parse(sensorId),
                Value                  = sensor.CurrentValue,
                LastUpdatedOn          = sensor.LastUpdate,
                Type                   = sensor.SensorTypeId
            };

            if (defaultPosition == null)
            {
                userSensor.UserMinValue = minValue;
                userSensor.UserMaxValue = maxValue;
                userSensor.MinValue     = sensor.MinValue;
                userSensor.MaxValue     = sensor.MaxValue;
            }
            else
            {
                userSensor.MinValue     = 0;
                userSensor.MaxValue     = 1;
                userSensor.UserMaxValue = int.Parse(defaultPosition);
                userSensor.UserMinValue = int.Parse(defaultPosition);
            }

            this.context.UserSensors.Add(userSensor);
            this.context.SaveChanges();

            return(userSensor);
        }
Exemplo n.º 18
0
        public void ReturnCountOfAllNotDeletedUserSensorsBySearchName(string searchName)
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <smartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnCountOfAllNotDeletedUserSensorsBySearchName")
                             .Options;

            using (var assertContext = new smartDormitoryDbContext(contextOptions))
            {
                var userId      = Guid.NewGuid().ToString();
                var userSensor1 = new UserSensors
                {
                    UserId          = userId,
                    SensorId        = 1,
                    Name            = "Some name",
                    Description     = "Some description",
                    MinValue        = 11,
                    MaxValue        = 18,
                    PollingInterval = 13,
                    Latitude        = 1.15,
                    Longitude       = 5.15,
                    IsPublic        = true,
                    Alarm           = false,
                    IsDeleted       = false,
                    ImageUrl        = "Some Url",
                };

                var userSensor2 = new UserSensors
                {
                    UserId          = userId,
                    SensorId        = 1,
                    Name            = "Some name1",
                    Description     = "Some description1",
                    MinValue        = 12,
                    MaxValue        = 19,
                    PollingInterval = 23,
                    Latitude        = 2.15,
                    Longitude       = 6.15,
                    IsPublic        = true,
                    Alarm           = false,
                    IsDeleted       = true,
                    ImageUrl        = "Some Url 1",
                };
                var userSensor3 = new UserSensors
                {
                    UserId          = userId + "123",
                    SensorId        = 1,
                    Name            = "Some name2",
                    Description     = "Some description2",
                    MinValue        = 13,
                    MaxValue        = 20,
                    PollingInterval = 33,
                    Latitude        = 3.15,
                    Longitude       = 7.15,
                    IsPublic        = false,
                    Alarm           = false,
                    IsDeleted       = false,
                    ImageUrl        = "Some Url 2",
                };

                assertContext.UserSensors.AddRange(userSensor1, userSensor2, userSensor3);

                assertContext.Users.AddRange(new User
                {
                    Id          = userId,
                    UserName    = "******",
                    UserSensors = new List <UserSensors>()
                    {
                        userSensor1, userSensor2
                    }
                },
                                             new User
                {
                    Id          = userId + "123",
                    UserName    = "******",
                    UserSensors = new List <UserSensors>()
                    {
                        userSensor3
                    }
                });

                assertContext.SaveChanges();
            }

            using (var assertContext = new smartDormitoryDbContext(contextOptions))
            {
                var userSensorServiceMock = new UserSensorService(assertContext);

                // Act
                var totalSensorsCountMock = userSensorServiceMock.TotalByName(searchName);

                // Assert
                Assert.IsTrue(totalSensorsCountMock == 1);
            }
        }
Exemplo n.º 19
0
        public async Task ReturnAllPublicUserSensors()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <smartDormitoryDbContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnAllPublicUserSensors")
                             .Options;

            using (var assertContext = new smartDormitoryDbContext(contextOptions))
            {
                await assertContext.Sensors.AddAsync(
                    new Sensor
                {
                    Id = 1,
                    PollingInterval = 10,
                    Description     = "Some description",
                    Tag             = "Some tag",
                    MinValue        = 10.00,
                    MaxValue        = 20.00,
                    TimeStamp       = DateTime.Now,
                    Value           = 15.00,
                    Url             = "Some URL",
                    ModifiedOn      = DateTime.Now,
                });

                var userId      = Guid.NewGuid().ToString();
                var userSensor1 = new UserSensors
                {
                    UserId          = userId,
                    SensorId        = 1,
                    Name            = "Some name",
                    Description     = "Some description",
                    MinValue        = 11,
                    MaxValue        = 18,
                    PollingInterval = 13,
                    Latitude        = 1.15,
                    Longitude       = 5.15,
                    IsPublic        = true,
                    Alarm           = false,
                    IsDeleted       = false,
                    ImageUrl        = "Some Url",
                };

                var userSensor2 = new UserSensors
                {
                    UserId          = userId,
                    SensorId        = 1,
                    Name            = "Some name1",
                    Description     = "Some description1",
                    MinValue        = 12,
                    MaxValue        = 19,
                    PollingInterval = 23,
                    Latitude        = 2.15,
                    Longitude       = 6.15,
                    IsPublic        = true,
                    Alarm           = false,
                    IsDeleted       = true,
                    ImageUrl        = "Some Url 1",
                };
                var userSensor3 = new UserSensors
                {
                    UserId          = userId,
                    SensorId        = 1,
                    Name            = "Some name2",
                    Description     = "Some description2",
                    MinValue        = 13,
                    MaxValue        = 20,
                    PollingInterval = 33,
                    Latitude        = 3.15,
                    Longitude       = 7.15,
                    IsPublic        = false,
                    Alarm           = false,
                    IsDeleted       = false,
                    ImageUrl        = "Some Url 2",
                };

                await assertContext.UserSensors.AddRangeAsync(userSensor1, userSensor2, userSensor3);

                await assertContext.Users.AddAsync(new User
                {
                    Id          = userId,
                    UserName    = "******",
                    UserSensors = new List <UserSensors>()
                    {
                        userSensor1, userSensor2, userSensor3
                    }
                });

                await assertContext.SaveChangesAsync();
            }

            using (var assertContext = new smartDormitoryDbContext(contextOptions))
            {
                var userSensorServiceMock = new UserSensorService(assertContext);

                // Act
                var allSensors = await userSensorServiceMock.GetAllPublicUsersSensorsAsync();

                var sensors = allSensors.ToList();

                // Assert
                Assert.IsTrue(sensors.Count == 1);
            }
        }
Exemplo n.º 20
0
 public SensorMapViewModel(UserSensors sensors)
 {
     this.Id        = sensors.Id;
     this.Longitude = sensors.Longitude;
     this.Latitude  = sensors.Latitude;
 }