public void Can_change_variable_to_non_aliased() { string csharpCode = @" public class Bar { private string lastName; public void Foo() { var ret = lastName; } }"; RDomRoot root = RDom.CSharp.Load(csharpCode) as RDomRoot; string output = RDom.CSharp.GetSyntaxNode(root).ToFullString(); Assert.AreEqual(csharpCode, output, "Inital"); IDeclarationStatement statement = root.RootClasses.First().Methods.First().Statements.First() as IDeclarationStatement; statement.IsImplicitlyTyped = false; statement.Type.DisplayAlias = true; output = RDom.CSharp.GetSyntaxNode(root).ToFullString(); string newCode = csharpCode.Replace("var", "string"); Assert.AreEqual(newCode, output, "After change"); }
public void Can_build_syntax_for_multi_member_root() { string csharpCode = @" using System; using System.Data; public class Bar{} public struct Bar2{} public enum Bar3{} public interface Bar4{}"; RDomRoot rDomRoot = RDom.CSharp.Load(csharpCode) as RDomRoot; SyntaxNode output = RDom.CSharp.GetSyntaxNode(rDomRoot); Assert.AreEqual(csharpCode, output.ToFullString()); }
public void Can_clear_stem_members_from_root() { string csharpCode = @" using System; public class Bar{} public struct Bar2{} "; RDomRoot root = RDom.CSharp.Load(csharpCode) as RDomRoot; Assert.AreEqual(3, root.StemMembers.Count()); IClass class1 = root.Classes.First(); root.ClearStemMembers(); Assert.AreEqual(0, root.StemMembers.Count()); }
public void Can_copy_multi_member_root() { string csharpCode = @" using System; public class Bar{} public struct Bar2{} public enum Bar3{} public interface Bar4{} "; RDomRoot rDomRoot = RDom.CSharp.Load(csharpCode) as RDomRoot; IRoot rDomRoot2 = rDomRoot.Copy(); RDomClass class1 = rDomRoot.RootClasses.First() as RDomClass; Assert.IsTrue(rDomRoot.SameIntent(rDomRoot2)); }
public void Can_add_copied_class_to_root() { string csharpCode = @" [Foo(""Fred"", bar:3, bar2:""George"")] public class Bar{} "; RDomRoot rDomRoot = RDom.CSharp.Load(csharpCode) as RDomRoot; IClass class1 = rDomRoot.RootClasses.First(); IAttribute attribute = class1.Attributes.Attributes.First(); IClass class2 = class1.Copy(); rDomRoot.StemMembersAll.AddOrMove(class2); IClass[] classes = rDomRoot.Classes.ToArray(); Assert.AreEqual(2, classes.Count()); Assert.IsFalse(classes[0] == classes[1]); // reference equality fails Assert.IsTrue(classes[0].SameIntent(classes[1])); }