Пример #1
0
        public MeasurementDisplay(Element element, AnomalousMvcContext context, RocketWidget rocketWidget)
        {
            this.context      = context;
            this.element      = element;
            this.rocketWidget = rocketWidget;

            String target = element.GetAttributeString("target");

            if (MeasurementController.tryGetCalculator(target, out measurement))
            {
                switch (element.GetAttributeString("units"))
                {
                case "percent":
                    context.OnLoopUpdate += Context_OnLoopUpdatePercent;
                    break;

                case "centimeters":
                    context.OnLoopUpdate += Context_OnLoopUpdateCm;
                    break;

                case "millimeters":
                default:
                    context.OnLoopUpdate += Context_OnLoopUpdateMm;
                    break;
                }
            }
            else
            {
                Log.Warning("Could not find a measurement named '{0}'. The measurement will not be displayed.", target);
                element.InnerRml = String.Format("Cannot find measurement '{0}' in scene.", target);
            }
        }
Пример #2
0
        public void TestLoad_MeasurementIsNotNull_ShouldCallFactoryCreatMeasurementViewModelCorrectly()
        {
            // Arrange
            var mockedFactory          = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var Measurement = new Measurement();

            var mockedMeasurementService = new Mock <IMeasurementService>();

            mockedMeasurementService.Setup(s => s.GetByDate(It.IsAny <string>(), It.IsAny <DateTime>()))
            .Returns(Measurement);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var date = new DateTime(2, 3, 4);

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act
            controller.Load(date);

            // Assert
            mockedFactory.Verify(f => f.CreateMeasurementViewModel(Measurement, date));
        }
        public async Task GetTemperatureSensor_Found()
        {
            var hueSensorProvider    = Substitute.For <IHueSensorProvider>();
            TemperatureSensor sensor = new TemperatureSensor
            {
                Id   = 6,
                Name = "Sensor6",
                Type = SensorType.Temperature,
                BatteryPercentage = 51,
                State             = new TemperatureSensorState
                {
                    Temperature = 24.57f
                }
            };

            hueSensorProvider.GetTemperatureSensorByIdAsync(6).Returns(Task.FromResult(sensor));
            var controller = new MeasurementController(hueSensorProvider);

            var result = await controller.GetTemperatureSensor(6);

            var okResult     = Assert.IsType <OkObjectResult>(result.Result);
            var sensorResult = Assert.IsType <TemperatureSensor>(okResult.Value);

            Assert.Equal(sensor, sensorResult);
        }
Пример #4
0
        public void TestStats_NoIdProvidedAndIsAuthenticated_ShouldCallAuthenticationProviderCurrentUserId()
        {
            // Arrange
            var model = new MeasurementStatsViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementStatsViewModel(It.IsAny <IEnumerable <Measurement> >())).Returns(model);

            var mockedMeasurementService = new Mock <IMeasurementService>();

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            mockedAuthenticationProvider.Setup(p => p.IsAuthenticated).Returns(true);

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act
            controller.Stats(null);

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once);
        }
Пример #5
0
        public void TestStats_NoIdProvidedAndIsAuthenticated_ShouldSetModelCanDeleteToTrue()
        {
            // Arrange
            var model = new MeasurementStatsViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementStatsViewModel(It.IsAny <IEnumerable <Measurement> >())).Returns(model);

            var mockedMeasurementService = new Mock <IMeasurementService>();

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            mockedAuthenticationProvider.Setup(p => p.IsAuthenticated).Returns(true);

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act
            controller.Stats(null);

            // Assert
            Assert.IsTrue(model.CanDelete);
        }
Пример #6
0
        public void TestStats_ShouldCallFactoryCreateMeasurementStatsViewModel(string userId)
        {
            // Arrange
            var model = new MeasurementStatsViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementStatsViewModel(It.IsAny <IEnumerable <Measurement> >())).Returns(model);

            var measurements = new List <Measurement> {
                new Measurement(), new Measurement()
            };

            var mockedMeasurementService = new Mock <IMeasurementService>();

            mockedMeasurementService.Setup(s => s.GetUserMeasurementsSortedByDate(It.IsAny <string>())).Returns(measurements);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId);

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act
            controller.Stats(null);

            // Assert
            mockedFactory.Verify(f => f.CreateMeasurementStatsViewModel(measurements), Times.Once);
        }
Пример #7
0
        public void TestStats_ShouldRenderDefaultViewWithCorrectModel(string userId)
        {
            // Arrange
            var model = new MeasurementStatsViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementStatsViewModel(It.IsAny <IEnumerable <Measurement> >())).Returns(model);

            var mockedMeasurementService = new Mock <IMeasurementService>();

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId);

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Stats(null))
            .ShouldRenderDefaultPartialView()
            .WithModel <MeasurementStatsViewModel>(m => Assert.AreSame(model, m));
        }
Пример #8
0
        public void TestLoad_ShouldRenderCorrectViewWithModel()
        {
            // Arrange
            var viewModel = new MeasurementViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementViewModel(It.IsAny <Measurement>(), It.IsAny <DateTime>()))
            .Returns(viewModel);

            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var date = new DateTime(2, 3, 4);

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Load(date))
            .ShouldRenderDefaultPartialView()
            .WithModel <MeasurementViewModel>(m => Assert.AreSame(viewModel, m));
        }
Пример #9
0
        public void TestGetMeasurement_ServiceReturnsMeasurement_ShouldRenderPartialViewWithModel(int id)
        {
            // Arrange
            var date = new DateTime(1, 2, 3);

            var measurement = new Measurement {
                Date = date
            };

            var model = new MeasurementViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementViewModel(It.IsAny <Measurement>(), It.IsAny <DateTime>()))
            .Returns(model);

            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var mockedMeasurementService = new Mock <IMeasurementService>();

            mockedMeasurementService.Setup(s => s.GetById(It.IsAny <int>())).Returns(measurement);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.GetMeasurement(id))
            .ShouldRenderPartialView("MeasurementDetails")
            .WithModel <MeasurementViewModel>(model);
        }
Пример #10
0
        public void TestGetMeasurement_ServiceReturnsMeasurement_ShouldCallFactoryCreateMeasurementViewModel(int id)
        {
            // Arrange
            var date = new DateTime(1, 2, 3);

            var measurement = new Measurement {
                Date = date
            };

            var mockedFactory          = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var mockedMeasurementService = new Mock <IMeasurementService>();

            mockedMeasurementService.Setup(s => s.GetById(It.IsAny <int>())).Returns(measurement);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act
            controller.GetMeasurement(id);

            // Assert
            mockedFactory.Verify(f => f.CreateMeasurementViewModel(measurement, date), Times.Once);
        }
        public async Task GetAllSensors_ListValid()
        {
            var           hueSensorProvider = Substitute.For <IHueSensorProvider>();
            List <Sensor> list = new List <Sensor>
            {
                new DummySensor
                {
                    Id   = 1,
                    Name = "Sensor1",
                    Type = SensorType.Dummy,
                    BatteryPercentage = 51
                },
                new TemperatureSensor
                {
                    Id   = 6,
                    Name = "Sensor6",
                    Type = SensorType.Temperature,
                    BatteryPercentage = 51,
                    State             = new TemperatureSensorState
                    {
                        Temperature = 24.57f
                    }
                }
            };

            hueSensorProvider.GetAllSensorsAsync().Returns(Task.FromResult(list));
            var controller = new MeasurementController(hueSensorProvider);

            var result = await controller.GetAllSensors();

            var okResult = Assert.IsType <OkObjectResult>(result.Result);
            var sensors  = Assert.IsType <List <Sensor> >(okResult.Value);

            Assert.Equal(list, sensors);
        }
Пример #12
0
        public void TestSave_ModelStateIsNotValid_ShouldRenderCorrectPartialViewWithModel(int height,
                                                                                          double weightKg,
                                                                                          double bodyFatPercent,
                                                                                          int chest,
                                                                                          int shoulders,
                                                                                          int forearm,
                                                                                          int arm,
                                                                                          int waist,
                                                                                          int hips,
                                                                                          int thighs,
                                                                                          int calves,
                                                                                          int neck,
                                                                                          int wrist,
                                                                                          int ankle,
                                                                                          string userId)
        {
            // Arrange,
            var date = new DateTime(2, 3, 4);

            var model = new MeasurementViewModel
            {
                Date           = date,
                Height         = height,
                WeightKg       = weightKg,
                BodyFatPercent = bodyFatPercent,
                Chest          = chest,
                Shoulders      = shoulders,
                Forearm        = forearm,
                Arm            = arm,
                Waist          = waist,
                Hips           = hips,
                Thighs         = thighs,
                Calves         = calves,
                Neck           = neck,
                Wrist          = wrist,
                Ankle          = ankle
            };

            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            controller.ModelState.AddModelError("", "");

            // Act
            controller.Save(model);

            // Assert
            controller
            .WithCallTo(c => c.Save(model))
            .ShouldRenderPartialView("Load")
            .WithModel <MeasurementViewModel>(m => Assert.AreSame(model, m));
        }
Пример #13
0
        public void TestSave_ModelStateIsValid_ShouldCallAuthenticationProviderCurrentUserId(int height,
                                                                                             double weightKg,
                                                                                             double bodyFatPercent,
                                                                                             int chest,
                                                                                             int shoulders,
                                                                                             int forearm,
                                                                                             int arm,
                                                                                             int waist,
                                                                                             int hips,
                                                                                             int thighs,
                                                                                             int calves,
                                                                                             int neck,
                                                                                             int wrist,
                                                                                             int ankle,
                                                                                             string userId)
        {
            // Arrange,
            var date = new DateTime(2, 3, 4);

            var model = new MeasurementViewModel
            {
                Date           = date,
                Height         = height,
                WeightKg       = weightKg,
                BodyFatPercent = bodyFatPercent,
                Chest          = chest,
                Shoulders      = shoulders,
                Forearm        = forearm,
                Arm            = arm,
                Waist          = waist,
                Hips           = hips,
                Thighs         = thighs,
                Calves         = calves,
                Neck           = neck,
                Wrist          = wrist,
                Ankle          = ankle
            };

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementViewModel(It.IsAny <Measurement>(), It.IsAny <DateTime>()))
            .Returns(model);

            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act
            controller.Save(model);

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once);
        }
        public async Task GetSensor_NotFound()
        {
            var    hueSensorProvider = Substitute.For <IHueSensorProvider>();
            Sensor sensor            = null;

            hueSensorProvider.GetSensorByIdAsync(1).Returns(Task.FromResult(sensor));
            var controller = new MeasurementController(hueSensorProvider);

            var result = await controller.GetSensor(1);

            Assert.IsType <NotFoundResult>(result.Result);
        }
        public async Task GetAllTemperatureSensors_ListNull()
        {
            var hueSensorProvider         = Substitute.For <IHueSensorProvider>();
            List <TemperatureSensor> list = null;

            hueSensorProvider.GetAllTemperatureSensorsAsync().Returns(Task.FromResult(list));
            var controller = new MeasurementController(hueSensorProvider);

            var result = await controller.GetAllTemperatureSensors();

            Assert.IsType <NotFoundResult>(result.Result);
        }
        public async Task GetAllSensors_ListEmpty()
        {
            var           hueSensorProvider = Substitute.For <IHueSensorProvider>();
            List <Sensor> list = new List <Sensor>();

            hueSensorProvider.GetAllSensorsAsync().Returns(Task.FromResult(list));
            var controller = new MeasurementController(hueSensorProvider);

            var result = await controller.GetAllSensors();

            Assert.IsType <NoContentResult>(result.Result);
        }
Пример #17
0
        public async Task get_measurements_with_existing_id()
        {
            var repository    = MeasurementContextMocker.GetInMemoryMeasurementsRepository(nameof(get_measurements_with_existing_id));
            var controller    = new MeasurementController(repository);
            var expectedValue = 0.05m;

            var response = await controller.Get(1) as ObjectResult;

            var measurement = response.Value as Measurement;

            Assert.Equal(200, response.StatusCode);
            Assert.Equal(expectedValue, measurement.Value);
        }
Пример #18
0
        public void DeleteExceptionThrown()
        {
            //Setup
            var measurementServiceMock = new Mock <IMeasurementService>();

            measurementServiceMock.Setup(x => x.Delete(1)).Throws <Exception>();
            var dataModelMock = new Mock <IDataModel>();
            //Execute
            var target  = new MeasurementController(measurementServiceMock.Object, dataModelMock.Object);
            var results = target.Delete(1);

            //Evaluate
            Assert.IsInstanceOf <ExceptionResult>(results);
        }
Пример #19
0
        public async Task get_measurement_with_not_existing_id()
        {
            // Arrange
            var repository      = MeasurementContextMocker.GetInMemoryMeasurementsRepository(nameof(get_measurement_with_not_existing_id));
            var controller      = new MeasurementController(repository);
            var expectedMessage = "The Measurment record couldn't be found";

            // Act
            var response = await controller.Get(10) as ObjectResult;

            // Assert
            Assert.Equal(404, response.StatusCode);
            Assert.Equal(expectedMessage, response.Value);
        }
        public void Index_Action_Returns_Model_Type()
        {
            //arrange
            var _dataRepository = new Mock <IDataRepository>();
            var _controller     = new MeasurementController(_dataRepository.Object);
            var user            = new User();
            //  _dataRepository.Setup(x => x.Get(It.IsAny<string>())).Returns(new List<User>);

            //act
            var result = _controller.Index() as ViewResult;


            //assert
            Assert.AreEqual(user.GetType(), result.Model.GetType());
        }
        public void Index_Action_Display_View_Index()
        {
            //arrange
            var _dataRepository = new Mock <IDataRepository>();
            var _controller     = new MeasurementController(_dataRepository.Object);
            //   _dataRepository.Setup(x => x.Get(It.IsAny<string>())).Returns( new Collection<User>());

            //act
            var result = _controller.Index() as ViewResult;


            //assert
            Assert.IsNotNull(result);
            //Assert.AreEqual("Index",result.ViewName);
        }
Пример #22
0
        public void TestConstructor_PassEverything_ShouldInitializeCorrectly()
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            // Act
            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Assert
            Assert.IsNotNull(controller);
        }
Пример #23
0
        public async Task get_all_measurements()
        {
            // Arrange
            var repository = MeasurementContextMocker.GetInMemoryMeasurementsRepository(nameof(get_all_measurements));
            var controller = new MeasurementController(repository);

            // Act
            var response = await controller.GetAll() as ObjectResult;

            var measurements = response.Value as List <Measurement>;

            // Assert
            Assert.Equal(200, response.StatusCode);
            Assert.Equal(5, measurements.Count);
        }
Пример #24
0
        public void PatchRecordNotFound()
        {
            //Setup
            var measurementServiceMock = new Mock <IMeasurementService>();

            measurementServiceMock.Setup(x => x.Update(It.IsAny <Measurement>())).Returns(false); //this will trigger not found
            var dataModelMock = new Mock <IDataModel>();

            //Execute
            var target  = new MeasurementController(measurementServiceMock.Object, dataModelMock.Object);
            var results = target.Patch(new Measurement());

            //Evalute
            Assert.IsInstanceOf <NotFoundResult>(results);
        }
Пример #25
0
        public void PatchSuccess()
        {
            //Setup
            var measurementServiceMock = new Mock <IMeasurementService>();

            measurementServiceMock.Setup(x => x.Update(It.IsAny <Measurement>())).Returns(true);
            var dataModelMock = new Mock <IDataModel>();

            //Execute
            var target  = new MeasurementController(measurementServiceMock.Object, dataModelMock.Object);
            var results = target.Patch(new Measurement());

            //Evalute
            dataModelMock.Verify(x => x.SaveChanges(), Times.Once);
            Assert.IsInstanceOf <UpdatedODataResult <Measurement> >(results);
        }
Пример #26
0
        public void TestGetMeasurement_ServiceReturnsNull_ShouldRenderPartialViewWithModelNull(int id)
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.GetMeasurement(id))
            .ShouldRenderPartialView("MeasurementDetails");
        }
Пример #27
0
        public void TestLoad_ModelStateIsValid_ShouldCallAuthenticationProviderCurrentUserId()
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act
            controller.Load(new DateTime());

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once);
        }
Пример #28
0
        public void DeleteSuccess()
        {
            //Setup
            var measurementServiceMock = new Mock <IMeasurementService>();

            measurementServiceMock.Setup(x => x.Delete(1)).Returns(true);
            var dataModelMock = new Mock <IDataModel>();

            //Execute
            var target  = new MeasurementController(measurementServiceMock.Object, dataModelMock.Object);
            var results = target.Delete(1);

            //Evalute
            dataModelMock.Verify(x => x.SaveChanges(), Times.Once);
            Assert.IsInstanceOf <StatusCodeResult>(results);
            Assert.AreEqual(HttpStatusCode.NoContent, ((StatusCodeResult)results).StatusCode);
        }
Пример #29
0
        public void TestDeleteMeasurement_ShouldCallAuthenticationProviderCurrentUserId(int id, string userId)
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act
            controller.DeleteMeasurement(id);

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once);
        }
Пример #30
0
        public void TestGetMeasurement_ShouldCallSeasurementServiceGetById(int id)
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act
            controller.GetMeasurement(id);

            // Assert
            mockedMeasurementService.Verify(s => s.GetById(id), Times.Once);
        }