コード例 #1
0
        public void IsHome_EnoughTimeSinceYesterdaysInterval_IsHome()
        {
            // Arrange
            var timeIntervals = new List <TimeInterval>();

            timeIntervals.Add(new TimeInterval(18, 0, 23, 59));

            var config = new MowControlConfig()
            {
                TimeIntervals                   = timeIntervals,
                AverageWorkPerDayHours          = 12,
                MaxHourlyThunderPercent         = 0,
                MaxHourlyPrecipitaionMillimeter = 0
            };
            var systemTime      = new TestSystemTime(new DateTime(2018, 6, 22, 1, 00, 0));
            var powerSwitch     = new TestPowerSwitch(true);
            var systemStartTime = systemTime.Now.AddDays(-1);

            var homeSensor = new TimeBasedHomeSensor(systemStartTime, config, powerSwitch, systemTime);

            // Act

            // Assert
            Assert.IsTrue(homeSensor.IsHome);
        }
コード例 #2
0
        public void IsHome_FirstCheck_IsHome()
        {
            // Arrange
            var timeIntervals = new List <TimeInterval>();

            timeIntervals.Add(new TimeInterval(6, 0, 12, 0));

            var config = new MowControlConfig()
            {
                TimeIntervals                   = timeIntervals,
                AverageWorkPerDayHours          = 12,
                MaxHourlyThunderPercent         = 0,
                MaxHourlyPrecipitaionMillimeter = 0
            };

            var systemTime      = new TestSystemTime(new DateTime(2018, 6, 22, 6, 30, 0));
            var powerSwitch     = new TestPowerSwitch(true);
            var systemStartTime = systemTime.Now;

            var homeSensor = new TimeBasedHomeSensor(systemStartTime, config, powerSwitch, systemTime);

            // Act
            bool isHome = homeSensor.IsHome;

            // Assert
            Assert.IsTrue(isHome);
        }
コード例 #3
0
        public void IsHome_JustStoppedMowingAndOnItsWayHome_IsNotHome()
        {
            // Arrange
            var timeIntervals = new List <TimeInterval>();

            timeIntervals.Add(new TimeInterval(6, 0, 12, 0));

            var config = new MowControlConfig()
            {
                TimeIntervals                   = timeIntervals,
                AverageWorkPerDayHours          = 12,
                MaxHourlyThunderPercent         = 0,
                MaxHourlyPrecipitaionMillimeter = 0
            };
            var systemTime      = new TestSystemTime(new DateTime(2018, 6, 22, 12, 15, 0));
            var powerSwitch     = new TestPowerSwitch(true);
            var systemStartTime = systemTime.Now.AddDays(-1);
            var homeSensor      = new TimeBasedHomeSensor(systemStartTime, config, powerSwitch, systemTime);

            // Act
            bool isHome = homeSensor.IsHome; // First is always true

            // Assert
            Assert.IsFalse(isHome);
        }
コード例 #4
0
        public void IsHome_AfterAnIntervalWithPowerOff_IsStillHome()
        {
            // Arrange
            var timeIntervals = new List <TimeInterval>();

            timeIntervals.Add(new TimeInterval(6, 0, 12, 0));

            var config = new MowControlConfig()
            {
                TimeIntervals                   = timeIntervals,
                AverageWorkPerDayHours          = 12,
                MaxHourlyThunderPercent         = 0,
                MaxHourlyPrecipitaionMillimeter = 0
            };

            var systemTime      = new TestSystemTime(new DateTime(2018, 6, 22, 11, 59, 0));
            var powerSwitch     = new TestPowerSwitch(false);
            var systemStartTime = systemTime.Now.AddDays(-1);
            var homeSensor      = new TimeBasedHomeSensor(systemStartTime, config, powerSwitch, systemTime);

            var isHome = homeSensor.IsHome;

            systemTime.TickMinutes(2);
            powerSwitch.TurnOn();

            // Act
            isHome = homeSensor.IsHome;

            // Assert
            Assert.IsTrue(isHome);
        }
コード例 #5
0
ファイル: MowitConfig.cs プロジェクト: XEngima/Apps-Mowit
        public static MowitConfig GetExampleConfig()
        {
            var mowControlConfig = new MowControlConfig()
            {
                TimeIntervals =
                {
                    new TimeInterval(7, 0, 23, 0),
                },
                PowerOnUrl  = "http://example.com/on",
                PowerOffUrl = "http://example.com/off",
            };

            var emailConfig = new EmailConfig();

            return(new MowitConfig
            {
                MowControlConfig = mowControlConfig,
                EmailConfig = emailConfig,
            });
        }