public void PropertyIsDeletedRemainAsTrue_WhenItWasTrue() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); int sensorId = 2; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = sensorId, Name = "termometur", URL = "theGreatUrl", PollingInterval = 20, IsPublic = true, OwnerId = "stringId", IsDeleted = true } }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); //Act sensorServices.DeleteSensor(sensorId); //Assert Assert.AreEqual(true, sensors.First().IsDeleted); }
public void ReturnListOfValues() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); int id = 1; var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); var valueHistory = new List <ValueHistory>() { new ValueHistory { ValueSensorId = id, Date = DateTime.ParseExact("03/03/2017 11:21:45", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture), Value = 21.1 }, new ValueHistory { ValueSensorId = id, Date = DateTime.ParseExact("03/03/2017 11:21:50", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture), Value = 23.2 }, new ValueHistory { ValueSensorId = id, Date = DateTime.ParseExact("03/03/2017 11:21:55", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture), Value = 12.2 } }; var valueSensor = new ValueTypeSensor() { Id = id, CurrentValue = 15.1, Maxvalue = 30, MinValue = 10, MeasurementType = "temperature", ValueHistory = valueHistory }; var historySetMock = new Mock <DbSet <ValueHistory> >().SetupData(valueHistory); dbContextMock.SetupGet(m => m.ValueHistory).Returns(historySetMock.Object); //Act List <SensorApiUpdate> result = sensorServices.HistoryDataForValueSensorsById(id).ToList(); //Assert Assert.AreEqual(3, result.Count()); Assert.AreEqual(valueHistory[0].Value.ToString(), result[0].Value); }
public void CallValueHistoryOnce_WhenSensorIsExistent() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); int id = 1; var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); var valueHistory = new List <ValueHistory>() { new ValueHistory { ValueSensorId = id, Date = DateTime.ParseExact("03/03/2017 11:21:45", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture), Value = 1.0 }, new ValueHistory { ValueSensorId = id, Date = DateTime.ParseExact("03/03/2017 11:21:50", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture), Value = 0.0 }, new ValueHistory { ValueSensorId = id, Date = DateTime.ParseExact("03/03/2017 11:21:55", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture), Value = 0.0 } }; var valueSensor = new ValueTypeSensor() { Id = id, CurrentValue = 15.1, Maxvalue = 30, MinValue = 10, MeasurementType = "temperature", ValueHistory = valueHistory }; var historySetMock = new Mock <DbSet <ValueHistory> >().SetupData(valueHistory); dbContextMock.SetupGet(m => m.ValueHistory).Returns(historySetMock.Object); //Act sensorServices.HistoryDataForValueSensorsById(id).ToList(); //Assert dbContextMock.Verify(d => d.ValueHistory, Times.Once()); }
public void ThrowArgumentNullException_WhenParameterIsNull() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act && Assert Assert.ThrowsException <ArgumentNullException>(() => sensorServices.SendEmailToTheUserOfTheOfflineSensor(null)); }
public void CallSensorsOnce() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act sensorServices.UpdateSensors(); //Assert dbContextMock.Verify(d => d.Sensors, Times.Once); }
public void CallSensorsOnce() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var userMock = new Mock <ApplicationUser>(); string username = "******"; userMock.SetupGet(u => u.UserName).Returns(username); var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura" }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = 5, Owner = userMock.Object, Name = "termometur", URL = "theGreatUrl", PollingInterval = 20, IsPublic = true, IsDeleted = false, OwnerId = "stringId", ValueTypeSensor = termometer, IsBoolType = false } }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act sensorServices.GetAllPublicSensors(); //Assert dbContextMock.Verify(d => d.Sensors, Times.Once()); }
public void MakeValueHasAlreadyBeenChangedForThisInvalidValueToFalse_WhenCurrentValueIsInRange() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var userMock = new Mock <ApplicationUser>(); string email = "[email protected]"; string username = "******"; userMock.SetupGet(u => u.Email).Returns(email); userMock.SetupGet(u => u.UserName).Returns(username); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura" }; Sensor sensor = new Sensor() { Id = 5, Owner = userMock.Object, Name = "termometur", URL = "theGreatUrl", PollingInterval = 20, IsPublic = true, IsDeleted = false, OwnerId = "stringId", ValueTypeSensor = termometer, IsBoolType = false }; //Act sensorServices.SendEmailIfNeeded(sensor); //Assert Assert.AreEqual(false, sensorServices.ValueHasAlreadyBeenChangedForThisInvalidValue); }
public void ReturnListOfAllPublicSensorDataModels_WhenIsAdminIsFalse() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var userMock = new Mock <ApplicationUser>(); bool IsAdmin = false; var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura" }; var door = new BoolTypeSensor() { CurrentValue = true, MeasurementType = "Open/Close" }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = 5, Name = "termometur", IsBoolType = false, URL = "theGreatUrl", PollingInterval = 20, ValueTypeSensor = termometer, IsPublic = true, IsShared = false, OwnerId = "stringId", Owner = userMock.Object, IsDeleted = true }, new Sensor() { Id = 7, Name = "Door", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, BoolTypeSensor = door, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = userMock.Object, IsDeleted = false }, }; userMock.SetupGet(u => u.UserName).Returns("OwnerOfSensor"); var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act List <SensorDataModel> result = sensorServices.GetAllSensors(IsAdmin).ToList(); //Assert Assert.AreEqual(1, result.Count()); Assert.AreEqual(sensors[1].Name, result[0].Name); dbContextMock.Verify(d => d.Sensors, Times.Once()); }
public void CallSensorsOnce_WhenSensorIsExistent() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var sensorMock = new Mock <ISensorDataModel>(); int firstSensorId = 2; int secondSensorId = 7; string firstUsername = "******"; string firstUserId = "firstUserId"; string secondUsername = "******"; string secondUserId = "secondUserId"; sensorMock.Setup(x => x.Id).Returns(firstSensorId); var firstUserMock = new Mock <ApplicationUser>(); firstUserMock.Setup(u => u.UserName).Returns(firstUsername); firstUserMock.Setup(u => u.Id).Returns(firstUserId); var secondUserMock = new Mock <ApplicationUser>(); secondUserMock.Setup(u => u.UserName).Returns(secondUsername); secondUserMock.Setup(u => u.Id).Returns(secondUserId); List <ApplicationUser> users = new List <ApplicationUser>() { firstUserMock.Object, secondUserMock.Object }; var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura" }; var door = new BoolTypeSensor() { CurrentValue = true, MeasurementType = "Open/Close" }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = firstSensorId, Name = "termometur", IsBoolType = false, URL = "theGreatUrl", PollingInterval = 20, ValueTypeSensor = termometer, IsPublic = true, IsShared = true, OwnerId = "stringId", Owner = firstUserMock.Object, IsDeleted = false }, new Sensor() { Id = secondSensorId, Name = "Door", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, BoolTypeSensor = door, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = firstUserMock.Object, IsDeleted = false }, }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); var usersSetMock = new Mock <DbSet <ApplicationUser> >().SetupData(users); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); dbContextMock.SetupGet(m => m.Users).Returns(usersSetMock.Object); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act sensorServices.ShareSensorWithUser(firstSensorId, secondUsername); //Assert dbContextMock.Verify(d => d.Users, Times.Once()); dbContextMock.Verify(d => d.Sensors, Times.Once()); }
public void CallSensorsOnceAndReturnSensorWithId_WhenSensorIsExistent() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var sensorMock = new Mock <ISensorDataModel>(); int Id = 2; sensorMock.Setup(x => x.Id).Returns(Id); var userMock = new Mock <ApplicationUser>(); var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura" }; var door = new BoolTypeSensor() { CurrentValue = true, MeasurementType = "Open/Close" }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = Id, Name = "termometur", IsBoolType = false, URL = "theGreatUrl", PollingInterval = 20, ValueTypeSensor = termometer, IsPublic = true, IsShared = false, OwnerId = "stringId", Owner = userMock.Object, IsDeleted = false }, new Sensor() { Id = 7, Name = "Door", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, BoolTypeSensor = door, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = userMock.Object, IsDeleted = false }, }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act var resultSensor = sensorServices.GetUserSensorById(Id); //Assert Assert.AreEqual(Id, resultSensor.Id); dbContextMock.Verify(d => d.Sensors, Times.Once()); }
public void ShouldGetUsersSharedSensors() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var ownerMock = new Mock <ApplicationUser>(); var userToShareWithMock = new Mock <ApplicationUser>(); string username = "******"; string email = "*****@*****.**"; ownerMock.SetupGet(u => u.UserName).Returns(username); ownerMock.SetupGet(u => u.Email).Returns(email); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); List <ApplicationUser> users = new List <ApplicationUser> { new ApplicationUser { UserName = "******", Email = "*****@*****.**" }, new ApplicationUser { UserName = "******", Email = "*****@*****.**" }, new ApplicationUser { UserName = "******", Email = "*****@*****.**" }, ownerMock.Object }; List <string> usernames = new List <string> { "Ivan", "Mariq", "Prolet" }; var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura", IsConnected = true }; var door = new BoolTypeSensor() { CurrentValue = true, MeasurementType = "Open/Close", IsConnected = true }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = 4, Name = "termometur", Description = "meresht temperatura", IsBoolType = false, URL = "theGreatUrl", PollingInterval = 20, IsPublic = true, IsShared = true, OwnerId = "stringId", Owner = ownerMock.Object, IsDeleted = false, SharedWithUsers = users, ValueTypeSensor = termometer, }, new Sensor() { Id = 7, Name = "Door", Description = "meresht otvarqne i zatvarqne", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = ownerMock.Object, IsDeleted = false, BoolTypeSensor = door }, }; List <Sensor> sharedSensors = new List <Sensor>(); sharedSensors.Add(sensors[0]); ownerMock.SetupGet(u => u.SharedSensors).Returns(sharedSensors); var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); var usersSetMock = new Mock <DbSet <ApplicationUser> >().SetupData(users); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); dbContextMock.SetupGet(m => m.Users).Returns(usersSetMock.Object); //Act List <SensorDataModel> result = sensorServices.GetSharedWithUserSensors(username).ToList(); //Assert Assert.AreEqual(1, result.Count); Assert.AreEqual(sensors[0].IsShared, result[0].IsShared); dbContextMock.Verify(d => d.Users, Times.Once); }
public void ReturnListOfAllSensorForUser() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var sensorMock = new Mock <ISensorDataModel>(); int Id = 2; sensorMock.Setup(x => x.Id).Returns(Id); var userMock = new Mock <ApplicationUser>(); string username = "******"; userMock.SetupGet(u => u.UserName).Returns(username); var secondUserMock = new Mock <ApplicationUser>(); string secondUsername = "******"; secondUserMock.SetupGet(u => u.UserName).Returns(secondUsername); var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura", IsConnected = true }; var door = new BoolTypeSensor() { CurrentValue = true, MeasurementType = "Open/Close", IsConnected = true }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = Id, Name = "termometur", IsBoolType = false, URL = "theGreatUrl", PollingInterval = 20, ValueTypeSensor = termometer, IsPublic = true, IsShared = false, OwnerId = "stringId", Owner = userMock.Object, IsDeleted = true, }, new Sensor() { Id = 7, Name = "Door", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, BoolTypeSensor = door, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = userMock.Object, IsDeleted = false }, new Sensor() { Id = 9, Name = "Door", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, BoolTypeSensor = door, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = secondUserMock.Object, IsDeleted = false }, }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act List <SensorDataModel> result = sensorServices.GetAllSensorsForUser(username).ToList(); //Assert Assert.AreEqual(1, result.Count()); Assert.AreEqual(sensors[1].Id, result[0].Id); }
public void ReturnListOfSensorDataModels() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var userMock = new Mock <ApplicationUser>(); string username = "******"; userMock.SetupGet(u => u.UserName).Returns(username); var termometer = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Temperatura" }; var wetness = new ValueTypeSensor() { MinValue = 15, Maxvalue = 30, CurrentValue = 20, MeasurementType = "Vlajnost" }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = 5, Owner = userMock.Object, Name = "termometur", URL = "theGreatUrl", PollingInterval = 20, IsPublic = true, IsDeleted = false, OwnerId = "stringId", ValueTypeSensor = termometer, IsBoolType = false }, new Sensor() { Id = 7, Owner = userMock.Object, Name = "vlajnost", URL = "theGreatUrlPart2", PollingInterval = 25, IsPublic = false, IsDeleted = false, OwnerId = "stringId", ValueTypeSensor = wetness, IsBoolType = false }, }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); //Act List <SensorDataModel> result = sensorServices.GetAllPublicSensors().ToList(); //Assert Assert.AreEqual(1, result.Count()); Assert.AreEqual(sensors[0].Name, result[0].Name); }
public void ReturnSensorDataModelWithSharedUsersName() { //Arrange var dbContextMock = new Mock <ApplicationDbContext>(); var httpClientMock = new Mock <IHttpClientProvider>(); var emailServiceMock = new Mock <IEmailService>(); var ownerMock = new Mock <ApplicationUser>(); var userToShareWithMock = new Mock <ApplicationUser>(); int Id = 4; var sensorServices = new Dataflow.DataServices.SensorService(dbContextMock.Object, httpClientMock.Object, emailServiceMock.Object); List <ApplicationUser> users = new List <ApplicationUser> { new ApplicationUser { UserName = "******", Email = "*****@*****.**" }, new ApplicationUser { UserName = "******", Email = "*****@*****.**" }, new ApplicationUser { UserName = "******", Email = "*****@*****.**" } }; List <string> usernames = new List <string> { "Ivan", "Mariq", "Prolet" }; List <Sensor> sensors = new List <Sensor>() { new Sensor() { Id = Id, Name = "termometur", IsBoolType = false, URL = "theGreatUrl", PollingInterval = 20, IsPublic = true, IsShared = true, OwnerId = "stringId", Owner = ownerMock.Object, IsDeleted = false, SharedWithUsers = users }, new Sensor() { Id = 7, Name = "Door", IsBoolType = true, URL = "theGreatUrlPart2", PollingInterval = 25, IsPublic = false, IsShared = false, OwnerId = "stringId", Owner = ownerMock.Object, IsDeleted = false }, }; var sensorsSetMock = new Mock <DbSet <Sensor> >().SetupData(sensors); dbContextMock.SetupGet(m => m.Sensors).Returns(sensorsSetMock.Object); //Act SensorDataModel result = sensorServices.GetUsersSharedSensor(Id); //Assert Assert.AreEqual(usernames.Count, result.SharedWithUsers.Count); Assert.AreEqual(usernames.First(), result.SharedWithUsers.First()); dbContextMock.Verify(d => d.Sensors, Times.Once); }