Beispiel #1
0
        public void SwitchAtMidnightFalse()
        {
            ITimeSystem mockTime = NewMock <ITimeSystem>();

            using (Ordered)
            {
                Expect.Once.On(mockTime).GetProperty("Now").Will(Return.Value(DateTime.Parse("2008-08-07 23:59:55")));
                Expect.Once.On(mockTime).GetProperty("Now").Will(Return.Value(DateTime.Parse("2008-08-08 0:00:06")));
            }
            ITimeLogsManager timeLogsManager = NewMock <ITimeLogsManager>();
            ITimeLog         timeLog1        = NewMock <ITimeLog>();

            Expect.Once.On(timeLog1).Method("AddActivity").With(new Activities.Activity("first", DateTime.Parse("2008-08-07 23:59:55"), TimeSpan.Parse("0:00:11")));
            Expect.Once.On(timeLogsManager).Method("ActivateTimeLog").With(DateTime.Parse("2008-08-07"));
            Stub.On(timeLogsManager).GetProperty("ActiveTimeLog").Will(Return.Value(timeLog1));
            timeManager = new TimeManager(mockTime, timeLogsManager);
            var midnightCorrector = NewMock <IMidnightCorrector>();

            timeManager.MidnightCorrector = midnightCorrector;
            Expect.Never.On(midnightCorrector).Method("PerformMidnightCorrection");
            timeManager.SwitchAtMidnight = false;
            timeManager.FinishActivity("first", "second");

            VerifyAllExpectationsHaveBeenMet();
        }
Beispiel #2
0
 public TaskTimeSummarizer(string taskName, DataTable table, ITimeLogsManager timeLogsManager, ITaskCollection taskCollection)
 {
     this.entityName      = taskName;
     this.table           = table;
     this.timeLogsManager = timeLogsManager;
     this.taskCollection  = taskCollection;
 }
 public HistoryDataProvider(ITimeLogsManager timeLogsManager, ITaskCollection taskCollection)
 {
     TimeLogsManager = timeLogsManager;
     TaskCollection = taskCollection;
     table = CreateTable();
     ActivitiesHistory = new ActivitiesHistory();
 }
 public HistoryDataProvider(ITimeLogsManager timeLogsManager, ITaskCollection taskCollection)
 {
     TimeLogsManager   = timeLogsManager;
     TaskCollection    = taskCollection;
     table             = CreateTable();
     ActivitiesHistory = new ActivitiesHistory();
 }
 public TaskTimeSummarizer(string taskName, DataTable table, ITimeLogsManager timeLogsManager, ITaskCollection taskCollection)
 {
     this.entityName = taskName;
     this.table = table;
     this.timeLogsManager = timeLogsManager;
     this.taskCollection = taskCollection;
 }
Beispiel #6
0
        public void SetUp()
        {
            ITimeSystem mockTime = NewMock <ITimeSystem>();

            Stub.On(mockTime).GetProperty("Now").Will(Return.Value(startTime));
            timeLogsManager = NewMock <ITimeLogsManager>();
            timeLog         = NewMock <ITimeLog>();
            Stub.On(timeLogsManager).Method("ActivateTimeLog").Will(Return.Value(timeLog));
            timeManager = new TimeManager(mockTime, timeLogsManager);
        }
Beispiel #7
0
 public TimeManager(ITimeLogsManager timeLogsManager)
 {
     currentActivity   = new RunningActivity(FIRST_ACTIVITY);
     midnightCorrector = new MidnightSwitcher();
     if (timeLogsManager != null)
     {
         TimeLogsManager = timeLogsManager;
         timeLogsManager.ActivateTimeLog(currentActivity.Start.Date);
     }
 }
Beispiel #8
0
 public TimeManager(ITimeSystem timeSystem, ITimeLogsManager timeLogsManager)
 {
     currentActivity = new RunningActivity(FIRST_ACTIVITY, timeSystem);
     midnightCorrector = new MidnightSwitcher();
     if (timeLogsManager != null)
     {
         TimeLogsManager = timeLogsManager;
         timeLogsManager.ActivateTimeLog(currentActivity.Start.Date);
     }
 }
Beispiel #9
0
        public void PerformMidnightCorrectionForTheSameDate()
        {
            ITimeLogsManager timeLogsManager = NewMock <ITimeLogsManager>();

            Expect.Never.On(timeLogsManager).Method("ActivateTimeLog");
            IActivity activity = NewMock <IActivity>();

            Stub.On(activity).GetProperty("Start").Will(Return.Value(DateTime.Parse("2020-11-18 13:59:55")));
            Stub.On(activity).GetProperty("End").Will(Return.Value(DateTime.Parse("2020-11-18 15:00:10")));

            midnightSwitcher.PerformMidnightCorrection(activity, timeLogsManager);

            VerifyAllExpectationsHaveBeenMet();
        }
Beispiel #10
0
 /// <summary>
 /// Initialize all subsystems
 /// </summary>
 /// <param name="timeSystem"></param>
 /// <param name="settings"></param>
 public Driver(ITimeSystem timeSystem, ISettings settings)
 {
     //when reordering, be carefull, in order to pass only initialized objects
     this.fileManager      = new FileManager(settings);
     this.languageSwitcher = new LanguageSwitcher(settings);
     //probably all of them should be properties, not fields, in order to automatically update referencies
     TaskCollection       = LifeIdea.LazyCure.Core.Tasks.TaskCollection.Default;
     this.timeLogsManager = new TimeLogsManager(this.fileManager);
     HistoryDataProvider  = new HistoryDataProvider(timeLogsManager, TaskCollection);
     this.timeManager     = new TimeManager(timeSystem, TimeLogsManager);
     HistoryDataProvider.CreateSummaries(TimeManager.TimeLog);
     this.workingTime          = new WorkingTimeForDay(TimeManager.TimeLog, TaskCollection);
     this.efficiencyCalculator = new EfficiencyCalculator(workingTime);
     ApplySettings(settings);
 }
Beispiel #11
0
        public void PerformMidnightCorrectionWithGapBeetweenDates()
        {
            ITimeLogsManager timeLogsManager = NewMock <ITimeLogsManager>();

            Stub.On(timeLogsManager).GetProperty("ActiveTimeLog");
            Expect.Once.On(timeLogsManager).Method("ActivateTimeLog").With(DateTime.Parse("2020-10-10")).Will(Return.Value(null));
            IActivity activity = NewMock <IActivity>();

            Stub.On(activity).GetProperty("Start").Will(Return.Value(DateTime.Parse("2020-10-05 23:59:55")));
            Stub.On(activity).GetProperty("End").Will(Return.Value(DateTime.Parse("2020-10-10 0:00:10")));
            Stub.On(activity).SetProperty("Start");
            Stub.On(activity).SetProperty("Duration");

            midnightSwitcher.PerformMidnightCorrection(activity, timeLogsManager);

            VerifyAllExpectationsHaveBeenMet();
        }
Beispiel #12
0
        public void PerformMidnightCorrectionAddActivityToTimeLog()
        {
            ITimeLogsManager timeLogsManager = NewMock <ITimeLogsManager>();
            ITimeLog         timeLog         = NewMock <ITimeLog>();
            IActivity        activity        = NewMock <IActivity>();

            Expect.Once.On(timeLog).Method("AddActivity").With(activity);
            Stub.On(timeLogsManager).GetProperty("ActiveTimeLog").Will(Return.Value(timeLog));
            Stub.On(timeLogsManager).Method("ActivateTimeLog");
            Stub.On(activity).GetProperty("Start").Will(Return.Value(DateTime.Parse("2008-08-07 23:59:55")));
            Stub.On(activity).GetProperty("End").Will(Return.Value(DateTime.Parse("2008-08-08 0:00:10")));
            Stub.On(activity).SetProperty("Start");
            Stub.On(activity).SetProperty("Duration");

            midnightSwitcher.PerformMidnightCorrection(activity, timeLogsManager);

            VerifyAllExpectationsHaveBeenMet();
        }
 public void PerformMidnightCorrection(IActivity currentActivity, ITimeLogsManager timeLogsManager)
 {
     DateTime endTime = currentActivity.End;
     DateTime midnightTime = endTime.Date;
     DateTime startTime = currentActivity.Start;
     if (startTime < midnightTime)
     {
         TimeSpan oldDayActivityDuration = midnightTime - startTime;
         TimeSpan newDayActivityDuration = endTime - midnightTime;
         currentActivity.Duration = oldDayActivityDuration;
         if (timeLogsManager != null)
         {
             ITimeLog timeLog = timeLogsManager.ActiveTimeLog;
             if (timeLog != null)
                 timeLog.AddActivity(currentActivity);
             timeLogsManager.ActivateTimeLog(midnightTime);
         }
         currentActivity.Start = midnightTime;
         currentActivity.Duration = newDayActivityDuration;
     }
 }
Beispiel #14
0
        public void FromDatePopupUsingLazyCureProviderOfAvailableDates()
        {
            ILazyCureDriver lcdriver = NewMock <ILazyCureDriver>();

            Stub.On(lcdriver).GetProperty("WorkingTimeIntervalsData").Will(Return.Value(null));
            Stub.On(lcdriver).GetProperty("PossibleWorkInterruptionDuration").Will(Return.Value(TimeSpan.Zero));
            Stub.On(lcdriver).SetProperty("PossibleWorkInterruptionDuration");
            IHistoryDataProvider dataProvider = NewMock <IHistoryDataProvider>();

            Stub.On(lcdriver).GetProperty("HistoryDataProvider").Will(Return.Value(dataProvider));
            ITimeLogsManager timeLogsManager = NewMock <ITimeLogsManager>();

            Stub.On(dataProvider).GetProperty("ActivitiesSummaryData").Will(Return.Value(null));
            Stub.On(dataProvider).GetProperty("TasksSummaryData").Will(Return.Value(null));
            Stub.On(dataProvider).GetProperty("TimeLogsManager").Will(Return.Value(timeLogsManager));
            Stub.On(dataProvider).Method("SetSummaryPeriod").WithAnyArguments();
            Expect.Once.On(timeLogsManager).GetProperty("AvailableDays").Will(Return.Value(new List <DateTime>(new DateTime[] { DateTime.Parse("2000-12-31") })));

            summary = new Summary(lcdriver, null);

            VerifyAllExpectationsHaveBeenMet();
        }
Beispiel #15
0
        public void PerformMidnightCorrection(IActivity currentActivity, ITimeLogsManager timeLogsManager)
        {
            DateTime endTime      = currentActivity.End;
            DateTime midnightTime = endTime.Date;
            DateTime startTime    = currentActivity.Start;

            if (startTime < midnightTime)
            {
                TimeSpan oldDayActivityDuration = midnightTime - startTime;
                TimeSpan newDayActivityDuration = endTime - midnightTime;
                currentActivity.Duration = oldDayActivityDuration;
                if (timeLogsManager != null)
                {
                    ITimeLog timeLog = timeLogsManager.ActiveTimeLog;
                    if (timeLog != null)
                    {
                        timeLog.AddActivity(currentActivity);
                    }
                    timeLogsManager.ActivateTimeLog(midnightTime);
                }
                currentActivity.Start    = midnightTime;
                currentActivity.Duration = newDayActivityDuration;
            }
        }
Beispiel #16
0
 public ActivityTimeSummarizer(string activityName, DataTable table, ITimeLogsManager timeLogsManager)
 {
     this.entityName      = activityName;
     this.table           = table;
     this.timeLogsManager = timeLogsManager;
 }
 public void SetUp()
 {
     ITimeSystem mockTime = NewMock<ITimeSystem>();
     Stub.On(mockTime).GetProperty("Now").Will(Return.Value(startTime));
     timeLogsManager = NewMock<ITimeLogsManager>();
     timeLog = NewMock<ITimeLog>();
     Stub.On(timeLogsManager).Method("ActivateTimeLog").Will(Return.Value(timeLog));
     timeManager = new TimeManager(mockTime, timeLogsManager);
 }
 public ActivityTimeSummarizer(string activityName, DataTable table, ITimeLogsManager timeLogsManager)
 {
     this.entityName = activityName;
     this.table = table;
     this.timeLogsManager = timeLogsManager;
 }