예제 #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);
            }
        }
예제 #2
0
        protected void AssertCurrentLogicalPeriod(bool expectedActive, TimeSpan expectedLength)
        {
            ActivityPeriod activityPeriod = statsReporter.GetCurrentLogicalPeriod();

            Assert.AreEqual(expectedActive, activityPeriod is ActivePeriod);
            Assert.AreEqual(expectedLength, activityPeriod.Length);
        }
예제 #3
0
 public EditActivityPeriodViewModel(INavigation navigation, ActivityPeriod ap)
 {
     Navigation            = navigation;
     AP                    = ap;
     startDate             = AP.StartTime;
     endDate               = AP.EndTime;
     startTime             = new TimeSpan(AP.StartTime.Hour, AP.StartTime.Minute, AP.StartTime.Second);
     endTime               = new TimeSpan(AP.EndTime.Hour, AP.EndTime.Minute, AP.EndTime.Second);
     originalStartTime     = startTime;
     originalEndTime       = endTime;
     originalStartDate     = AP.StartTime;
     originalEndDate       = AP.EndTime;
     this.PropertyChanged += (sender, e) =>
     {
         if (e.PropertyName == "HasValidInput")
         {
             OnPropertyChanged("AcceptButtonImage");
         }
     };
 }
예제 #4
0
        public void AddedPeriodsShouldBeReaderByAnotherInstance()
        {
            var period1  = START_DATETIME.Length(1.secs()).Active();
            var period2  = period1.NewPeriodAfter(2.secs()).Idle();
            var expected = new ActivityPeriod[] { period1, period2 };

            using (TestablePeriodStorage instance1 = GetStorage())
            {
                instance1.Add(period1);
                instance1.Add(period2);

                CollectionAssert.AreEquivalent(expected, instance1.GetAll());
            }

            if (IsStoragePersisent())
            {
                WaitForConnectionToDbClosed();
                using (TestablePeriodStorage instance2 = GetStorage())
                {
                    CollectionAssert.AreEquivalent(expected, instance2.GetAll());
                }
            }
        }
예제 #5
0
 public static PeriodBuilder NewPeriodAfter(this ActivityPeriod activityPeriod, TimeSpan gap = default(TimeSpan))
 {
     return(PeriodBuilder.NewAfter(activityPeriod, gap));
 }
예제 #6
0
 public static PeriodBuilder NewAfter(ActivityPeriod activityPeriod, TimeSpan gap)
 {
     return(After(activityPeriod, gap));
 }
예제 #7
0
 public static PeriodBuilder NewAfter(ActivityPeriod activityPeriod)
 {
     return(After(activityPeriod, TimeSpan.Zero));
 }
예제 #8
0
        private static PeriodBuilder After(ActivityPeriod activityPeriod, TimeSpan gap)
        {
            var periodBuilder = New(activityPeriod.End + gap);

            return(periodBuilder);
        }