private static void ConvertEventsToFreeBusy( ExchangeUser user, AtomEntryCollection entries, DateTimeRange coveredRange, List <string> busyMonthValues, List <string> busyBase64Data, List <string> tentativeMonthValues, List <string> tentativeBase64Data) { List <DateTimeRange> busyTimes = new List <DateTimeRange>(); List <DateTimeRange> tentativeTimes = new List <DateTimeRange>(); foreach (EventEntry googleAppsEvent in entries) { ConvertEventToFreeBusy(user, googleAppsEvent, coveredRange, busyTimes, tentativeTimes); } FreeBusyConverter.CondenseFreeBusyTimes(busyTimes); FreeBusyConverter.CondenseFreeBusyTimes(tentativeTimes); FreeBusyConverter.ConvertDateTimeBlocksToBase64String(coveredRange.Start, coveredRange.End, busyTimes, busyMonthValues, busyBase64Data); FreeBusyConverter.ConvertDateTimeBlocksToBase64String(coveredRange.Start, coveredRange.End, tentativeTimes, tentativeMonthValues, tentativeBase64Data); }
public void TestCondenseFreeBusyTimes() { DateTimeRange range = null; List <DateTimeRange> testFreeBusyTimes = new List <DateTimeRange>(); List <DateTimeRange> expectedResult = new List <DateTimeRange>(); // The first test case is // Event 1 [.....] // Event 2 [.....] // Event 3 [.....] // Result [...........] range = new DateTimeRange(DateTime.Parse("2007-06-01T07:00:00.000Z"), DateTime.Parse("2007-06-01T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-01T07:30:00.000Z"), DateTime.Parse("2007-06-01T08:30:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-01T08:00:00.000Z"), DateTime.Parse("2007-06-01T09:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-01T07:00:00.000Z"), DateTime.Parse("2007-06-01T09:00:00.000Z")); expectedResult.Add(range); // The second test case is // Event 1 [.....] // Event 2 [.....] // Result [...........] range = new DateTimeRange(DateTime.Parse("2007-06-02T07:00:00.000Z"), DateTime.Parse("2007-06-02T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-02T08:00:00.000Z"), DateTime.Parse("2007-06-02T09:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-02T07:00:00.000Z"), DateTime.Parse("2007-06-02T09:00:00.000Z")); expectedResult.Add(range); // The third test case is // Event 1 [.....] // Event 2 [.....] // Result [.....] range = new DateTimeRange(DateTime.Parse("2007-06-03T07:00:00.000Z"), DateTime.Parse("2007-06-03T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-03T07:00:00.000Z"), DateTime.Parse("2007-06-03T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-03T07:00:00.000Z"), DateTime.Parse("2007-06-03T08:00:00.000Z")); expectedResult.Add(range); // The forth test case is // Event 1 [..] // Event 2 [.....] // Event 3 [..] // Result [...........] range = new DateTimeRange(DateTime.Parse("2007-06-04T07:00:00.000Z"), DateTime.Parse("2007-06-04T07:30:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-04T07:30:00.000Z"), DateTime.Parse("2007-06-04T08:30:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-04T08:30:00.000Z"), DateTime.Parse("2007-06-04T09:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-04T07:00:00.000Z"), DateTime.Parse("2007-06-04T09:00:00.000Z")); expectedResult.Add(range); // The fifth test case is // Event 1 [..........] // Event 2 [.....] // Result [..........] range = new DateTimeRange(DateTime.Parse("2007-06-05T07:00:00.000Z"), DateTime.Parse("2007-06-05T09:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-05T07:30:00.000Z"), DateTime.Parse("2007-06-05T08:30:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-05T07:00:00.000Z"), DateTime.Parse("2007-06-05T09:00:00.000Z")); expectedResult.Add(range); // The sixth test case is // Event 1 [.....] // Event 2 [...] // Result [.....] range = new DateTimeRange(DateTime.Parse("2007-06-06T07:00:00.000Z"), DateTime.Parse("2007-06-06T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-06T07:00:00.000Z"), DateTime.Parse("2007-06-06T07:30:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-06T07:00:00.000Z"), DateTime.Parse("2007-06-06T08:00:00.000Z")); expectedResult.Add(range); // The seventh test case is // Event 1 [.....] // Event 2 [...] // Result [.....] range = new DateTimeRange(DateTime.Parse("2007-06-07T07:00:00.000Z"), DateTime.Parse("2007-06-07T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-07T07:30:00.000Z"), DateTime.Parse("2007-06-07T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-07T07:00:00.000Z"), DateTime.Parse("2007-06-07T08:00:00.000Z")); expectedResult.Add(range); // The eight test case is // Event 1 [...............] // Event 2 [...] // Event 3 [...] // Result [...............] range = new DateTimeRange(DateTime.Parse("2007-06-08T07:00:00.000Z"), DateTime.Parse("2007-06-08T10:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-08T07:30:00.000Z"), DateTime.Parse("2007-06-08T08:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-08T08:30:00.000Z"), DateTime.Parse("2007-06-08T09:00:00.000Z")); testFreeBusyTimes.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-08T07:00:00.000Z"), DateTime.Parse("2007-06-08T10:00:00.000Z")); expectedResult.Add(range); // The ninth test case is // Event 1 [.....] // Event 2 [.....] // Result [.....] [.....] range = new DateTimeRange(DateTime.Parse("2007-06-09T07:00:00.000Z"), DateTime.Parse("2007-06-09T08:00:00.000Z")); testFreeBusyTimes.Add(range); expectedResult.Add(range); range = new DateTimeRange(DateTime.Parse("2007-06-09T09:00:00.000Z"), DateTime.Parse("2007-06-09T10:00:00.000Z")); testFreeBusyTimes.Add(range); expectedResult.Add(range); testFreeBusyTimes.Sort(ReverseCompareRanges); List <DateTimeRange> copyFreeBusyTimes = new List <DateTimeRange>(); foreach (DateTimeRange temp in testFreeBusyTimes) { copyFreeBusyTimes.Add(new DateTimeRange(temp.Start, temp.End)); } List <DateTimeRange> oldResult = OldCondenseFreeBusyTimes(copyFreeBusyTimes); FreeBusyConverter.CondenseFreeBusyTimes(testFreeBusyTimes); Assert.IsTrue(CompareRangeLists(testFreeBusyTimes, expectedResult)); Assert.IsTrue(CompareRangeLists(testFreeBusyTimes, oldResult)); }