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); } }
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); } }
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); } }
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); } }
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; }
public TimeTable(TimeTablePolicies policies, PeriodStorage periodStorage) { this.policies = policies; this.periodStorage = periodStorage; }