Exemple #1
0
        public async Task DeleteNotification_WhenPassedValidId()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "DeleteNotification_WhenPassedValidId")
                             .Options;

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

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                await assertContext.Notifications.AddRangeAsync(new Notification
                {
                    Id        = existingId,
                    Message   = "Some message",
                    Title     = "Some title",
                    IsDeleted = false,
                });

                await assertContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new NotificationService(assertContext);
                await sut.Delete(existingId);

                Assert.IsTrue(assertContext.Notifications.Any(n => n.Id == existingId && n.IsDeleted == true));
            }
        }
Exemple #2
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);
            }
        }
        public async Task ReturnCorrectSensorsList_WhenCalled()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnCorrectSensorsCount_WhenCalled")
                             .Options;

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

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                await assertContext.IcbSensors.AddRangeAsync(new IcbSensor
                {
                    Id = existingId,
                    PollingInterval = 10,
                    Description     = "Some description",
                    Tag             = "Some tag",
                    MinRangeValue   = 10,
                    MaxRangeValue   = 20,
                    IsDeleted       = false
                });

                await assertContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var measureTypeServiceMock = new Mock <IMeasureTypeService>();
                var sut = new IcbSensorsService(assertContext, measureTypeServiceMock.Object);
                IEnumerable <IcbSensor> result = await sut.GetAll();

                Assert.IsTrue(result.Count() == 1);
            }
        }
Exemple #4
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);
            }
        }
Exemple #5
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 ReturnTrue_WhenMeasureTypeExists()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnTrue_WhenMeasureTypeExists")
                             .Options;

            var existingId          = Guid.NewGuid().ToString();
            var existingMeasureUnit = "ExistingMeasureUnit";
            var existingSensorType  = "ExistingSensorType";
            var existingMeasureType = new MeasureType
            {
                Id                 = existingId,
                MeasureUnit        = existingMeasureUnit,
                SuitableSensorType = existingSensorType,
                IsDeleted          = false
            };

            using (var arrangeContext = new SmartDormitoryContext(contextOptions))
            {
                await arrangeContext.MeasureTypes.AddAsync(existingMeasureType);

                await arrangeContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new MeasureTypeService(assertContext);
                var result = await sut.Exists(existingId);

                Assert.IsTrue(result);
            }
        }
        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);
            }
        }
        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_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());
            }
        }
Exemple #11
0
        public async Task ReturnCorrectCount_WhenPassedValidId()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnCorrectCount_WhenPassedValidId")
                             .Options;

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

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                await assertContext.Notifications.AddRangeAsync(new Notification
                {
                    Id         = Guid.NewGuid().ToString(),
                    Message    = "Some message",
                    Title      = "Some title",
                    IsDeleted  = false,
                    ReceiverId = existingId
                });

                await assertContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new NotificationService(assertContext);
                var result = await sut.GetUnseenCount(existingId);

                Assert.IsTrue(result == 1);
            }
        }
        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 Successfully_Call_AddRole_Method_When_Parameters_Are_Valid()
        {
            // BAD TEST - NOT ISOLATED
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "RemoveRole_Successfully_Call_AddRole_Method_When_Parameters_Are_Valid")
                             .Options;
            string userId = Guid.NewGuid().ToString();

            user = new User()
            {
                Id       = userId,
                UserName = "******"
            };

            userManagerMock = MockUserManager <User>();
            roleManagerMock = MockRoleManager();

            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Users.AddAsync(user);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var userService = new UserService(assertContext, userManagerMock.Object, roleManagerMock.Object);
                await userService.RemoveRole(userId, It.IsAny <string>());

                userManagerMock.Verify(x => x.RemoveFromRoleAsync(It.IsAny <User>(), It.IsAny <string>()), Times.Once);
            }
        }
Exemple #14
0
        public async Task NotAddSensor_WhenPassedInvalidMeasureType()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: " NotAddSensor_WhenPassedInvalidMeasureType")
                             .Options;

            var newSensor = new ApiSensorDetailsDTO
            {
                ApiSensorId = Guid.NewGuid().ToString(),
                MinPollingIntervalInSeconds = 10,
                Description = "Some description",
                Tag         = "Some tag",
                MeasureType = "Inexisting measure type"
            };

            var sensorsToAdd = new List <ApiSensorDetailsDTO>()
            {
                newSensor
            };

            // Act and assert
            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                var measureTypeServiceMock = new Mock <IMeasureTypeService>();
                var sut = new IcbSensorsService(actContext, measureTypeServiceMock.Object);

                await sut.AddSensors(sensorsToAdd);

                var actualCount = await actContext.IcbSensors.CountAsync();

                Assert.AreEqual(0, actualCount);
            }
        }
Exemple #15
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 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_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 RestoreMeasureType_IfItIsSoftDeleted()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "RestoreMeasureType_IfItIsSoftDeleted")
                             .Options;

            var deletedId                 = Guid.NewGuid().ToString();
            var deletedMeasureUnit        = "Some soft deleted measure unit";
            var deletedSuitableSensorType = "Some soft deleted sensor type";

            using (var arrangeContext = new SmartDormitoryContext(contextOptions))
            {
                await arrangeContext.MeasureTypes.AddAsync(
                    new MeasureType
                {
                    Id                 = deletedId,
                    MeasureUnit        = deletedMeasureUnit,
                    SuitableSensorType = deletedSuitableSensorType,
                    IsDeleted          = true
                });

                await arrangeContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new MeasureTypeService(assertContext);

                await sut.Create(deletedMeasureUnit, deletedSuitableSensorType);

                Assert.IsTrue(assertContext.MeasureTypes.Any(mt => mt.Id == deletedId && mt.IsDeleted == false));
            }
        }
Exemple #20
0
        public async Task Return_Valid_Users_Count()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Return_Valid_Users_Count")
                             .Options;

            string userId = "myId";

            user = new User()
            {
                Id       = userId,
                UserName = "******"
            };

            userManagerMock = MockUserManager <User>();
            roleManagerMock = MockRoleManager();
            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                await actContext.Users.AddAsync(user);

                await actContext.SaveChangesAsync();
            }

            // Act && Assert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var userService = new UserService(assertContext, userManagerMock.Object, roleManagerMock.Object);

                var usersCount = await userService.TotalUsers();

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

            var existingId                 = Guid.NewGuid().ToString();
            var existingMeasureUnit        = "Some existing measure unit";
            var existingSuitableSensorType = "Some existing sensor type";

            using (var arrangeContext = new SmartDormitoryContext(contextOptions))
            {
                await arrangeContext.MeasureTypes.AddAsync(
                    new MeasureType
                {
                    Id                 = existingId,
                    MeasureUnit        = existingMeasureUnit,
                    SuitableSensorType = existingSuitableSensorType,
                    IsDeleted          = false
                });

                await arrangeContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new MeasureTypeService(assertContext);

                await sut.DeleteType(existingId);

                Assert.IsTrue(assertContext.MeasureTypes.Any(mt => mt.Id == existingId && mt.IsDeleted == true));
            }
        }
        public async Task ThrowsEntityAlreadyExistsException_IfMeasureTypeExists()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "ThrowsEntityAlreadyExistsException_IfMeasureTypeExists")
                             .Options;

            var existingId                 = Guid.NewGuid().ToString();
            var existingMeasureUnit        = "Some existing measure unit";
            var existingSuitableSensorType = "Some existing sensor type";
            var softDeletedMeasureType     = new MeasureType
            {
                Id                 = existingId,
                MeasureUnit        = existingMeasureUnit,
                SuitableSensorType = existingSuitableSensorType,
                IsDeleted          = false
            };

            using (var arrangeContext = new SmartDormitoryContext(contextOptions))
            {
                await arrangeContext.MeasureTypes.AddAsync(softDeletedMeasureType);

                await arrangeContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new MeasureTypeService(assertContext);

                await Assert.ThrowsExceptionAsync <EntityAlreadyExistsException>(
                    () => sut.Create(existingMeasureUnit, existingSuitableSensorType), "\nMeasure type is already present in the database.");
            }
        }
        public async Task Return_CorrectIcbSensor_WhenFoundId()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "Return_CorrectUser_WhenFoundId")
                             .Options;
            string id = Guid.NewGuid().ToString();

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                await assertContext.IcbSensors.AddAsync(new IcbSensor
                {
                    Id = id,
                    PollingInterval = 10,
                    Description     = "Some description",
                    Tag             = "Some tag",
                    MinRangeValue   = 10,
                    MaxRangeValue   = 20
                });

                await assertContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var measureTypeServiceMock = new Mock <IMeasureTypeService>();
                var sut    = new IcbSensorsService(assertContext, measureTypeServiceMock.Object);
                var result = await sut.GetById(id);

                Assert.IsNotNull(result);
                Assert.IsTrue(id.Equals(result.Id));
            }
        }
 public UserService(SmartDormitoryContext context,
                    UserManager <User> userManager, RoleManager <IdentityRole> roleManager)
     : base(context)
 {
     this.userManager = userManager;
     this.roleManager = roleManager;
 }
Exemple #25
0
        public async Task AddCorrectSensor_WhenPassedValidMeasureType()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "AddCorrectSensor_WhenPassedValidMeasureType")
                             .Options;

            var existingmeasureTypeId = Guid.NewGuid().ToString();
            var existingMeasureType   = new MeasureType
            {
                Id                 = existingmeasureTypeId,
                MeasureUnit        = "Existing unit",
                SuitableSensorType = "Some string"
            };

            string newApiSensorId = Guid.NewGuid().ToString();
            int    newApiSensorPollingInterval = 10;
            string newApiSensorDescription     = "Some description";
            string newApiSensorTag             = "Some tag";
            var    newApiSensor = new ApiSensorDetailsDTO
            {
                ApiSensorId = newApiSensorId,
                MinPollingIntervalInSeconds = newApiSensorPollingInterval,
                Description = newApiSensorDescription,
                Tag         = newApiSensorTag,
                MeasureType = "Existing unit"
            };

            var sensorsToAdd = new List <ApiSensorDetailsDTO>()
            {
                newApiSensor
            };

            using (var arrangeContext = new SmartDormitoryContext(contextOptions))
            {
                await arrangeContext.MeasureTypes.AddAsync(existingMeasureType);

                await arrangeContext.SaveChangesAsync();
            }

            // Act and assert
            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                var measureTypeServiceMock = new Mock <IMeasureTypeService>();
                var sut = new IcbSensorsService(actContext, measureTypeServiceMock.Object);

                await sut.AddSensors(sensorsToAdd);

                var createdSensorId = actContext
                                      .IcbSensors
                                      .FirstOrDefaultAsync(s => s.Id == newApiSensorId &&
                                                           s.Description == newApiSensorDescription &&
                                                           s.Tag == newApiSensorTag &&
                                                           s.PollingInterval == newApiSensorPollingInterval &&
                                                           s.MeasureTypeId == existingmeasureTypeId);

                Assert.IsNotNull(createdSensorId);
            }
        }
        public async Task ReturnCorrectList_WhenPassedValidParams()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnCorrectList_WhenPassedValidParams")
                             .Options;

            var existingmeasureTypeId = Guid.NewGuid().ToString();
            var existingMeasureType   = new MeasureType
            {
                Id                 = existingmeasureTypeId,
                MeasureUnit        = "Existing unit",
                SuitableSensorType = "Some string"
            };

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

            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                await assertContext.MeasureTypes.AddAsync(existingMeasureType);

                await assertContext.IcbSensors.AddRangeAsync(new IcbSensor
                {
                    Id = existingId,
                    PollingInterval = 10,
                    Description     = "Some description",
                    Tag             = "Some tag",
                    MinRangeValue   = 10,
                    MaxRangeValue   = 20,
                    IsDeleted       = false,
                    MeasureTypeId   = existingmeasureTypeId
                },
                                                             new IcbSensor
                {
                    Id = Guid.NewGuid().ToString(),
                    PollingInterval = 10,
                    Description     = "Some description",
                    Tag             = "Some tag",
                    MinRangeValue   = 10,
                    MaxRangeValue   = 20,
                    IsDeleted       = true,
                    MeasureTypeId   = existingmeasureTypeId
                });

                await assertContext.SaveChangesAsync();
            }

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var measureTypeServiceMock = new Mock <IMeasureTypeService>();
                var sut    = new IcbSensorsService(assertContext, measureTypeServiceMock.Object);
                var result = await sut.GetAllByMeasureTypeId(measureTypeId : existingmeasureTypeId);

                Assert.IsTrue(result.Count() == 1);
                Assert.IsTrue(result.Any(s => s.Id.Equals(existingId)));
            }
        }
Exemple #27
0
        public async Task AddSensor_WhenPassedValidMeasureType()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "AddSensor_WhenPassedValidMeasureType")
                             .Options;

            var existingmeasureTypeId = Guid.NewGuid().ToString();
            var existingMeasureType   = new MeasureType
            {
                Id                 = existingmeasureTypeId,
                MeasureUnit        = "Existing unit",
                SuitableSensorType = "Some string"
            };

            string newApiSensorId = Guid.NewGuid().ToString();
            var    newApiSensor   = new ApiSensorDetailsDTO
            {
                ApiSensorId = newApiSensorId,
                MinPollingIntervalInSeconds = 10,
                Description = "Some description",
                Tag         = "Some tag",
                MeasureType = "Existing unit"
            };

            var sensorsToAdd = new List <ApiSensorDetailsDTO>()
            {
                newApiSensor
            };

            using (var arrangeContext = new SmartDormitoryContext(contextOptions))
            {
                await arrangeContext.MeasureTypes.AddAsync(existingMeasureType);

                await arrangeContext.SaveChangesAsync();
            }

            // Act and assert
            using (var actContext = new SmartDormitoryContext(contextOptions))
            {
                var measureTypeServiceMock = new Mock <IMeasureTypeService>();
                var sut = new IcbSensorsService(actContext, measureTypeServiceMock.Object);

                await sut.AddSensors(sensorsToAdd);

                var actualCount = await actContext.IcbSensors.CountAsync();

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

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut = new NotificationService(assertContext);

                await Assert.ThrowsExceptionAsync <EntityDoesntExistException>(
                    () => sut.ReadAll(Guid.NewGuid().ToString()));
            }
        }
Exemple #29
0
        public async Task ReturnZero_IfNoMeasureTypes()
        {
            // Arrange
            contextOptions = new DbContextOptionsBuilder <SmartDormitoryContext>()
                             .UseInMemoryDatabase(databaseName: "ReturnZero_IfNoMeasureTypes")
                             .Options;

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new MeasureTypeService(assertContext);
                var result = await sut.TotalCount();

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

            // Act && Asert
            using (var assertContext = new SmartDormitoryContext(contextOptions))
            {
                var sut    = new MeasureTypeService(assertContext);
                var result = await sut.GetMeasureType("Some inexisting measure unit", "Some inexisting senstor type");

                Assert.IsNull(result);
            }
        }