public void ParseDateTimeOfYear_missingOn_invalidForRule() { var parser = new TzdbZoneInfoParser(); const string text = "Mar"; var tokens = Tokens.Tokenize(text); Assert.Throws(typeof(InvalidDataException), () => parser.ParseDateTimeOfYear(tokens, true)); }
public void ParseDateTimeOfYear_onAfter() { var parser = new TzdbZoneInfoParser(); const string text = "Mar Tue>=14 2:00"; var tokens = Tokens.Tokenize(text); var actual = parser.ParseDateTimeOfYear(tokens, true); var expected = new ZoneYearOffset(TransitionMode.Wall, 3, 14, (int)IsoDayOfWeek.Tuesday, true, new LocalTime(2, 0)); Assert.AreEqual(expected, actual); }
public void ParseDateTimeOfYear_missingOn_validForZone() { var parser = new TzdbZoneInfoParser(); const string text = "Mar"; var tokens = Tokens.Tokenize(text); var actual = parser.ParseDateTimeOfYear(tokens, false); var expected = new ZoneYearOffset(TransitionMode.Wall, 3, 1, 0, false, LocalTime.Midnight); Assert.AreEqual(expected, actual); }
public void Parse_2400_Last() { var parser = new TzdbZoneInfoParser(); const string text = "Mar lastSun 24:00"; var tokens = Tokens.Tokenize(text); var actual = parser.ParseDateTimeOfYear(tokens, true); var expected = new ZoneYearOffset(TransitionMode.Wall, 3, -1, (int)IsoDayOfWeek.Sunday, false, LocalTime.Midnight, true); Assert.AreEqual(expected, actual); }
public void Parse_2400_FromDay_AtMost_Wednesday() { var parser = new TzdbZoneInfoParser(); const string text = "Apr Wed<=14 24:00"; var tokens = Tokens.Tokenize(text); var rule = parser.ParseDateTimeOfYear(tokens, true); var actual = rule.GetOccurrenceForYear(2012); var expected = new LocalDateTime(2012, 4, 12, 0, 0).ToLocalInstant(); Assert.AreEqual(expected, actual); }
public void ParseDateTimeOfYear_emptyString() { var parser = new TzdbZoneInfoParser(); var tokens = Tokens.Tokenize(string.Empty); Assert.Throws(typeof(InvalidDataException), () => parser.ParseDateTimeOfYear(tokens, true)); }