Esempio n. 1
0
        public IReadOnlyList <EntityIdWithVersion <Uri, string> > GetVersions(DateTime from, DateTime to)
        {
            using (AutomaticStopwatch.StartInfo(s_logger, "CalDavRepository.GetVersions"))
            {
                switch (_entityType)
                {
                case EntityType.Event:
                    return(_calDavDataAccess.GetEvents(from, to));

                case EntityType.Todo:
                    return(_calDavDataAccess.GetTodos(from, to));

                default:
                    throw new NotImplementedException(string.Format("EntityType '{0}' not implemented.", _entityType));
                }
            }
        }
Esempio n. 2
0
        public async Task Test_CRUD()
        {
            foreach (var evt in await _calDavDataAccess.GetEvents(null))
            {
                await _calDavDataAccess.DeleteEntity(evt.Id);
            }

            var entitiesWithVersion = new List <EntityIdWithVersion <Uri, string> >();

            var uids = new List <string>();

            for (int i = 1; i <= 5; i++)
            {
                var iCalendar = CreateEntity(i);
                uids.Add(iCalendar.Events[0].UID);
                entitiesWithVersion.Add(
                    await _calDavDataAccess.CreateEntity(
                        SerializeCalendar(
                            iCalendar)));
            }

            var queriedEntitesWithVersion = await _calDavDataAccess.GetEvents(new DateTimeRange (DateTime.Now.AddDays(150), DateTime.Now.AddDays(450)));

            Assert.That(queriedEntitesWithVersion.Count, Is.EqualTo(3));

            CollectionAssert.IsSubsetOf(
                queriedEntitesWithVersion.Select(e => e.Id),
                entitiesWithVersion.Select(e => e.Id));

            var updatedCalendar = CreateEntity(600);

            updatedCalendar.Events[0].UID = uids[1];
            var updated = await _calDavDataAccess.UpdateEntity(entitiesWithVersion[1].Id, SerializeCalendar (updatedCalendar));

            Assert.That(
                (await _calDavDataAccess.GetEvents(new DateTimeRange(DateTime.Now.AddDays(150), DateTime.Now.AddDays(450)))).Count,
                Is.EqualTo(2));

            var updatedRevertedCalendar = CreateEntity(2);

            updatedRevertedCalendar.Events[0].UID = uids[1];
            var updateReverted = await _calDavDataAccess.UpdateEntity(updated.Id, SerializeCalendar (updatedRevertedCalendar));

            Assert.That(
                (await _calDavDataAccess.GetEvents(new DateTimeRange(DateTime.Now.AddDays(150), DateTime.Now.AddDays(450)))).Count,
                Is.EqualTo(3));

            await _calDavDataAccess.DeleteEntity(updateReverted.Id);

            Assert.That(
                (await _calDavDataAccess.GetEvents(new DateTimeRange(DateTime.Now.AddDays(150), DateTime.Now.AddDays(450)))).Count,
                Is.EqualTo(2));

            var entites = await _calDavDataAccess.GetEntities(entitiesWithVersion.Take (4).Select(e => e.Id));

            Assert.That(entites.Count, Is.EqualTo(3)); // Only 3, the second was deleted

            CollectionAssert.AreEquivalent(
                entites.Select(e => DeserializeCalendar(e.Entity).Events[0].Summary),
                new[] { "Event1", "Event3", "Event4" });
        }