Пример #1
0
		public void UID() {
			var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
  <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VEVENT"">
        <C:prop-filter name=""UID"">
          <C:text-match
             caseless=""no"">[email protected]</C:text-match>
        </C:prop-filter>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

			var f = new CalDav.Filter(xdoc.Root.Elements().First());
			Test(f, x => {
				x.Filters[0].Name.ShouldBe("VCALENDAR");
				x.Filters[0].Filters[0].Name.ShouldBe("VEVENT");
				var prop = x.Filters[0].Filters[0].Properties[0];
				prop.Name.ShouldBe("UID");
				prop.IgnoreCase.ShouldBe(false);
				prop.Text.ShouldBe("*****@*****.**");
			});
		}
Пример #2
0
        public void UID()
        {
            var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
  <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VEVENT"">
        <C:prop-filter name=""UID"">
          <C:text-match
             caseless=""no"">[email protected]</C:text-match>
        </C:prop-filter>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

            var f = new CalDav.Filter(xdoc.Root.Elements().First());

            Test(f, x =>
            {
                x.Filters[0].Name.ShouldBe("VCALENDAR");
                x.Filters[0].Filters[0].Name.ShouldBe("VEVENT");
                var prop = x.Filters[0].Filters[0].Properties[0];
                prop.Name.ShouldBe("UID");
                prop.IgnoreCase.ShouldBe(false);
                prop.Text.ShouldBe("*****@*****.**");
            });
        }
Пример #3
0
		public void ParticipationStatus() {

			var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
   <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VEVENT"">
        <C:prop-filter name=""ATTENDEE"">
          <C:text-match
             caseless=""yes"">mailto:[email protected]</C:text-match>
          <C:param-filter name=""PARTSTAT"">
            <C:text-match caseless=""no"">NEEDS-ACTION</C:text-match>
          </C:param-filter>
        </C:prop-filter>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

			var f = new CalDav.Filter(xdoc.Root.Elements().First());
			Test(f, x => {
				x.Filters[0].Name.ShouldBe("VCALENDAR");
				x.Filters[0].Filters[0].Name.ShouldBe("VEVENT");
				var prop = x.Filters[0].Filters[0].Properties[0];
				prop.Name.ShouldBe("ATTENDEE");
				prop.IgnoreCase.ShouldBe(true);
				prop.Text.ShouldBe("mailto:[email protected]");
				prop.Parameters[0].Name.ShouldBe("PARTSTAT");
				prop.Parameters[0].Text.ShouldBe("NEEDS-ACTION");
				prop.Parameters[0].IgnoreCase.ShouldBe(false);
			});
		}
Пример #4
0
        public void ParticipationStatus()
        {
            var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
   <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VEVENT"">
        <C:prop-filter name=""ATTENDEE"">
          <C:text-match
             caseless=""yes"">mailto:[email protected]</C:text-match>
          <C:param-filter name=""PARTSTAT"">
            <C:text-match caseless=""no"">NEEDS-ACTION</C:text-match>
          </C:param-filter>
        </C:prop-filter>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

            var f = new CalDav.Filter(xdoc.Root.Elements().First());

            Test(f, x =>
            {
                x.Filters[0].Name.ShouldBe("VCALENDAR");
                x.Filters[0].Filters[0].Name.ShouldBe("VEVENT");
                var prop = x.Filters[0].Filters[0].Properties[0];
                prop.Name.ShouldBe("ATTENDEE");
                prop.IgnoreCase.ShouldBe(true);
                prop.Text.ShouldBe("mailto:[email protected]");
                prop.Parameters[0].Name.ShouldBe("PARTSTAT");
                prop.Parameters[0].Text.ShouldBe("NEEDS-ACTION");
                prop.Parameters[0].IgnoreCase.ShouldBe(false);
            });
        }
Пример #5
0
        public void TimeRange()
        {
            var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
    <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VTODO"">
        <C:comp-filter name=""VALARM"">
          <C:time-range start=""20041121T000000Z""
                        end=""20041121T235959Z""/>
        </C:comp-filter>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

            var f = new CalDav.Filter(xdoc.Root.Elements().First());

            Test(f, x =>
            {
                x.Filters[0].Name.ShouldBe("VCALENDAR");
                x.Filters[0].Filters[0].Name.ShouldBe("VTODO");
                x.Filters[0].Filters[0].Filters[0].Name.ShouldBe("VALARM");
                var timerange = x.Filters[0].Filters[0].Filters[0].TimeRange;
                timerange.Start.ShouldBe(new DateTime(2004, 11, 21, 0, 0, 0, DateTimeKind.Utc));
                timerange.End.ShouldBe(new DateTime(2004, 11, 21, 23, 59, 59, DateTimeKind.Utc));
            });
        }
Пример #6
0
        public void TimeRange()
        {
            var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
            <C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
            <C:filter>
            <C:comp-filter name=""VCALENDAR"">
              <C:comp-filter name=""VTODO"">
            <C:comp-filter name=""VALARM"">
              <C:time-range start=""20041121T000000Z""
                        end=""20041121T235959Z""/>
            </C:comp-filter>
              </C:comp-filter>
            </C:comp-filter>
              </C:filter>
            </C:calendar-query>");

            var f = new CalDav.Filter(xdoc.Root.Elements().First());
            Test(f, x => {
                x.Filters[0].Name.ShouldBe("VCALENDAR");
                x.Filters[0].Filters[0].Name.ShouldBe("VTODO");
                x.Filters[0].Filters[0].Filters[0].Name.ShouldBe("VALARM");
                var timerange = x.Filters[0].Filters[0].Filters[0].TimeRange;
                timerange.Start.ShouldBe(new DateTime(2004, 11, 21, 0, 0, 0, DateTimeKind.Utc));
                timerange.End.ShouldBe(new DateTime(2004, 11, 21, 23, 59, 59, DateTimeKind.Utc));
            });
        }
Пример #7
0
		public void TimeZone() {

			var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
  <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VTIMEZONE"">
        <C:is-defined/>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

			var f = new CalDav.Filter(xdoc.Root.Elements().First());
			Test(f, x => {
				x.Filters[0].Name.ShouldBe("VCALENDAR");
				x.Filters[0].Filters[0].Name.ShouldBe("VTIMEZONE");
				x.Filters[0].Filters[0].IsDefined.ShouldBe(true);
			});
		}
Пример #8
0
        public void TimeZone()
        {
            var xdoc = XDocument.Parse(@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<C:calendar-query xmlns:C=""urn:ietf:params:xml:ns:caldav"">
  <C:filter>
    <C:comp-filter name=""VCALENDAR"">
      <C:comp-filter name=""VTIMEZONE"">
        <C:is-defined/>
      </C:comp-filter>
    </C:comp-filter>
  </C:filter>
</C:calendar-query>");

            var f = new CalDav.Filter(xdoc.Root.Elements().First());

            Test(f, x => {
                x.Filters[0].Name.ShouldBe("VCALENDAR");
                x.Filters[0].Filters[0].Name.ShouldBe("VTIMEZONE");
                x.Filters[0].Filters[0].IsDefined.ShouldBe(true);
            });
        }
Пример #9
0
		private static void Test(CalDav.Filter filter, Action<CalDav.Filter> test){
			test(filter);
			filter = new CalDav.Filter((XElement)filter);
			test(filter);
		}
Пример #10
0
 private static void Test(CalDav.Filter filter, Action <CalDav.Filter> test)
 {
     test(filter);
     filter = new CalDav.Filter((XElement)filter);
     test(filter);
 }