public void TryParse_NoMatch5() { RangeExpressionSection value; bool result = RangeExpressionSection.TryParse("123-1", ExpressionSectionType.Hour, out value); Assert.False(result); }
static public bool TryParse(string s, ExpressionSectionType type, out RangeExpressionSection result) { result = default(RangeExpressionSection); if (string.IsNullOrEmpty(s)) return false; string[] parts = s.Split('-'); if (parts.Length != 2) return false; if (string.IsNullOrEmpty(parts[0])) return false; if (parts[0].Contains(",")) return false; if (parts[0].Contains("/")) return false; if (parts[0].Contains("-")) return false; if (parts[0].Contains("?")) return false; ExpressionSectionBase startValue; if (!TryParse(parts[0], type, out startValue)) return false; if (!(startValue is SimpleExpressionSection)) return false; if (string.IsNullOrEmpty(parts[1])) return false; if (parts[1].Contains(",")) return false; if (parts[1].Contains("/")) return false; if (parts[1].Contains("-")) return false; if (parts[1].Contains("?")) return false; ExpressionSectionBase endValue; if (!TryParse(parts[1], type, out endValue)) return false; result = new RangeExpressionSection(); result.Type = type; result.StartValue = startValue as SimpleExpressionSection; result.EndValue = endValue as SimpleExpressionSection; return true; }
public void TryParse_NoMatch_Empty() { RangeExpressionSection value; bool result = RangeExpressionSection.TryParse(null, ExpressionSectionType.Hour, out value); Assert.False(result); }
public void TryParse_NoMatch11() { RangeExpressionSection value; bool result = RangeExpressionSection.TryParse("1-2,3", ExpressionSectionType.DayOfMonth, out value); Assert.False(result); }
public void TryParse_NoMatch6() { RangeExpressionSection value; bool result = RangeExpressionSection.TryParse("1-9", ExpressionSectionType.DayOfWeek, out value); Assert.False(result); }
public void TryParse_Match3() { RangeExpressionSection value; bool result = RangeExpressionSection.TryParse("MON-FRI", ExpressionSectionType.DayOfWeek, out value); Assert.True(result); var start = value.StartValue as DayOfWeekExpressionSection; Assert.NotNull(start); Assert.AreEqual(DayOfWeek.Monday, start.DayOfWeek); var end = value.EndValue as DayOfWeekExpressionSection; Assert.NotNull(end); Assert.AreEqual(DayOfWeek.Friday, end.DayOfWeek); }
public void TryParse_Match2() { RangeExpressionSection value; bool result = RangeExpressionSection.TryParse("1-8", ExpressionSectionType.Hour, out value); Assert.True(result); var start = value.StartValue as SimpleExpressionSection; Assert.NotNull(start); Assert.AreEqual(1, start.Value); var end = value.EndValue as SimpleExpressionSection; Assert.NotNull(end); Assert.AreEqual(8, end.Value); }
static public bool TryParse(string s, ExpressionSectionType type, out RangeExpressionSection result) { result = default(RangeExpressionSection); if (string.IsNullOrEmpty(s)) { return(false); } string[] parts = s.Split('-'); if (parts.Length != 2) { return(false); } if (string.IsNullOrEmpty(parts[0])) { return(false); } if (parts[0].Contains(",")) { return(false); } if (parts[0].Contains("/")) { return(false); } if (parts[0].Contains("-")) { return(false); } if (parts[0].Contains("?")) { return(false); } ExpressionSectionBase startValue; if (!TryParse(parts[0], type, out startValue)) { return(false); } if (!(startValue is SimpleExpressionSection)) { return(false); } if (string.IsNullOrEmpty(parts[1])) { return(false); } if (parts[1].Contains(",")) { return(false); } if (parts[1].Contains("/")) { return(false); } if (parts[1].Contains("-")) { return(false); } if (parts[1].Contains("?")) { return(false); } ExpressionSectionBase endValue; if (!TryParse(parts[1], type, out endValue)) { return(false); } result = new RangeExpressionSection(); result.Type = type; result.StartValue = startValue as SimpleExpressionSection; result.EndValue = endValue as SimpleExpressionSection; return(true); }