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.GetSharedWithUserSensors(null)); }
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); }