public void CanParseMultipleCategoriesWithAndPUT([PexAssumeUnderTest] CategoryExpression expr) { //CategoryExpression expr = new CategoryExpression("One + Two+Three"); AndFilter andFilter = (AndFilter)expr.Filter; String[] tokens = expr.GetToken().Split('|'); PexAssert.AreEqual(tokens.Length, andFilter.Filters.Length); for (int i = 0; i < andFilter.Filters.Length; i++) { CategoryFilter catFilter = (CategoryFilter)andFilter.Filters[i]; PexAssert.AreEqual(catFilter.Categories, tokens[i]); } }
public void CanParseMultipleAlternativesPUT([PexAssumeUnderTest] CategoryExpression expr) { // CategoryExpression expr = new CategoryExpression("One|Two|Three"); OrFilter orFilter = (OrFilter)expr.Filter; char[] orSeperator = { '|' }; String[] tokens = expr.GetToken().Split(orSeperator); PexAssert.AreEqual(tokens.Length, orFilter.Filters.Length); for (int i = 0; i < orFilter.Filters.Length; i++) { CategoryFilter catFilter = (CategoryFilter)orFilter.Filters[i]; PexAssert.AreEqual(catFilter.Categories, tokens[i]); } }
public void CombinedPUT([PexAssumeUnderTest] CategoryExpression expr) { AndFilter andFilter = (AndFilter)expr.Filter; String token = expr.GetToken(); String[] seperator = { "+", "-" }; String[] tokens_split = token.Split(seperator, 10, StringSplitOptions.None); PexAssert.AreEqual(tokens_split.Length, andFilter.Filters.Length); List <String> list = new List <String>(); char[] plus = { '+' }; String[] tokens_withMinus = token.Split(plus); char[] minus = { '-' }; for (int i = 0; i < tokens_withMinus.Length; i++) { //"A+B-C" if (tokens_withMinus[i].Contains("-")) { String[] subTokens = tokens_withMinus[i].Split(minus); for (int j = 1; j < subTokens.Length; j++) { PexAssert.AreEqual(subTokens[j], typeof(NotFilter)); } } } String[] tokens_withPlus = token.Split(minus); for (int i = 0; i < tokens_withMinus.Length; i++) { //"A+B-C" if (tokens_withMinus[i].Contains("+")) { String[] subTokens = tokens_withMinus[i].Split(plus); for (int j = 1; j < subTokens.Length; j++) { PexAssert.AreEqual(subTokens[j], typeof(CategoryFilter)); } } } }