public void CarneBateryTest(FlagFilter filter) { Assert.IsFalse(filter.Test(new string[] { })); Assert.IsTrue(filter.Test(new string[] { "vegetal", "carne" })); Assert.IsTrue(filter.Test(new string[] { "carne" })); Assert.IsFalse(filter.Test(new string[] { "vegetal" })); Assert.IsFalse(filter.Test(new string[] { "vegetal", "tomate", "cebola" })); }
public void Complex1BateryTest(FlagFilter filter) { //v1 or v2, never in test Assert.IsFalse(filter.Test(new string[] { "test" })); Assert.IsFalse(filter.Test(new string[] { "test", "v1" })); Assert.IsFalse(filter.Test(new string[] { "v3" })); Assert.IsTrue(filter.Test(new string[] { "v1" })); Assert.IsTrue(filter.Test(new string[] { "v2", "production" })); }
//[TestMethod] //public void ComplexFilter2_2() //{ // var filter = new FlagFilter("!test&((v1)|(v2))"); //} //[TestMethod] //public void ComplexFilter2_3() //{ // var filter = new FlagFilter("!(test)&((v1)|(v2))"); //} public void Complex2BateryTest(FlagFilter filter) { //meat, vegetable or fruit. never with muchSugar or muchCarbo. never rot Assert.IsFalse(filter.Test(new string[] { "rock" })); Assert.IsTrue(filter.Test(new string[] { "meat" })); Assert.IsFalse(filter.Test(new string[] { "meat", "rot" })); Assert.IsFalse(filter.Test(new string[] { "fruit", "muchSugar" })); Assert.IsTrue(filter.Test(new string[] { "fruit", "meat", "vegetable" })); Assert.IsFalse(filter.Test(new string[] { "fruit", "meat", "vegetable", "rot" })); }
public void NotCarneBateryTest(FlagFilter filter) { var result = !(new string[] { }).Contains("carne"); Assert.IsTrue(filter.Test(new string[] { }), "Empty"); Assert.IsFalse(filter.Test(new string[] { "vegetal", "carne" }), "vegetal,carne"); Assert.IsFalse(filter.Test(new string[] { "carne" }), "carne"); Assert.IsTrue(filter.Test(new string[] { "vegetal" }), "vegetal"); Assert.IsTrue(filter.Test(new string[] { "vegetal", "tomate", "cebola" }), "vegetal,tomate,cebola"); Assert.IsTrue(filter.Test(new string[] { "tomate", "cebola" }), "tomate,cebola"); }
internal void TrimFolder(string folder, string filter) { filter = filter.ToLowerInvariant(); var allFiles = System.IO.Directory.GetFiles(folder, "*.*", System.IO.SearchOption.AllDirectories); FlagFilter flagFilter = new FlagFilter(filter); System.Uri rootFolder = new Uri(folder); foreach (var filePath in allFiles) { System.Uri fileUri = new Uri(filePath); Uri relativeUri = rootFolder.MakeRelativeUri(fileUri); var parts = relativeUri.ToString().ToLowerInvariant().Split('/'); var flags = parts.Skip(1).Take(parts.Length - 2).ToArray(); if (!flagFilter.Test(flags)) { System.IO.File.Delete(filePath); } } }
public void InvalidExpression1() { string[] invalidExpressions = new string[] { "!!tag1", "&tag1", "tag1&&tag2", "tag1||tag2", "|(tag1)", "tag|", "tag&", "tag!", "(|tag)", "tag&(&tag)" }; foreach (var item in invalidExpressions) { try { var filter = new FlagFilter(item); Assert.Fail(item); } catch (AssertFailedException ex) { throw ex; } catch (ArgumentException ex) { //this is ok } catch (Exception ex) { //this is unexpected Assert.Fail(string.Format("Unexpected exception type ({0}) for expression '{1}'.", ex.Message, item)); } } }
public void CarneFilter() { var filter = new FlagFilter("carne"); }
public void ComplexFilter2_1() { var filter = new FlagFilter("(meat|vegetable|fruit)&!rot&!muchSugar&!muchCarbo"); }
public void NotCarneFilter5() { var filter = new FlagFilter(" (( ! ( carne ) )) "); NotCarneBateryTest(filter); }
public void CarneFilterWithParenthesis3() { var filter = new FlagFilter("( ( ( carne ) ) )"); CarneBateryTest(filter); }
public void NotCarneFilter2() { var filter = new FlagFilter(" ! carne "); NotCarneBateryTest(filter); }
public void ComplexFilter1_2() { var filter = new FlagFilter("!test&((v1)|(v2))"); }
public void CarneOrVegetalFilter4() { var filter = new FlagFilter(" ( ( carne | vegetal ) ) "); CarneOrVegetalBateryTest(filter); }
public void CarneOrVegetalFilter2() { var filter = new FlagFilter(" carne | vegetal "); CarneOrVegetalBateryTest(filter); }
public void ComplexFilter1_1() { var filter = new FlagFilter("!test&(v1|v2)"); }
public void CarneFilterWithWhiteSpaces() { var filter = new FlagFilter(" carne "); CarneBateryTest(filter); }
public void ComplexFilter1_3() { var filter = new FlagFilter("!(test)&((v1)|(v2))"); }
public FlagMigrationFilter(FlagFilter filter) { this.filter = filter; }