public void Matching_Successful() { CodeRootMap map = new CodeRootMap(); CodeRoot userroot = CreateBasicRoot(); map.AddCodeRoot(userroot, Version.User); CodeRoot prevroot = CreateBasicRoot(); map.AddCodeRoot(prevroot, Version.PrevGen); CodeRoot templateroot = CreateBasicRoot(); map.AddCodeRoot(templateroot, Version.NewGen); string result = map.GetMergedCodeRoot().ToString(); Assertions.StringContains(result, "class Class1", 1); Assertions.StringContains(result, "namespace ArchAngel.Tests", 1); map.MatchConstructs(map.GetExactNode(userroot.Namespaces[0]), userroot.Namespaces[0].Classes[0], null, prevroot.Namespaces[0].Classes[0]); map.Diff(); Assert.That(map.ChildNodes[0].ChildNodes, Has.Count(2)); Assert.That(map.ChildNodes[0].ChildNodes[0].DetermineMissingConstructs(), Is.EqualTo(MissingObject.User | MissingObject.PrevGen)); Assert.That(map.ChildNodes[0].ChildNodes[1].DetermineMissingConstructs(), Is.EqualTo(MissingObject.NewGen)); ICodeRoot merged = map.GetMergedCodeRoot(); result = merged.ToString(); Assertions.StringContains(result, "class Class1", 2); Assertions.StringContains(result, "namespace ArchAngel.Tests", 1); }
public void Diff_Does_Not_Modify_Base_Constructs() { string original = Path.Combine(ResourcePath, "Class1.cs"); string changed = Path.Combine(ResourcePath, "Class1_WithConstructor.cs"); ICodeRoot userCR = GetCodeRoot(original); ICodeRoot newgenCR = GetCodeRoot(changed); ICodeRoot prevgenCR = GetCodeRoot(changed); CodeRootMap map = new CodeRootMap(); map.AddCodeRoot(userCR, Version.User); map.AddCodeRoot(newgenCR, Version.NewGen); map.AddCodeRoot(prevgenCR, Version.PrevGen); map.Diff(); ICodeRoot withoutDiff = GetCodeRoot(changed); Assert.That(map.PrevGenCodeRoot.ToString(), Is.EqualTo(withoutDiff.ToString())); Assert.That(map.NewGenCodeRoot.ToString(), Is.EqualTo(withoutDiff.ToString())); }