Пример #1
0
        public void TestOverlappingEndEvent()
        {
            DateTime      start  = DateUtil.ParseDateToUtc("2007-07-30T13:00:00.000Z");
            DateTimeRange window = new DateTimeRange(start.AddDays(-7), start.AddDays(7));

            // Test overlapping events
            // - 13:30 - 14:00 in Exchange
            // - 13:00 - 14:00 in GCal
            // Should create an exchange event [13:00-14:00]
            AddEventExchange(start, start.AddMinutes(30));
            AddEventGCal(start, start.AddHours(1));

            EventFeed          feed = createEventFeedFromEvents(_gcalEvents);
            FreeBusyCollection fb   = createFreeBusyFromExistingEvents(_exchEvents);

            ExchangeUser user = createFauxUser("*****@*****.**", "*****@*****.**");

            user.BusyTimes = fb;

            ExchangeGatewayMock gateway = new ExchangeGatewayMock();

            this.SyncUser(user, feed, gateway, window);

            Assert.AreEqual(0, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(1, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);

            Assert.AreEqual(gateway.AppointmentsMock.Written[0].StartDate, start);
            Assert.AreEqual(gateway.AppointmentsMock.Written[0].EndDate, start.AddHours(1));
        }
Пример #2
0
        public void TestMissingAppointmentDetail()
        {
            DateTime      start  = DateUtil.ParseDateToUtc("2007-07-30T13:00:00.000Z");
            DateTimeRange window = new DateTimeRange(start.AddDays(-7), start.AddDays(7));

            AddEventGCal(start, start.AddHours(1));

            EventFeed          feed = createEventFeedFromEvents(_gcalEvents);
            FreeBusyCollection fb   = createFreeBusyFromExistingEvents(_exchEvents);

            ExchangeUser user = createFauxUser("*****@*****.**", "*****@*****.**");

            user.BusyTimes             = fb;
            user.HaveAppointmentDetail = false;

            ExchangeGatewayMock gateway = new ExchangeGatewayMock();

            this.SyncUser(user, feed, gateway, window);

            Assert.AreEqual(0, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);
        }
        public void TestSyncUser()
        {
            DateTime start = _base;
            DateTimeRange window = new DateTimeRange(start, start.AddDays(30));

            // Add Event to both
            AddEventBoth(start, start.AddHours(2));

            // Add only to Google Calendar - i.e. Create in exchange
            start = start.AddDays(2).AddHours(3);
            AddEventGCal(start, start.AddHours(1));

            // Add only to Exchange - i.e. Delete from exchange
            start = start.AddDays(3).AddHours(3);
            AddEventExchange(start, start.AddHours(1));

            start = start.AddDays(1).AddHours(-5);
            AddEventExchange(start, start.AddMinutes(20));

            // Add to Google Calendar
            start = start.AddDays(2).AddHours(3);
            AddEventGCal(start, start.AddHours(1));

            // Add Event to both
            start = start.AddDays(2).AddHours(3);
            AddEventBoth(start, start.AddHours(2));

            // Add only to Exchange
            start = start.AddDays(2).AddHours(3);
            AddEventExchange(start, start.AddHours(1));

            // Add Event to both
            start = start.AddDays(2).AddHours(14);
            AddEventBoth(start, start.AddHours(1));

            // Add to Google Calendar
            start = start.AddDays(2).AddHours(3);
            AddEventGCal(start, start.AddHours(1));

            // Add Event to both
            start = start.AddDays(5).AddHours(12);
            AddEventBoth(start, start.AddHours(6));

            EventFeed feed = createEventFeedFromEvents(_gcalEvents);
            FreeBusyCollection fb = createFreeBusyFromSyncEvents(_exchEvents);

            ExchangeUser user = createFauxUser("*****@*****.**", "*****@*****.**");
            user.BusyTimes = fb;

            ExchangeGatewayMock gateway = new ExchangeGatewayMock();
            this.SyncUser(user, feed, gateway, window);

            Assert.AreEqual(_deleteEvents.Count, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(_createEvents.Count, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);

            int idx = 0;
            foreach (DateTimeRange e in _deleteEvents)
            {
                Assert.AreEqual(e.Start, gateway.AppointmentsMock.Deleted[idx].StartDate);
                Assert.AreEqual(e.End, gateway.AppointmentsMock.Deleted[idx].EndDate);
                idx++;
            }

            idx = 0;
            foreach (DateTimeRange e in _createEvents)
            {
                Assert.AreEqual(e.Start, gateway.AppointmentsMock.Written[idx].StartDate);
                Assert.AreEqual(e.End, gateway.AppointmentsMock.Written[idx].EndDate);
                idx++;
            }

        }
        public void TestAdjacentEvent()
        {
            DateTime start = DateUtil.ParseDateToUtc("2007-07-30T13:00:00.000Z");
            DateTimeRange window = new DateTimeRange(start.AddDays(-7), start.AddDays(7));

            // Test overlapping events
            // - 13:00 - 17:00 in Exchange from GCal
            // - 17:00 - 18:00 in GCal
            // Should create an exchange event [17:00-18:00]
            AddEventExchange(start, start.AddHours(4));
            AddEventGCal(start, start.AddHours(4));
            AddEventGCal(start.AddHours(4), start.AddHours(5));

            EventFeed feed = createEventFeedFromEvents(_gcalEvents);
            FreeBusyCollection fb = createFreeBusyFromSyncEvents(_exchEvents);

            ExchangeUser user = createFauxUser("*****@*****.**", "*****@*****.**");
            user.BusyTimes = fb;

            ExchangeGatewayMock gateway = new ExchangeGatewayMock();
            this.SyncUser(user, feed, gateway, window);

            Assert.AreEqual(0, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(1, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);

            Assert.AreEqual(gateway.AppointmentsMock.Written[0].StartDate, start.AddHours(4));
            Assert.AreEqual(gateway.AppointmentsMock.Written[0].EndDate, start.AddHours(5));

            AddEventExchange(start.AddHours(4), start.AddHours(5));
            feed = createEventFeedFromEvents(_gcalEvents);
            user.BusyTimes = createFreeBusyFromSyncEvents(_exchEvents);

            gateway = new ExchangeGatewayMock();

            this.SyncUser(user, feed, gateway, window);
            Assert.AreEqual(0, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);
        }
        public void TestMissingAppointmentDetail()
        {
            DateTime start = DateUtil.ParseDateToUtc("2007-07-30T13:00:00.000Z");
            DateTimeRange window = new DateTimeRange(start.AddDays(-7), start.AddDays(7));

            AddEventGCal(start, start.AddHours(1));

            EventFeed feed = createEventFeedFromEvents(_gcalEvents);
            FreeBusyCollection fb = createFreeBusyFromExistingEvents(_exchEvents);

            ExchangeUser user = createFauxUser("*****@*****.**", "*****@*****.**");
            user.BusyTimes = fb;
            user.HaveAppointmentDetail = false;

            ExchangeGatewayMock gateway = new ExchangeGatewayMock();
            this.SyncUser(user, feed, gateway, window);

            Assert.AreEqual(0, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);
        }
Пример #6
0
        public void TestSyncUser()
        {
            DateTime      start  = _base;
            DateTimeRange window = new DateTimeRange(start, start.AddDays(30));

            // Add Event to both
            AddEventBoth(start, start.AddHours(2));

            // Add only to Google Calendar - i.e. Create in exchange
            start = start.AddDays(2).AddHours(3);
            AddEventGCal(start, start.AddHours(1));

            // Add only to Exchange - i.e. Delete from exchange
            start = start.AddDays(3).AddHours(3);
            AddEventExchange(start, start.AddHours(1));

            start = start.AddDays(1).AddHours(-5);
            AddEventExchange(start, start.AddMinutes(20));

            // Add to Google Calendar
            start = start.AddDays(2).AddHours(3);
            AddEventGCal(start, start.AddHours(1));

            // Add Event to both
            start = start.AddDays(2).AddHours(3);
            AddEventBoth(start, start.AddHours(2));

            // Add only to Exchange
            start = start.AddDays(2).AddHours(3);
            AddEventExchange(start, start.AddHours(1));

            // Add Event to both
            start = start.AddDays(2).AddHours(14);
            AddEventBoth(start, start.AddHours(1));

            // Add to Google Calendar
            start = start.AddDays(2).AddHours(3);
            AddEventGCal(start, start.AddHours(1));

            // Add Event to both
            start = start.AddDays(5).AddHours(12);
            AddEventBoth(start, start.AddHours(6));

            EventFeed          feed = createEventFeedFromEvents(_gcalEvents);
            FreeBusyCollection fb   = createFreeBusyFromSyncEvents(_exchEvents);

            ExchangeUser user = createFauxUser("*****@*****.**", "*****@*****.**");

            user.BusyTimes = fb;

            ExchangeGatewayMock gateway = new ExchangeGatewayMock();

            this.SyncUser(user, feed, gateway, window);

            Assert.AreEqual(_deleteEvents.Count, gateway.AppointmentsMock.Deleted.Count);
            Assert.AreEqual(_createEvents.Count, gateway.AppointmentsMock.Written.Count);
            Assert.AreEqual(0, gateway.AppointmentsMock.Updated.Count);

            int idx = 0;

            foreach (DateTimeRange e in _deleteEvents)
            {
                Assert.AreEqual(e.Start, gateway.AppointmentsMock.Deleted[idx].StartDate);
                Assert.AreEqual(e.End, gateway.AppointmentsMock.Deleted[idx].EndDate);
                idx++;
            }

            idx = 0;
            foreach (DateTimeRange e in _createEvents)
            {
                Assert.AreEqual(e.Start, gateway.AppointmentsMock.Written[idx].StartDate);
                Assert.AreEqual(e.End, gateway.AppointmentsMock.Written[idx].EndDate);
                idx++;
            }
        }