Example #1
0
        public void GetPeriodsAfterShouldReturnPeriodsPartiallyAfter()
        {
            var periodBefore = START_DATETIME.Length(5.secs()).Active();
            var period       = periodBefore.NewPeriodAfter(10.secs()).Length(5.secs()).Idle();

            using (PeriodStorage periodStorageSUT = GetStorage())
            {
                periodStorageSUT.Add(periodBefore);
                periodStorageSUT.Add(period);
                var expected = new ActivityPeriod[] { period };

                var beforeStart = period.Start - 1.secs();
                var found       = periodStorageSUT.GetPeriodsAfter(beforeStart);
                CollectionAssert.AreEquivalent(expected, found);

                var afterStart = period.Start + 1.secs();
                found = periodStorageSUT.GetPeriodsAfter(afterStart);
                CollectionAssert.AreEquivalent(expected, found);

                var atEnd = period.End;
                found = periodStorageSUT.GetPeriodsAfter(atEnd);
                CollectionAssert.AreEquivalent(new ActivityPeriod[] { }, found);

                var afterEnd = period.End + 1.secs();
                found = periodStorageSUT.GetPeriodsAfter(afterEnd);
                CollectionAssert.AreEquivalent(new ActivityPeriod[] { }, found);
            }
        }
Example #2
0
        public void GetPeriodBeforeShouldReturnPeriodDirectlyBefore()
        {
            var firstPeriod  = START_DATETIME.Length(5.secs()).Active();
            var secondPeriod = firstPeriod.NewPeriodAfter().Length(5.secs()).Active();

            using (PeriodStorage periodStorageSUT = GetStorage())
            {
                periodStorageSUT.Add(firstPeriod);
                periodStorageSUT.Add(secondPeriod);

                var found = periodStorageSUT.GetPeriodBefore(secondPeriod.Start);
                Assert.AreEqual(firstPeriod, found);
            }
        }
Example #3
0
        public void GetPeriodBeforeShouldReturnLatest()
        {
            var firstPeriod  = START_DATETIME.NewPeriod().Active();
            var secondPeriod = firstPeriod.NewPeriodAfter().Active();
            var thirdPeriod  = secondPeriod.NewPeriodAfter().Active();

            using (PeriodStorage periodStorageSUT = GetStorage())
            {
                periodStorageSUT.Add(firstPeriod);
                periodStorageSUT.Add(secondPeriod);
                periodStorageSUT.Add(thirdPeriod);

                var found = periodStorageSUT.GetPeriodBefore(thirdPeriod.Start);
                Assert.AreEqual(secondPeriod, found);
            }
        }
Example #4
0
        public void GetPeriodsFromTimePeriodShouldReturnPeriodsPartiallyInsideRange()
        {
            var firstPeriod  = START_DATETIME.Length(5.secs()).Active();
            var secondPeriod = firstPeriod.NewPeriodAfter(10.secs()).Length(5.secs()).Active();
            var thirdPeriod  = secondPeriod.NewPeriodAfter(10.secs()).Length(5.secs()).Active();

            var enclosingSearchPeriod = new Period(
                secondPeriod.Start - 1.secs(),
                secondPeriod.End + 1.secs());

            var enclosingOnlyEndSearchTimePriod = new Period(
                secondPeriod.Start + 1.secs(),
                secondPeriod.End + 1.secs());

            var enclosingOnlyStartSearchTimePeriod = new Period(
                secondPeriod.Start - 1.secs(),
                secondPeriod.End - 1.secs());

            var notEnclosingSearchTimePeriod = new Period(
                secondPeriod.Start - 2.secs(),
                secondPeriod.Start - 1.secs());

            using (PeriodStorage periodStorageSUT = GetStorage())
            {
                periodStorageSUT.Add(firstPeriod);
                periodStorageSUT.Add(secondPeriod);
                periodStorageSUT.Add(thirdPeriod);

                var found = periodStorageSUT.GetPeriodsFromTimePeriod(
                    enclosingSearchPeriod);
                CollectionAssert.AreEquivalent(new ActivityPeriod[] { secondPeriod }, found);

                found = periodStorageSUT.GetPeriodsFromTimePeriod(
                    enclosingOnlyEndSearchTimePriod);
                CollectionAssert.AreEquivalent(new ActivityPeriod[] { secondPeriod }, found);

                found = periodStorageSUT.GetPeriodsFromTimePeriod(
                    enclosingOnlyStartSearchTimePeriod);
                CollectionAssert.AreEquivalent(new ActivityPeriod[] { secondPeriod }, found);

                found = periodStorageSUT.GetPeriodsFromTimePeriod(
                    notEnclosingSearchTimePeriod);
                CollectionAssert.AreEquivalent(new ActivityPeriod[] { }, found);
            }
        }
Example #5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            log.Info("Form load");
            idleIcon = CreateIdleIcon();
            UpdateNotifyIcon(false, 0);

            // loading configuration
            int maxIdleMinutes = int.Parse(Properties.Settings.Default.MaxIdleMinutes.ToString());

            intervalTextBox.Text = maxIdleMinutes.ToString();

            soundPlayer = new SoundPlayer();

            // register shotcuts keys
            shortcutsManager = new ShortcutsManager(this);
            shortcutsManager.Register();

            MoveToPosition();

            this.inputProbe      = new HookActivityProbe();
            this.activityChecker = new ActivityChecker(inputProbe, new SystemClock());
            this.policies        = new TimeTablePolicies {
                IdleTimeout = maxIdleMinutes.mins()
            };

            // for testing
            //this.policies = new TimeTablePolicies { IdleTimeout = 1.secs() };

            periodStorage = new SqlitePeriodStorage("periods.db");
            var timeTable = new TimeTable(policies, periodStorage);

            this.activityChecker.SetActivityListner(timeTable);
            this.statsReporter = new StatsReporterImpl(timeTable, policies, new SystemClock());
            timeTable.RegisterUserActivityListener(this);

            timer1.Interval = PERIOD_LENGTH_MS;
            timer1.Enabled  = true;
        }
Example #6
0
 public TimeTable(TimeTablePolicies policies, PeriodStorage periodStorage)
 {
     this.policies      = policies;
     this.periodStorage = periodStorage;
 }