public void ClassUnitTestRoundtrip() { // formatted class doesn't match the converted class because of the testMethod modifiers CompareLineByLine(ApexSharpParser.IndentApex(ClassUnitTest_Original), ClassUnitTest_Formatted); CompareLineByLine(ApexToCSharpHelpers.ConvertToCSharp(ClassUnitTest_Original, Options), ClassUnitTest_CSharp1); CompareLineByLine(CSharpToApexHelpers.ConvertToApex(ClassUnitTest_CSharp1)[0], ClassUnitTest_Converted); }
public void CSharpHelperConvertsCSharpTextsToApexDictionary() { var csharp = @" class Test1 { public Test1(int x) { } } class Test2 : Test1 { private int x = 10; } enum SomeEnum { None, Unknown, Default }"; var apexClasses = CSharpToApexHelpers.ConvertToApexCode(csharp); Assert.AreEqual(3, apexClasses.Count); CompareLineByLine( @"class Test1 { public Test1(Integer x) { } }", apexClasses["Test1"]); CompareLineByLine( @"class Test2 extends Test1 { private Integer x = 10; }", apexClasses["Test2"]); CompareLineByLine( @"enum SomeEnum { None, Unknown, Default }", apexClasses["SomeEnum"]); }
public void SampleWalkerDisplaysTheSyntaxTreeStructure() { var unit = CSharpToApexHelpers.ParseText( @"using System; using System.Collections; using System.Linq.Think; using System.Text; using system.debug; namespace Demo { struct Program { static void Main(string[] args) { Console.WriteLine(""Hello, World!""); } } }"); var walker = new SampleWalker(); unit.Accept(walker); var tree = walker.ToString(); Assert.False(string.IsNullOrWhiteSpace(tree)); }
public void CSharpHelperParsesTheCSharpCodeAndReturnsTheSyntaxTree() { var unit = CSharpToApexHelpers.ParseText( @"using System; using System.Collections; using System.Linq.Think; using System.Text; using system.debug; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine(""Hello, World!""); } } }"); Assert.NotNull(unit); var txt = CSharpToApexHelpers.ConvertToCSharp(unit); Assert.NotNull(txt); }
private void Check(string apexOriginal, string apexFormatted, string csharp) { Assert.Multiple(() => { CompareLineByLine(ApexSharpParser.IndentApex(apexOriginal), apexFormatted); CompareLineByLine(ApexToCSharpHelpers.ConvertToCSharp(apexOriginal, Options), csharp); CompareLineByLine(CSharpToApexHelpers.ConvertToApex(csharp)[0], apexFormatted); }); }
protected void Check(string csharpUnit, params string[] apexClasses) { var csharpNode = CSharpToApexHelpers.ParseText(csharpUnit); var apexNodes = ApexSyntaxBuilder.GetApexSyntaxNodes(csharpNode); Assert.Multiple(() => { Assert.AreEqual(apexClasses.Length, apexNodes.Count); foreach (var apexItem in apexNodes.Zip(apexClasses, (node, text) => new { node, text })) { Check(apexItem.node, apexItem.text); } }); }
public void EmptyClassIsGenerated() { var csharp = "class Test {}"; var cs = CSharpToApexHelpers.ParseText(csharp); var apex = ApexSyntaxBuilder.GetApexSyntaxNodes(cs); Assert.NotNull(apex); Assert.AreEqual(1, apex.Count); var cd = apex.OfType <ClassDeclarationSyntax>().FirstOrDefault(); Assert.NotNull(cd); Assert.AreEqual("Test", cd.Identifier); Check(csharp, "class Test {}"); }
public void CSharpHelperConvertsCSharpTextsToApex() { var csharp = "class Test1 { public Test1(int x) { } } class Test2 : Test1 { private int x = 10; }"; var apexClasses = CSharpToApexHelpers.ConvertToApex(csharp); Assert.AreEqual(2, apexClasses.Length); CompareLineByLine( @"class Test1 { public Test1(Integer x) { } }", apexClasses[0]); CompareLineByLine( @"class Test2 extends Test1 { private Integer x = 10; }", apexClasses[1]); }
public void DemoTestIsConverted() { var csharpCode = @"namespace ApexSharpDemo.ApexCode { using Apex.ApexSharp; using Apex.System; using SObjects; using NUnit.Framework; [TestFixture] public class DemoTest { [OneTimeSetUp] public void NoApexSetup() { new ApexSharp().Connect(""C:\\DevSharp\\connect.json""); } [SetUp] public static void Setup() { Contact contactNew = new Contact(); contactNew.LastName = ""Jay""; contactNew.Email = ""*****@*****.**""; Soql.Insert(contactNew); } [OneTimeSetUp] public void noApexSetupAgain() { new ApexSharp().Connect(""C:\\DevSharp\\connect.json""); } [Test] public static void UpdatePhoneTestValidEmail() { Demo.UpdatePhone(""*****@*****.**"", ""555-1212""); List<Contact> contacts = Soql.Query<Contact>(""SELECT Id, Email, Phone FROM Contact WHERE Email = '*****@*****.**'""); System.AssertEquals(contacts[0].Phone, ""555-1212""); } [Test] public static void UpdatePhoneTestNotValidEmail() { Demo.UpdatePhone(""*****@*****.**"", ""555-1212""); List<Contact> contacts = Soql.Query<Contact>(""SELECT Id, Email, Phone FROM Contact WHERE Email = '*****@*****.**'""); System.AssertEquals(contacts.Size(), 0); } } }"; var apexClasses = CSharpToApexHelpers.ConvertToApex(csharpCode); Assert.AreEqual(1, apexClasses.Length); CompareLineByLine(apexClasses[0], @"@IsTest public class DemoTest { //:NoApex [OneTimeSetUp] //:NoApex public void NoApexSetup() //:NoApex { //:NoApex new ApexSharp().Connect(""C:\\DevSharp\\connect.json""); //:NoApex } @TestSetup public static void Setup() { Contact contactNew = new Contact(); contactNew.LastName = 'Jay'; contactNew.Email = '*****@*****.**'; insert contactNew; } //:NoApex [OneTimeSetUp] //:NoApex public void noApexSetupAgain() //:NoApex { //:NoApex new ApexSharp().Connect(""C:\\DevSharp\\connect.json""); //:NoApex } @IsTest public static void UpdatePhoneTestValidEmail() { Demo.UpdatePhone('*****@*****.**', '555-1212'); List<Contact> contacts = [SELECT Id, Email, Phone FROM Contact WHERE Email = '*****@*****.**']; System.AssertEquals(contacts[0].Phone, '555-1212'); } @IsTest public static void UpdatePhoneTestNotValidEmail() { Demo.UpdatePhone('*****@*****.**', '555-1212'); List<Contact> contacts = [SELECT Id, Email, Phone FROM Contact WHERE Email = '*****@*****.**']; System.AssertEquals(contacts.Size(), 0); } }"); }
public void DemoIsConverted() { var csharpCode = @"namespace ApexSharpDemo.ApexCode { using Apex.ApexSharp; using Apex.System; using SObjects; public class Demo { public Contact contact { get; set; } public Demo() { contact = new Contact(); } public PageReference Save() { try { Soql.Insert(contact); } catch (DmlException e) { ApexPages.AddMessages(e); } return null; } public static string UpdatePhone(string email, string newPhone) { List<Contact> contacts = GetContactByEMail(email); if (contacts.IsEmpty()) { return ""Not Found""; } else { contacts[0].Phone = newPhone; UpdateContacts(contacts); return ""Phone Number Updated""; } } public static List<Contact> GetContactByEMail(string email) { List<Contact> contacts = Soql.Query<Contact>(""SELECT Id, Email, Phone FROM Contact WHERE Email = :email"", email); return contacts; } public static List<Contact> GetContacts() { List<Contact> contacts = Soql.Query<Contact>(""SELECT Id, Email, Phone FROM Contact""); return contacts; } public static void UpdateContacts(List<Contact> contacts) { Soql.Update(contacts); } } }"; var apexClasses = CSharpToApexHelpers.ConvertToApex(csharpCode); Assert.AreEqual(1, apexClasses.Length); CompareLineByLine(apexClasses[0], @"public class Demo { public Contact contact { get; set; } public Demo() { contact = new Contact(); } public PageReference Save() { try { insert contact; } catch (DmlException e) { ApexPages.AddMessages(e); } return null; } public static String UpdatePhone(String email, String newPhone) { List<Contact> contacts = GetContactByEMail(email); if (contacts.IsEmpty()) { return 'Not Found'; } else { contacts[0].Phone = newPhone; UpdateContacts(contacts); return 'Phone Number Updated'; } } public static List<Contact> GetContactByEMail(String email) { List<Contact> contacts = [SELECT Id, Email, Phone FROM Contact WHERE Email = :email]; return contacts; } public static List<Contact> GetContacts() { List<Contact> contacts = [SELECT Id, Email, Phone FROM Contact]; return contacts; } public static void UpdateContacts(List<Contact> contacts) { update contacts; } }"); }