public void SensorEventLifetime_SerializesToJson()
        {
            //arrange

            DateTime since = new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            var lifetime1 = new SensorEventLifetime()
            {
                Length = 1.0, Units = TimeSpanUnits.Hours, Since = since
            };
            var lifetime2 = new SensorEventLifetime()
            {
                Length = 0.42, Units = TimeSpanUnits.Seconds, Since = since
            };

            //act

            string actual1 = JsonConvert.SerializeObject(lifetime1);
            string actual2 = JsonConvert.SerializeObject(lifetime2);

            //assert

            StringAssert.IsMatch(@"""length"":1.0", actual1);
            StringAssert.IsMatch(@"""units"":""hours""", actual1);
            StringAssert.IsMatch(@"""since"":""20150101T000000Z""", actual1);

            StringAssert.IsMatch(@"""length"":0.42", actual2);
            StringAssert.IsMatch(@"""units"":""seconds""", actual2);
            StringAssert.IsMatch(@"""since"":""20150101T000000Z""", actual2);
        }
        public void Default_ReturnsSensorEventMaxLifetime_WhenDefaultIsNull()
        {
            SensorEventLifetime notConfigured = null;

            _mockSensorEventsService
            .Setup(m => m.GetDefaultLifetime())
            .Returns(notConfigured);

            IHttpActionResult actionResult = _controller.Default();
            var contentResult = actionResult as OkNegotiatedContentResult <SensorEventLifetime>;

            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(_lifetimeStub.Length, contentResult.Content.Length);
            Assert.AreEqual(DateTimeKind.Utc, contentResult.Content.Since.Kind);
            Assert.AreEqual(_lifetimeStub.Since, contentResult.Content.Since);
            Assert.AreEqual(_lifetimeStub.Units, contentResult.Content.Units);
        }
        public SensorEventLifetime GetDefaultLifetime()
        {
            var siteSettings = _siteService.GetSiteSettings();
            var sensorEventsSettings = siteSettings.As<SensorEventsSettings>();

            if (sensorEventsSettings == null)
            {
                sensorEventsSettings = new SensorEventsSettings();
                sensorEventsSettings.ContentItem = siteSettings.ContentItem;
            }

            var lifetime = new SensorEventLifetime() {
                Length = sensorEventsSettings.DefaultLifetimeLength,
                Units = sensorEventsSettings.DefaultLifetimeUnits,
                Since = getLifetimeSince(sensorEventsSettings.DefaultLifetimeLength, sensorEventsSettings.DefaultLifetimeUnits)
            };

            return lifetime;
        }
        public SensorEventLifetime GetDefaultLifetime()
        {
            var siteSettings         = _siteService.GetSiteSettings();
            var sensorEventsSettings = siteSettings.As <SensorEventsSettings>();

            if (sensorEventsSettings == null)
            {
                sensorEventsSettings             = new SensorEventsSettings();
                sensorEventsSettings.ContentItem = siteSettings.ContentItem;
            }

            var lifetime = new SensorEventLifetime()
            {
                Length = sensorEventsSettings.DefaultLifetimeLength,
                Units  = sensorEventsSettings.DefaultLifetimeUnits,
                Since  = getLifetimeSince(sensorEventsSettings.DefaultLifetimeLength, sensorEventsSettings.DefaultLifetimeUnits)
            };

            return(lifetime);
        }
        public void Default_ReturnsSensorEventDefaultLifetime()
        {
            var mockDefaultLifetime = new SensorEventLifetime {
                Length = 1,
                Units  = TimeSpanUnits.Hours,
                Since  = new DateTime(1, DateTimeKind.Utc)
            };

            _mockSensorEventsService
            .Setup(m => m.GetDefaultLifetime())
            .Returns(mockDefaultLifetime);

            IHttpActionResult actionResult = _controller.Default();
            var contentResult = actionResult as OkNegotiatedContentResult <SensorEventLifetime>;

            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(mockDefaultLifetime.Length, contentResult.Content.Length);
            Assert.AreEqual(DateTimeKind.Utc, contentResult.Content.Since.Kind);
            Assert.AreEqual(mockDefaultLifetime.Since, contentResult.Content.Since);
            Assert.AreEqual(mockDefaultLifetime.Units, contentResult.Content.Units);
        }
        public void Default_ReturnsSensorEventDefaultLifetime()
        {
            var mockDefaultLifetime = new SensorEventLifetime {
                Length = 1,
                Units = TimeSpanUnits.Hours,
                Since = new DateTime(1, DateTimeKind.Utc)
            };

            _mockSensorEventsService
                .Setup(m => m.GetDefaultLifetime())
                .Returns(mockDefaultLifetime);

            IHttpActionResult actionResult = _controller.Default();
            var contentResult = actionResult as OkNegotiatedContentResult<SensorEventLifetime>;

            Assert.IsNotNull(contentResult);
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(mockDefaultLifetime.Length, contentResult.Content.Length);
            Assert.AreEqual(DateTimeKind.Utc, contentResult.Content.Since.Kind);
            Assert.AreEqual(mockDefaultLifetime.Since, contentResult.Content.Since);
            Assert.AreEqual(mockDefaultLifetime.Units, contentResult.Content.Units);
        }
        public void SensorEventLifetime_SerializesToJson()
        {
            //arrange

            DateTime since = new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            var lifetime1 = new SensorEventLifetime() { Length = 1.0, Units = TimeSpanUnits.Hours, Since = since };
            var lifetime2 = new SensorEventLifetime() { Length = 0.42, Units = TimeSpanUnits.Seconds, Since = since };

            //act

            string actual1 = JsonConvert.SerializeObject(lifetime1);
            string actual2 = JsonConvert.SerializeObject(lifetime2);

            //assert

            StringAssert.IsMatch(@"""length"":1.0", actual1);
            StringAssert.IsMatch(@"""units"":""hours""", actual1);
            StringAssert.IsMatch(@"""since"":""20150101T000000Z""", actual1);

            StringAssert.IsMatch(@"""length"":0.42", actual2);
            StringAssert.IsMatch(@"""units"":""seconds""", actual2);
            StringAssert.IsMatch(@"""since"":""20150101T000000Z""", actual2);
        }