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"]);
        }
Exemple #4
0
        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()));
                }
            }
        }
Exemple #5
0
        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"]);
        }