public void TestShortActivityThenIdleLoggingInEmptyLog() { // | Short Activity, Idle var settings = GetActivityTrackingSettingsFake(); var activitiesRepository = GetActivitiesRepositoryFake(); var userInputTracker = GetUserInputTrackerFake(); var records = new List <ActivityRecord>(); var activityRecordsRepository = GetActivityRecordsRepositoryFake(records); var tracker = new UserActivityTracker( activityRecordsRepository, activitiesRepository, settings, userInputTracker); tracker.Start(); DateTime timeStamp = DateTime.Now; userInputTracker.RaiseUserInputDetectedEvent(timeStamp); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.GetShortActivityDuration()); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumIdleDuration); records.Should().HaveCount(1); ActivityRecord idleRecord = records[0]; idleRecord.Idle.Should().Be(true); idleRecord.Duration.Should().Be(settings.MinimumIdleDuration + settings.GetShortActivityDuration()); idleRecord.Activity.Should().Be(BreakActivity); tracker.Stop(); }
public void TestIdleThenActivityThenIdleLoggingWithLastRecordIndicatingActivityInLog() { // Activity | Idle, Activity, Idle var settings = GetActivityTrackingSettingsFake(); var activitiesRepository = GetActivitiesRepositoryFake(); var userInputTracker = GetUserInputTrackerFake(); var records = new List <ActivityRecord>(); var activityRecordsRepository = GetActivityRecordsRepositoryFake(records); var tracker = new UserActivityTracker( activityRecordsRepository, activitiesRepository, settings, userInputTracker); tracker.Start(); DateTime timeStamp = DateTime.Now; records.Add( new ActivityRecord(1) { Activity = WorkActivity, Idle = false, StartTime = timeStamp - settings.MinimumActivityDuration, EndTime = timeStamp }); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumIdleDuration); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumActivityDuration); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumIdleDuration); records.Should().HaveCount(4); ActivityRecord initialRecord = records[0]; initialRecord.Idle.Should().Be(false); initialRecord.Duration.Should().Be(settings.MinimumActivityDuration); ActivityRecord idleRecord = records[1]; idleRecord.Idle.Should().Be(true); idleRecord.Duration.Should().Be(settings.MinimumIdleDuration); idleRecord.StartTime.Should().Be(initialRecord.EndTime); ActivityRecord activityRecord = records[2]; activityRecord.Idle.Should().Be(false); activityRecord.Duration.Should().Be(settings.MinimumActivityDuration); activityRecord.StartTime.Should().Be(idleRecord.EndTime); ActivityRecord lastIdleRecord = records[3]; lastIdleRecord.Idle.Should().Be(true); lastIdleRecord.Duration.Should().Be(settings.MinimumIdleDuration); lastIdleRecord.StartTime.Should().Be(activityRecord.EndTime); tracker.Stop(); }
public void TestActivityThenForceLogThenIdleThenActivityThenIdleLoggingInEmptyLog() { // | Activity, Force Log, Idle, Activity, Idle var settings = GetActivityTrackingSettingsFake(); var activitiesRepository = GetActivitiesRepositoryFake(); var userInputTracker = GetUserInputTrackerFake(); var records = new List <ActivityRecord>(); var activityRecordsRepository = GetActivityRecordsRepositoryFake(records); var tracker = new UserActivityTracker( activityRecordsRepository, activitiesRepository, settings, userInputTracker); tracker.Start(); DateTime timeStamp = DateTime.Now; userInputTracker.RaiseUserInputDetectedEvent(timeStamp); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumActivityDuration); tracker.LogUserActivity(false, true, timeStamp); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumIdleDuration); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumActivityDuration); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumIdleDuration); records.Should().HaveCount(4); ActivityRecord activityRecord = records[0]; activityRecord.Idle.Should().Be(false); activityRecord.Duration.Should().Be(settings.MinimumActivityDuration); activityRecord.Activity.Should().Be(WorkActivity); ActivityRecord idleRecord = records[1]; idleRecord.Idle.Should().Be(true); idleRecord.Duration.Should().Be(settings.MinimumIdleDuration); idleRecord.Activity.Should().Be(BreakActivity); idleRecord.StartTime.Should().Be(activityRecord.EndTime); activityRecord = records[2]; activityRecord.Idle.Should().Be(false); activityRecord.Duration.Should().Be(settings.MinimumActivityDuration); activityRecord.Activity.Should().Be(WorkActivity); activityRecord.StartTime.Should().Be(idleRecord.EndTime); idleRecord = records[3]; idleRecord.Idle.Should().Be(true); idleRecord.Duration.Should().Be(settings.MinimumIdleDuration); idleRecord.Activity.Should().Be(BreakActivity); idleRecord.StartTime.Should().Be(activityRecord.EndTime); tracker.Stop(); }
public void TestShortActivityThenIdleWithLastRecordIndicatingInactivityInLog() { // Idle | Short Activity, Idle var settings = GetActivityTrackingSettingsFake(); var activitiesRepository = GetActivitiesRepositoryFake(); var userInputTracker = GetUserInputTrackerFake(); var records = new List <ActivityRecord>(); var activityRecordsRepository = GetActivityRecordsRepositoryFake(records); var tracker = new UserActivityTracker( activityRecordsRepository, activitiesRepository, settings, userInputTracker); tracker.Start(); DateTime timeStamp = DateTime.Now; records.Add( new ActivityRecord(1) { Activity = BreakActivity, Idle = true, StartTime = timeStamp - settings.MinimumIdleDuration, EndTime = timeStamp }); userInputTracker.RaiseUserInputDetectedEvent(timeStamp); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.GetShortActivityDuration()); userInputTracker.RaiseUserInputDetectedEvent(ref timeStamp, settings.MinimumIdleDuration); records.Should().HaveCount(1); ActivityRecord idleRecord = records[0]; idleRecord.Idle.Should().Be(true); idleRecord.Duration.Should() .Be(settings.MinimumIdleDuration + settings.GetShortActivityDuration() + settings.MinimumIdleDuration); tracker.Stop(); }