public void Test03_LoadThenSaveIsDeterministic() { Debug.WriteLine("Unit test initialized for: Test03_LoadThenSaveIsDeterministic()"); foreach (FileInfo objBaseFileInfo in TestFiles) { // First Load-Save cycle string strDestinationControl = Path.Combine(TestPathInfo.FullName, "(Control) " + objBaseFileInfo.Name); using (Character objCharacterControl = LoadCharacter(objBaseFileInfo)) { SaveCharacter(objCharacterControl, strDestinationControl); // Second Load-Save cycle string strDestinationTest = Path.Combine(TestPathInfo.FullName, "(Test) " + objBaseFileInfo.Name); using (Character objCharacterTest = LoadCharacter(new FileInfo(strDestinationControl))) { SaveCharacter(objCharacterTest, strDestinationTest); // Check to see that character after first load cycle is consistent with character after second using (FileStream controlFileStream = File.Open(strDestinationControl, FileMode.Open, FileAccess.Read)) { using (FileStream testFileStream = File.Open(strDestinationTest, FileMode.Open, FileAccess.Read)) { try { Diff myDiff = DiffBuilder .Compare(controlFileStream) .WithTest(testFileStream) .CheckForIdentical() .WithNodeFilter(x => x.Name != "mugshot") // image loading and unloading is not going to be deterministic due to compression algorithms .WithNodeMatcher( new DefaultNodeMatcher( ElementSelectors.Or( ElementSelectors.ByNameAndText, ElementSelectors.ByName))) .IgnoreWhitespace() .Build(); foreach (Difference diff in myDiff.Differences) { Console.WriteLine(diff.Comparison); Console.WriteLine(); } Assert.IsFalse(myDiff.HasDifferences(), myDiff.ToString()); } catch (XmlSchemaException e) { Assert.Fail("Unexpected validation failure: " + e.Message); } } } } } } }
public void Load2ThenSaveIsDeterministic() { Debug.WriteLine("Unit test initialized for: Load2ThenSaveIsDeterministic()"); string strPath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "TestFiles"); string strTestPath = Path.Combine(strPath, nameof(Load2ThenSaveIsDeterministic) + '-' + DateTime.Now.ToString("yyyy-MM-dd-HH-mm", GlobalOptions.InvariantCultureInfo)); DirectoryInfo objTestPath = Directory.CreateDirectory(strTestPath); DirectoryInfo objPathInfo = new DirectoryInfo(strPath); //Assuming Test is your Folder FileInfo[] aobjFiles = objPathInfo.GetFiles("*.chum5"); //Getting Text files foreach (FileInfo objBaseFileInfo in aobjFiles) { // First Load-Save cycle string strDestinationControl = Path.Combine(objTestPath.FullName, "(Control) " + objBaseFileInfo.Name); using (Character objCharacter = LoadCharacter(objBaseFileInfo)) SaveCharacter(objCharacter, strDestinationControl); // Second Load-Save cycle string strDestinationTest = Path.Combine(objTestPath.FullName, "(Test) " + objBaseFileInfo.Name); using (Character objCharacter = LoadCharacter(new FileInfo(strDestinationControl))) SaveCharacter(objCharacter, strDestinationTest); // Check to see that character after first load cycle is consistent with character after second using (FileStream controlFileStream = File.Open(strDestinationControl, FileMode.Open, FileAccess.Read)) { using (FileStream testFileStream = File.Open(strDestinationTest, FileMode.Open, FileAccess.Read)) { try { Diff myDiff = DiffBuilder .Compare(controlFileStream) .WithTest(testFileStream) .CheckForIdentical() .WithNodeFilter(x => x.Name != "mugshot") // image loading and unloading is not going to be deterministic due to compression algorithms .WithNodeMatcher( new DefaultNodeMatcher( ElementSelectors.Or( ElementSelectors.ByNameAndText, ElementSelectors.ByName))) .IgnoreWhitespace() .Build(); foreach (Difference diff in myDiff.Differences) { Console.WriteLine(diff.Comparison); Console.WriteLine(); } Assert.IsFalse(myDiff.HasDifferences(), myDiff.ToString()); } catch (XmlSchemaException e) { Assert.Fail("Unexpected validation failure: " + e.Message); } } } } objTestPath.Delete(true); }
public void conditionalWithByNameAndTextRec() { ElementSelector es = ElementSelectors.ConditionalBuilder() .WhenElementIsNamed("tr").ThenUse(ByNameAndTextRecSelector.CanBeCompared) .ElseUse(ElementSelectors.ByName) .Build(); var myDiff = DiffBuilder.Compare(CONTROL).WithTest(TEST) .WithNodeMatcher(new DefaultNodeMatcher(es)) .CheckForSimilar() .Build(); Assert.IsFalse(myDiff.HasDifferences(), myDiff.ToString()); }
public string Serialize(Func <ScriptSelector, string> scriptReplacer) { return(string.Join("^", ElementSelectors.Select(e => e.Serialize(scriptReplacer)))); }
public bool ContainsScripts() => ElementSelectors.Any(c => c.ContainsScripts());