public void GenerateSQLCloudConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlcloud.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlcloudInstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "sql-1", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", "sql-1_name"); var template = generator.GetTemplate(); Assert.IsNull(template.parameters["sql-1_authType"]); Assert.AreEqual("Username credential", template.parameters["sql-1_username"]["metadata"]["description"]); Assert.AreEqual("[parameters('sql-1_server')]", defintion["properties"]["parameterValues"]["server"]); Assert.AreEqual("[parameters('sql-1_database')]", defintion["properties"]["parameterValues"]["database"]); Assert.IsNull(defintion["properties"]["parameterValues"]["authType"]); Assert.AreEqual("[parameters('sql-1_username')]", defintion["properties"]["parameterValues"]["username"]); Assert.AreEqual("[parameters('sql-1_password')]", defintion["properties"]["parameterValues"]["password"]); Assert.IsNull(defintion["properties"]["parameterValues"]["gateway"]); Assert.AreEqual("[parameters('sql-1_name')]", defintion["name"]); Assert.AreEqual("[parameters('sql-1_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("SQL Azure", template.parameters["sql-1_displayName"]["defaultValue"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", defintion["properties"]["api"]["id"]); }
public void GenerateSQLGatewayConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlgateway.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.sqlgatewayInstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "sql", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", "sql_name"); var template = generator.GetTemplate(); Assert.AreEqual("windows", template.parameters["sql_authType"]["defaultValue"]); Assert.AreEqual("windows", template.parameters["sql_authType"]["allowedValues"][0]); Assert.AreEqual("Username credential", template.parameters["sql_username"]["metadata"]["description"]); Assert.AreEqual("[parameters('sql_server')]", defintion["properties"]["parameterValues"]["server"]); Assert.AreEqual("[parameters('sql_database')]", defintion["properties"]["parameterValues"]["database"]); Assert.AreEqual("[parameters('sql_authType')]", defintion["properties"]["parameterValues"]["authType"]); Assert.AreEqual("[parameters('sql_username')]", defintion["properties"]["parameterValues"]["username"]); Assert.AreEqual("[parameters('sql_password')]", defintion["properties"]["parameterValues"]["password"]); Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('sql_gatewayresourcegroup'),'/providers/Microsoft.Web/connectionGateways/',parameters('sql_gatewayname'))]", defintion["properties"]["parameterValues"]["gateway"]["id"]); Assert.AreEqual("[parameters('sql_name')]", defintion["name"]); Assert.AreEqual("[parameters('sql_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("SQL server OnPrem", template.parameters["sql_displayName"]["defaultValue"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'sql')]", defintion["properties"]["api"]["id"]); }
public void GenerateFileSystemGatewayConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.filegateway.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.filegatewayInstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "filesystem", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/filesystem')]", "filesystem_name"); var template = generator.GetTemplate(); Assert.AreEqual("windows", template.parameters["filesystem_authType"]["defaultValue"]); Assert.AreEqual("Root folder path (examples: \\\\MACHINE\\myShare or C:\\myShare)", template.parameters["filesystem_rootfolder"]["metadata"]["description"]); Assert.AreEqual("[parameters('filesystem_rootfolder')]", defintion["properties"]["parameterValues"]["rootfolder"]); Assert.AreEqual("[parameters('filesystem_authType')]", defintion["properties"]["parameterValues"]["authType"]); Assert.AreEqual("[parameters('filesystem_username')]", defintion["properties"]["parameterValues"]["username"]); Assert.AreEqual("[parameters('filesystem_password')]", defintion["properties"]["parameterValues"]["password"]); Assert.AreEqual("[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('filesystem_gatewayresourcegroup'),'/providers/Microsoft.Web/connectionGateways/',parameters('filesystem_gatewayname'))]", defintion["properties"]["parameterValues"]["gateway"]["id"]); Assert.AreEqual("[parameters('filesystem_name')]", defintion["name"]); Assert.AreEqual("[parameters('filesystem_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("Malos-LogicApp2015", template.parameters["filesystem_gatewayname"]["defaultValue"]); Assert.AreEqual("OnPremDataGateway", template.parameters["filesystem_gatewayresourcegroup"]["defaultValue"]); Assert.AreEqual("File System", template.parameters["filesystem_displayName"]["defaultValue"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/filesystem')]", defintion["properties"]["api"]["id"]); }
public void GetTemplateTest() { testClassInfo = generator.GetTemplate(code); Assert.IsNotNull(testClassInfo); generatedRoot = CSharpSyntaxTree.ParseText(testClassInfo.Content).GetRoot(); List <ClassDeclarationSyntax> generatedClasses = new List <ClassDeclarationSyntax>(generatedRoot.DescendantNodes().OfType <ClassDeclarationSyntax>()); List <ClassDeclarationSyntax> sourceClasses = new List <ClassDeclarationSyntax>(root.DescendantNodes().OfType <ClassDeclarationSyntax>()); Assert.AreEqual(sourceClasses.Count, generatedClasses.Count); for (int i = 0; i < sourceClasses.Count; i++) { ClassDeclarationSyntax sourceClass = sourceClasses[i]; ClassDeclarationSyntax generatedClass = generatedClasses[i]; List <MethodDeclarationSyntax> sourceMethods = new List <MethodDeclarationSyntax>( sourceClass.DescendantNodes().OfType <MethodDeclarationSyntax>() .Where(method => method.Modifiers. Any(modifer => modifer.ToString() == "public"))); List <MethodDeclarationSyntax> generatedMethods = new List <MethodDeclarationSyntax>( generatedClass.DescendantNodes().OfType <MethodDeclarationSyntax>() .Where(method => method.Modifiers. Any(modifer => modifer.ToString() == "public"))); Assert.AreEqual(sourceMethods.Count, generatedMethods.Count); for (int j = 0; j < sourceMethods.Count; j++) { MethodDeclarationSyntax sourceMethod = sourceMethods[j]; MethodDeclarationSyntax generatedMethod = generatedMethods[j]; Assert.IsTrue(generatedMethod.Identifier.ToString().Contains(sourceMethod.Identifier.ToString())); } } }
private static async void TestClient(IResource local) { dynamic remote = await Warehouse.Get <IResource>("iip://localhost/sys/service"); var con = remote.Connection as DistributedConnection; var template = await con.GetTemplateByClassName("Test.MyResource"); TestObjectProps(local, remote); var gr = await remote.GetGenericRecord(); Console.WriteLine(gr); var opt = await remote.Optional(new { a1 = 22, a2 = 33, a4 = "What?" }); Console.WriteLine(opt); var hello = await remote.AsyncHello(); await remote.Void(); await remote.Connection("ss", 33); await remote.ConnectionOptional("Test 2", 88); var rt = await remote.Optional("Optiona", 311); Console.WriteLine(rt); var t2 = await remote.GetTuple2(1, "A"); Console.WriteLine(t2); var t3 = await remote.GetTuple3(1, "A", 1.3); Console.WriteLine(t3); var t4 = await remote.GetTuple4(1, "A", 1.3, true); Console.WriteLine(t4); remote.StringEvent += new DistributedResourceEvent((sender, args) => Console.WriteLine($"StringEvent {args}") ); remote.ArrayEvent += new DistributedResourceEvent((sender, args) => Console.WriteLine($"ArrayEvent {args}") ); await remote.InvokeEvents("Hello"); //var childTemplate = remote.Child.Instance.Template; var path = TemplateGenerator.GetTemplate("iip://localhost/sys/service", "Generated"); Console.WriteLine(path); }
public void GenerateBlobConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.azureblob.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.azureblobinstance.json")); var generator = new TemplateGenerator(); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, (string)apiresource["id"]); var template = generator.GetTemplate(); Assert.AreEqual("[parameters('azureblob_name')]", defintion["name"]); Assert.AreEqual("[parameters('azureblob_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("[parameters('azureblob_accountName')]", defintion["properties"]["parameterValues"]["accountName"]); Assert.AreEqual("[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('azureblob_accountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]", defintion["properties"]["parameterValues"]["accessKey"]); }
public void GenerateBlobConnectionTemplate() { var apiresource = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.azureblob.json")); var apiresourceInstance = JObject.Parse(GetEmbededFileContent("LogicAppTemplate.Test.TestFiles.ApiSource.azureblobinstance.json")); var generator = new TemplateGenerator("", "", "", null); var defintion = generator.generateConnectionTemplate(apiresource, apiresourceInstance, "azureblob", "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/azureblob')]", "azureblob_name"); var template = generator.GetTemplate(); Assert.AreEqual("[parameters('azureblob_name')]", defintion["name"]); Assert.AreEqual("[parameters('azureblob_displayName')]", defintion["properties"]["displayName"]); Assert.AreEqual("[parameters('azureblob_accountName')]", defintion["properties"]["parameterValues"]["accountName"]); Assert.AreEqual("[listKeys(resourceId(parameters('azureblob_resourceGroupName'),'Microsoft.Storage/storageAccounts', parameters('azureblob_accountName')), '2018-02-01').keys[0].value]", defintion["properties"]["parameterValues"]["accessKey"]); Assert.AreEqual("[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/azureblob')]", defintion["properties"]["api"]["id"]); }