public void TestSetMethodAsInternal() { var c = AstContext.Class("TestMethodAsInternal"); var method = c.Method("beInternal"); Assert.AreEqual(method.Access, AccessSpecifier.Public); passBuilder.AddPass(new CheckMacroPass()); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); Assert.AreEqual(method.Access, AccessSpecifier.Internal); }
public void TestFunctionToInstancePass() { var c = AstContext.Class("Foo"); Assert.IsNull(c.Method("Start")); passBuilder.AddPass(new FunctionToInstanceMethodPass()); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); Assert.IsNotNull(c.Method("Start")); }
public void TestExtractInterfacePass() { var c = AstContext.Class("TestExtractInterfacePass"); Assert.IsNull(c.GetInterface()); passBuilder.AddPass(new ExtractInterfacePass()); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); Assert.IsNotNull(c.GetInterface()); Assert.AreEqual("ITestExtractInterfacePass", c.GetInterface().Name); }
public void TestFunctionToStaticPass() { var c = AstContext.Class("Foo"); Assert.IsTrue(AstContext.Function("FooStart").IsGenerated); Assert.IsNull(c.Method("Start")); passBuilder.AddPass(new FunctionToStaticMethodPass()); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); Assert.IsFalse(AstContext.Function("FooStart").IsGenerated); Assert.IsNotNull(c.Method("Start")); }
public void TestCaseRenamePass() { var c = AstContext.Class("TestRename"); var method = c.Method("lowerCaseMethod"); var field = c.Field("lowerCaseField"); passBuilder.RenameDeclsUpperCase(RenameTargets.Any); passBuilder.RunPasses(pass => pass.VisitLibrary(AstContext)); Assert.That(method.Name, Is.EqualTo("LowerCaseMethod")); Assert.That(field.Name, Is.EqualTo("LowerCaseField")); }
public void TestCaseRenamePass() { Type.TypePrinterDelegate += type => type.Visit(new CSharpTypePrinter(Driver)).Type; var c = AstContext.Class("TestRename"); var method = c.Method("lowerCaseMethod"); var field = c.Field("lowerCaseField"); passBuilder.RenameDeclsUpperCase(RenameTargets.Any); passBuilder.RunPasses(pass => pass.VisitLibrary(AstContext)); Assert.That(method.Name, Is.EqualTo("LowerCaseMethod")); Assert.That(field.Name, Is.EqualTo("LowerCaseField")); }
public void TestCaseRenamePass() { Type.TypePrinterDelegate += TypePrinterDelegate; var c = AstContext.Class("TestRename"); passBuilder.AddPass(new FieldToPropertyPass()); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); var method = c.Method("lowerCaseMethod"); var property = c.Properties.Find(p => p.Name == "lowerCaseField"); passBuilder.RenameDeclsUpperCase(RenameTargets.Any); passBuilder.RunPasses(pass => pass.VisitASTContext(AstContext)); Assert.That(method.Name, Is.EqualTo("LowerCaseMethod")); Assert.That(property.Name, Is.EqualTo("LowerCaseField")); Type.TypePrinterDelegate -= TypePrinterDelegate; }