public void ReturnDefaultViewWithCorrectViewModel() { // Arrange // arrange controller Mock <ApplicationDbContext> mockApplicationDbContext = new Mock <ApplicationDbContext>(); Mock <SensorDbService> mockSensorDbService = new Mock <SensorDbService>(mockApplicationDbContext.Object); Mock <HttpClient> mockHttpClient = new Mock <HttpClient>(); Mock <SensorApiService> mockSensorApiService = new Mock <SensorApiService>(mockHttpClient.Object); // arrange publicSensors SensorDisplayData sensorDisplayData1 = new SensorDisplayData(); SensorDisplayData sensorDisplayData2 = new SensorDisplayData(); List <SensorDisplayData> expected = new List <SensorDisplayData>(); expected.Add(sensorDisplayData1); expected.Add(sensorDisplayData2); // arrange mockSensorDbService mockSensorDbService.Setup(x => x.ListPublicSensorsFromDB()) .Returns(expected); SensorController sensorController = new SensorController(mockSensorDbService.Object, mockSensorApiService.Object); // act and assert sensorController.WithCallTo(c => c.ListAllPublicSensors()) .ShouldRenderDefaultView() .WithModel <List <SensorDisplayData> >(actual => { Assert.IsNotNull(actual); CollectionAssert.AreEquivalent(expected, actual); }); }
public void CallsGetSpecificSensorDisplayDataAsyncInSensorDbService_WhenUserIsLoggedIn() { // Arrange // arrange controller Mock <ApplicationDbContext> mockApplicationDbContext = new Mock <ApplicationDbContext>(); Mock <SensorDbService> mockSensorDbService = new Mock <SensorDbService>(mockApplicationDbContext.Object); Mock <HttpClient> mockHttpClient = new Mock <HttpClient>(); Mock <SensorApiService> mockSensorApiService = new Mock <SensorApiService>(mockHttpClient.Object); string loggedUser = "******"; int testSensorId = 7; SensorDisplayData expected = new SensorDisplayData { SensorId = testSensorId, UserName = loggedUser }; mockSensorDbService.Setup(x => x.GetSpecificSensorDisplayDataAsync(testSensorId)) .Returns(Task.Run(() => expected)); SensorControllerMock sensorController = new SensorControllerMock(loggedUser, mockSensorDbService.Object, mockSensorApiService.Object); // act and assert sensorController.WithCallTo(c => c.ModifySelectedSensor(testSensorId)) .ShouldRenderPartialView("SensorPartialViews/_ModifySelectedSensor") .WithModel <SensorDisplayData>(actual => { Assert.IsNotNull(actual); Assert.IsTrue(actual.SensorId == expected.SensorId); Assert.IsTrue(actual.UserName == expected.UserName); }); }
public async Task ThrowHttpException_WhenUserIsntLoggedIn() { // Arrange // arrange controller Mock <ApplicationDbContext> mockApplicationDbContext = new Mock <ApplicationDbContext>(); Mock <SensorDbService> mockSensorDbService = new Mock <SensorDbService>(mockApplicationDbContext.Object); Mock <HttpClient> mockHttpClient = new Mock <HttpClient>(); Mock <SensorApiService> mockSensorApiService = new Mock <SensorApiService>(mockHttpClient.Object); string loggedUser = "******"; int testSensorId = 7; SensorDisplayData testModel = new SensorDisplayData { SensorId = testSensorId, UserName = "******" }; mockSensorDbService.Setup(x => x.GetSpecificSensorDisplayDataAsync(testSensorId)) .Returns(Task.Run(() => testModel)); SensorControllerMock sensorController = new SensorControllerMock(loggedUser, mockSensorDbService.Object, mockSensorApiService.Object); // act and assert await Assert.ThrowsExceptionAsync <HttpException>(() => sensorController.ModifySelectedSensor(testSensorId)); }
public virtual void ModifySpecificSesnor(SensorDisplayData model) { var sensor = dbContext.Sensors.FirstOrDefault(x => x.SensorId == model.SensorId); sensor.Name = model.SensorName; sensor.MinValue = model.MinValue; sensor.MaxValue = model.MaxValue; sensor.IsPublic = model.IsPublic; sensor.DescriptionGivenByTheUser = model.DescriptionGivenByTheUser; dbContext.SaveChanges(); }
public ActionResult ModifySelectedSensor(SensorDisplayData sensor) { var user = GetLoggedUsername(); if (user != sensor.UserName) { throw new HttpException(403, "Unauthorized Access"); } DBService.ModifySpecificSesnor(sensor); return(View("Success")); }
public void ReturnDefaultViewWithCorrectViewModel() { // Arrange //arrange username string loggeduser = "******"; // arrange controller Mock <ApplicationDbContext> mockApplicationDbContext = new Mock <ApplicationDbContext>(); Mock <SensorDbService> mockSensorDbService = new Mock <SensorDbService>(mockApplicationDbContext.Object); Mock <HttpClient> mockHttpClient = new Mock <HttpClient>(); Mock <SensorApiService> mockSensorApiService = new Mock <SensorApiService>(mockHttpClient.Object); // arrange availableSensorsFromAPI SensorDisplayData sensorDisplayData1 = new SensorDisplayData(); SensorDisplayData sensorDisplayData2 = new SensorDisplayData(); List <SensorDisplayData> expected = new List <SensorDisplayData>(); expected.Add(sensorDisplayData1); expected.Add(sensorDisplayData2); // arrange mockSensorDbService mockSensorDbService.Setup(x => x.ListOwnSensors(loggeduser)) .Returns(expected); // arrange actual controller SensorControllerMock sensorController = new SensorControllerMock(loggeduser, mockSensorDbService.Object, mockSensorApiService.Object); // act and assert sensorController.WithCallTo(c => c.ListPersonalSensors()) .ShouldRenderDefaultView() .WithModel <IEnumerable <SensorDisplayData> >(actual => { Assert.IsNotNull(actual); CollectionAssert.AreEquivalent(expected, actual.ToList()); }); }
public virtual GraphViewModel GetSensorHistory(SensorDisplayData sensor) { var model = new GraphViewModel(); model.DisplayData = sensor; model.JsonList = new List <string>(); if (sensor.MeasurementType != "(true/false)") { foreach (var sensorHistory in dbContext.Sensors.Find(sensor.SensorId).Measurements.ToArray()) { model.JsonList.Add( JsonConvert.SerializeObject(new DateValueViewModel(sensorHistory.Date, sensorHistory.Value))); } } else { foreach (var sensorHistory in dbContext.Sensors.Find(sensor.SensorId).Measurements.ToArray()) { if (sensorHistory.Value == "true") { model.JsonList.Add( JsonConvert.SerializeObject( new DateValueViewModel(sensorHistory.Date, "1"))); } else { model.JsonList.Add( JsonConvert.SerializeObject( new DateValueViewModel(sensorHistory.Date, "0"))); } } } return(model); }
public void CallsModifySpecificSesnorInSensorDbService_WhenUserIsLoggedIn() { // Arrange // arrange controller Mock <ApplicationDbContext> mockApplicationDbContext = new Mock <ApplicationDbContext>(); Mock <SensorDbService> mockSensorDbService = new Mock <SensorDbService>(mockApplicationDbContext.Object); Mock <HttpClient> mockHttpClient = new Mock <HttpClient>(); Mock <SensorApiService> mockSensorApiService = new Mock <SensorApiService>(mockHttpClient.Object); string loggedUser = "******"; SensorDisplayData testSensor = new SensorDisplayData { UserName = loggedUser }; SensorControllerMock sensorController = new SensorControllerMock(loggedUser, mockSensorDbService.Object, mockSensorApiService.Object); //act sensorController.ModifySelectedSensor(testSensor); // act and assert mockSensorDbService.Verify(x => x.ModifySpecificSesnor(testSensor), Times.Once); }