//This test asserts that a request with optional parameters is generated correctly with the order present
        //in the metadata
        public void GeneratesSnippetsWithOptionalParametersInCorrectOrder()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();
            const string        jsonObject  = "{\r\n  " +
                                              "\"address\": \"Sheet1!A1:D5\",\r\n" +
                                              "\"hasHeaders\": true\r\n" +
                                              "}";
            var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/tables/add")
            {
                Content = new StringContent(jsonObject)
            };
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "String address = \"Sheet1!A1:D5\";\r\n" +
                                           "\r\n" +
                                           "boolean hasHeaders = true;\r\n" +
                                           "\r\n" +
                                           "graphClient.me().drive().items(\"{id}\").workbook().tables()\n" +
                                           "\t.add(address,hasHeaders)\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.post();";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
        //This test asserts that a request with the odata.type property overrides the type from the metadata
        public void GeneratesSnippetsWithOverridenTypeInBody()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();
            const string        jsonObject  = "{\r\n  " +
                                              "\"@odata.type\": \"#microsoft.graph.fileAttachment\",\r\n  " + //subclass to use to override metadata superclass
                                              "\"name\": \"smile\",\r\n  " +
                                              "\"contentBytes\": \"R0lGODdhEAYEAA7\"\r\n" +
                                              "}";
            var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/messages/AAMkpsDRVK/attachments")
            {
                Content = new StringContent(jsonObject)
            };
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);
            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "FileAttachment attachment = new FileAttachment();\r\n" + // Use the FileAttachment class rather than the Attachment superclass from metadata
                                           "attachment.name = \"smile\";\r\n" +
                                           "attachment.contentBytes = \"R0lGODdhEAYEAA7\";\r\n" +
                                           "\r\n" +
                                           "graphClient.me().messages(\"AAMkpsDRVK\").attachments()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.post(attachment);";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
        //This tests asserts that we can generate snippets with query options present
        public void GeneratesSnippetsWithHeaderOptions()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();

            var requestPayload = new HttpRequestMessage(HttpMethod.Get,
                                                        "https://graph.microsoft.com/v1.0/me/events/AAMkAGIAAAoZDOFAAA=?$select=subject,body,bodyPreview,organizer,attendees,start,end,location");

            requestPayload.Headers.Add("Prefer", "outlook.timezone=\"Pacific Standard Time\"");

            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "LinkedList<Option> requestOptions = new LinkedList<Option>();\r\n" +
                                           "requestOptions.add(new HeaderOption(\"Prefer\", \"outlook.timezone=\\\"Pacific Standard Time\\\"\"));\r\n" + //Header Options present
                                           "\r\n" +
                                           "Event event = graphClient.me().events(\"AAMkAGIAAAoZDOFAAA=\")\n" +
                                           "\t.buildRequest( requestOptions )\n" +
                                           "\t.select(\"subject,body,bodyPreview,organizer,attendees,start,end,location\")\n" +
                                           "\t.get();";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
Ejemplo n.º 4
0
        public void Translate(string sourcesPath,
                              IEnumerable <string> assembliesPaths,
                              string javaOutputPath)
        {
            if (string.IsNullOrEmpty(sourcesPath))
            {
                throw new ArgumentException(nameof(sourcesPath));
            }
            if (assembliesPaths == null)
            {
                throw new ArgumentNullException(nameof(assembliesPaths));
            }

            if (string.IsNullOrEmpty(javaOutputPath))
            {
                javaOutputPath = sourcesPath + "\\java";
            }

            if (!(javaOutputPath.EndsWith("/java") || javaOutputPath.EndsWith("\\java")))
            {
                throw new ArgumentException($"Provided {nameof(javaOutputPath)} path is incorrect, it must end with 'java' directory.");
            }


            var javaGenerator = new JavaGenerator();

            javaGenerator.Generate(sourcesPath, javaOutputPath, assembliesPaths);
        }
        // This tests asserts that a type beginning with "@" character is also added to the AdditionalData bag
        public void GeneratesSnippetsWithTypesStartingWithTheAtSymbol()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();
            const string        jsonObject  = "{\r\n" +
                                              "  \"name\": \"New Folder\",\r\n" +
                                              "  \"folder\": { },\r\n" +
                                              "  \"@microsoft.graph.conflictBehavior\": \"rename\"\r\n" + //to be added to the AdditionalData
                                              "}";
            var requestPayload =
                new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/drive/root/children")
            {
                Content = new StringContent(jsonObject)
            };
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);
            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "DriveItem driveItem = new DriveItem();\r\n" +
                                           "driveItem.name = \"New Folder\";\r\n" +
                                           "Folder folder = new Folder();\r\n" +
                                           "driveItem.folder = folder;\r\n" +
                                           "driveItem.additionalDataManager().put(\"@microsoft.graph.conflictBehavior\", new JsonPrimitive(\"rename\"));\r\n" +
                                           "\r\n" +
                                           "graphClient.me().drive().root().children()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.post(driveItem);";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
Ejemplo n.º 6
0
        Generator CreateGenerator()
        {
            Generator generator = null;

            switch (Options.GeneratorKind)
            {
            case GeneratorKind.C:
                generator = new CGenerator(Context);
                break;

            case GeneratorKind.ObjectiveC:
                generator = new ObjCGenerator(Context);
                break;

            case GeneratorKind.Java:
                generator = new JavaGenerator(Context);
                break;

            case GeneratorKind.Swift:
                generator = new SwiftGenerator(Context);
                break;

            default:
                throw new NotImplementedException();
            }

            return(generator);
        }
        //This tests asserts that we can generate snippets from json objects with nested arrays inside them.
        public void RecursivelyGeneratesNestedPhonesListFromJsonObject()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();
            //json string with nested objects string array
            const string userJsonObject = "{\r\n  \"accountEnabled\": true,\r\n  " +
                                          "\"businessPhones\": [\r\n    \"businessPhones-value\",\"businessPhones-value2\",\"businessPhones-value3\"\r\n  ],\r\n  " +//nested ArrayObject with 3 items
                                          "\"city\": \"city-value\"\r\n}";

            var requestPayload = new HttpRequestMessage(HttpMethod.Patch, "https://graph.microsoft.com/v1.0/me")
            {
                Content = new StringContent(userJsonObject)
            };
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "User user = new User();\r\n" +
                                           "user.accountEnabled = true;\r\n" +
                                           "LinkedList<String> businessPhonesList = new LinkedList<String>();\r\n" +
                                           "businessPhonesList.add(\"businessPhones-value\");\r\n" +
                                           "businessPhonesList.add(\"businessPhones-value2\");\r\n" +
                                           "businessPhonesList.add(\"businessPhones-value3\");\r\n" +
                                           "user.businessPhones = businessPhonesList;\r\n" +
                                           "user.city = \"city-value\";\r\n" +
                                           "\r\n" +
                                           "graphClient.me()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.patch(user);";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Entry point to generate snippets from the payload
        /// </summary>
        /// <param name="language"></param>
        /// <param name="httpRequestMessage"></param>
        /// <returns>String of snippet generated</returns>
        public string ProcessPayloadRequest(HttpRequestMessage httpRequestMessage, string language)
        {
            var(edmModel, serviceRootUri) = GetModelAndServiceUriTuple(httpRequestMessage.RequestUri);
            var snippetModel = new SnippetModel(httpRequestMessage, serviceRootUri.AbsoluteUri, edmModel);

            switch (language.ToLower())
            {
            case "c#":
                var csharpGenerator = new CSharpGenerator(edmModel, IsCommandLine);
                return(csharpGenerator.GenerateCodeSnippet(snippetModel, CSharpExpressions));

            case "javascript":
                return(JavaScriptGenerator.GenerateCodeSnippet(snippetModel, JavascriptExpressions));

            case "objective-c":
                var objectiveCGenerator = new ObjectiveCGenerator(edmModel);
                return(objectiveCGenerator.GenerateCodeSnippet(snippetModel, ObjectiveCExpressions));

            case "java":
                var javaGenerator = new JavaGenerator(edmModel);
                return(javaGenerator.GenerateCodeSnippet(snippetModel, JavaExpressions));

            default:
                throw new Exception("Invalid Language selected");
            }
        }
        //This tests asserts that we can generate snippets with $ref that adds/creates references with
        // a reference that is not a Uri
        public void GeneratesSnippetsAddingReferencesToDirectoryObjectWithNonUriReference()
        {
            //Arrange
            LanguageExpressions expressions       = new JavaExpressions();
            const string        messageJsonObject = "{\r\n  \"@odata.id\": \"ExampleID\"\r\n}";
            var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/groups/{id}/owners/$ref")
            {
                Content = new StringContent(messageJsonObject)
            };

            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);


            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "DirectoryObject directoryObject = new DirectoryObject();\r\n" +
                                           "directoryObject.Id = \"ExampleID\";\r\n" +

                                           "\r\n" +
                                           "graphClient.groups(\"{id}\").owners().references()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.post(directoryObject);";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
Ejemplo n.º 10
0
        public object Any(TypesJava request)
        {
            if (request.BaseUrl == null)
            {
                request.BaseUrl = Request.GetBaseUrl();
            }

            var typesConfig = NativeTypesMetadata.GetConfig(request);

            //Include SS types by removing ServiceStack namespaces
            if (typesConfig.AddServiceStackTypes)
            {
                typesConfig.IgnoreTypesInNamespaces = new List <string>();
            }

            ExportMissingSystemTypes(typesConfig);

            var metadataTypes = NativeTypesMetadata.GetMetadataTypes(Request, typesConfig);

            metadataTypes.Types.RemoveAll(x => x.Name == "Service");

            var java = new JavaGenerator(typesConfig).GetCode(metadataTypes, base.Request, NativeTypesMetadata);

            return(java);
        }
Ejemplo n.º 11
0
 //生成数据管理器
 private void GenDataManager(ExcelData excelData, string outputPath, string package)
 {
     if (_isOutputCSharp)
     {
         CSharpGenerator.GenDataManager(excelData, outputPath);
     }
     else if (!string.IsNullOrEmpty(package))
     {
         JavaGenerator.GenDataManager(excelData, outputPath, package);
     }
 }
        //This tests asserts that we return an error if we try to get beta snippets for Java
        public void ThrowsNotImplementedExceptionForBeta()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();

            //Act
            var requestPayload = new HttpRequestMessage(HttpMethod.Get,
                                                        "https://graph.microsoft.com/beta/me");
            var snippetModel = new SnippetModel(requestPayload, "https://graph.microsoft.com/beta", _edmModel);

            //Assert that we do not generate snippets for java beta for now
            Assert.Throws <NotImplementedException>(() => JavaGenerator.GenerateCodeSnippet(snippetModel, expressions));
        }
Ejemplo n.º 13
0
        public void DDLToJavaBeanTest()
        {
            javaBeanConfig               = new JavaBeanConfig();
            javaBeanConfig.DDLConfig     = ddlConfig;
            javaBeanConfig.PackageName   = "com.wintop.third.cbs.bean";
            javaBeanConfig.VOPackageName = "com.wintop.third.cbs.vo";
            javaBeanConfig.JavaDiretory  = @"D:\fgq\work\code\wintop-third-eas\bean\third-cbs-bean\src\main\java";
            javaBeanConfig.OmmitPrefix   = "ODS";

            JavaGenerator toJavaBean = new JavaGenerator();

            toJavaBean.GenerateBean(javaBeanConfig);
        }
        public Generator(Database database)
        {
            _database = database;

            _sqlGenerator             = new SqlGenerator(_database);
            _phpGenerator             = new PhpGenerator(_database);
            _typescriptGenerator      = new TypescriptGenerator(_database);
            _notificationSystem       = new NotificationSystem();
            _cSharpGenerator          = new CSharpGenerator(_database);
            _documentationGenerator   = new DocumentationGenerator(_database);
            _javaGenerator            = new JavaGenerator(_database);
            _pythonGenerator          = new PythonGenerator(_database);
            _generatorConfigGenerator = new GeneratorConfigGenerator(_database);
            _authenticationSystem     = new AuthenticationSystem(_database);
        }
Ejemplo n.º 15
0
        public void Test()
        {
            IExtensionPoint[] extensionPoints = { new StringExtensionPoint() };
            var generator = new JavaGenerator(extensionPoints.OfType <ITypeResolver>().ToArray());
            var options   = new TranslationOptions
            {
                IsBeautify     = true,
                MultiThreading = false
            };
            var translatorRunner = new TranslationRunner(generator, extensionPoints, options);
            var inDir            = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestFiles");
            var outDir           = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestFilesOut");

            translatorRunner.Translate(inDir, outDir, null);
        }
Ejemplo n.º 16
0
        void Generate()
        {
            Output = new ProjectOutput();

            Generator generator = null;

            switch (Options.GeneratorKind)
            {
            case GeneratorKind.C:
                generator = new CGenerator(Context);
                break;

            case GeneratorKind.ObjectiveC:
                generator = new ObjCGenerator(Context);
                break;

            case GeneratorKind.Java:
                generator = new JavaGenerator(Context);
                break;

            default:
                throw new NotImplementedException();
            }

            generator.SetupPasses();

            foreach (var unit in Context.ASTContext.TranslationUnits)
            {
                var outputs = generator.Generate(new[] { unit });

                foreach (var output in outputs)
                {
                    output.Process();
                    var text = output.Generate();

                    Output.WriteOutput(output.FilePath, text);
                }
            }

            if (Options.GenerateSupportFiles)
            {
                GenerateSupportFiles();
            }
        }
        //This tests asserts that we can generate snippets with $ref operator inside it
        public void GeneratesSnippetsWithReferenceSegmentInPath()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();

            var requestPayload = new HttpRequestMessage(HttpMethod.Delete, "https://graph.microsoft.com/v1.0/groups/{id}/owners/{id}/$ref");
            var snippetModel   = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "graphClient.groups(\"{id}\").owners(\"{id}\").reference()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.delete();";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
        //This tests asserts that we can properly generate snippets for odata actions with parameters
        public void GeneratesSnippetsForOdataActionsWithParameters()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();

            var requestPayload = new HttpRequestMessage(HttpMethod.Get,
                                                        "https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/worksheets/{id|name}/range(address='A1:B2')");
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "WorkbookRange workbookRange = graphClient.me().drive().items(\"{id}\").workbook().worksheets(\"{id|name}\")\n" +
                                           "\t.range(\"A1:B2\")\n" +//parameter has double quotes
                                           "\t.buildRequest()\n" +
                                           "\t.get();";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
        //This tests asserts that we can generate snippets from json objects with nested objects inside them.
        public void RecursivelyGeneratesNestedPasswordProfileObjectFromJson()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();
            //json string with nested object properties
            const string userJsonObject = "{\r\n  \"accountEnabled\": true,\r\n  " +
                                          "\"displayName\": \"displayName-value\",\r\n  " +
                                          "\"mailNickname\": \"mailNickname-value\",\r\n  " +
                                          "\"userPrincipalName\": \"[email protected]\",\r\n " +
                                          " \"passwordProfile\" : {\r\n    \"forceChangePasswordNextSignIn\": true,\r\n    \"password\": \"password-value\"\r\n  }\r\n}";//nested passwordProfile Object

            var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/users")
            {
                Content = new StringContent(userJsonObject)
            };
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "User user = new User();\r\n" +
                                           "user.accountEnabled = true;\r\n" +
                                           "user.displayName = \"displayName-value\";\r\n" +
                                           "user.mailNickname = \"mailNickname-value\";\r\n" +
                                           "user.userPrincipalName = \"[email protected]\";\r\n" +
                                           "PasswordProfile passwordProfile = new PasswordProfile();\r\n" +
                                           "passwordProfile.forceChangePasswordNextSignIn = true;\r\n" +
                                           "passwordProfile.password = \"password-value\";\r\n" +
                                           "user.passwordProfile = passwordProfile;\r\n" +
                                           "\r\n" +
                                           "graphClient.users()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.post(user);";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
        //This tests asserts that we can generate snippets with query options present
        public void GeneratesSnippetsWithQueryOptions()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();

            var requestPayload = new HttpRequestMessage(HttpMethod.Get,
                                                        "https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime=2017-01-01T19:00:00.0000000&endDateTime=2017-01-07T19:00:00.0000000");
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "LinkedList<Option> requestOptions = new LinkedList<Option>();\r\n" +
                                           "requestOptions.add(new QueryOption(\"startDateTime\", \"2017-01-01T19:00:00.0000000\"));\r\n" + //Query Options present
                                           "requestOptions.add(new QueryOption(\"endDateTime\", \"2017-01-07T19:00:00.0000000\"));\r\n" +   //Query Options present
                                           "\r\n" +
                                           "IEventCollectionPage calendarView = graphClient.me().calendar().calendarView()\n" +
                                           "\t.buildRequest( requestOptions )\n" +
                                           "\t.get();";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
        //This tests asserts that we can generate snippets from json objects with nested object lists(JArray) inside them.
        public void RecursivelyGeneratesNestedRecipientListObjectsFromJson()
        {
            //Arrange
            LanguageExpressions expressions = new JavaExpressions();
            //json string with nested object array
            const string messageJsonObject = "{\r\n    " +
                                             "\"subject\":\"Did you see last night's game?\",\r\n" +
                                             "\"importance\":\"Low\",\r\n" +
                                             "\"body\":{\r\n" +
                                             "\"contentType\":\"HTML\",\r\n" +
                                             "\"content\":\"They were <b>awesome</b>!\"\r\n" +
                                             "},\r\n" +
                                             "\"toRecipients\":[\r\n" +
                                             "{\r\n" +
                                             "\"emailAddress\":{\r\n" +
                                             "\"address\":\"[email protected]\"\r\n" +
                                             "}\r\n" +
                                             "},\r\n" +
                                             "{\r\n" +
                                             "\"emailAddress\":{\r\n" +
                                             "\"address\":\"[email protected]\"\r\n" +
                                             "}\r\n" +
                                             "}\r\n" +
                                             "]\r\n" +
                                             "}";

            var requestPayload = new HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/me/messages")
            {
                Content = new StringContent(messageJsonObject)
            };
            var snippetModel = new SnippetModel(requestPayload, ServiceRootUrl, _edmModel);

            //Act by generating the code snippet
            var result = new JavaGenerator(_edmModel).GenerateCodeSnippet(snippetModel, expressions);

            //Assert code snippet string matches expectation
            const string expectedSnippet = "Message message = new Message();\r\n" +
                                           "message.subject = \"Did you see last night's game?\";\r\n" +
                                           "message.importance = Importance.LOW;\r\n" +

                                           "ItemBody body = new ItemBody();\r\n" +
                                           "body.contentType = BodyType.HTML;\r\n" +
                                           "body.content = \"They were <b>awesome</b>!\";\r\n" +
                                           "message.body = body;\r\n" +

                                           "LinkedList<Recipient> toRecipientsList = new LinkedList<Recipient>();\r\n" +
                                           "Recipient toRecipients = new Recipient();\r\n" +
                                           "EmailAddress emailAddress = new EmailAddress();\r\n" +
                                           "emailAddress.address = \"[email protected]\";\r\n" +
                                           "toRecipients.emailAddress = emailAddress;\r\n" +
                                           "toRecipientsList.add(toRecipients);\r\n" +
                                           "Recipient toRecipients1 = new Recipient();\r\n" +
                                           "EmailAddress emailAddress1 = new EmailAddress();\r\n" +
                                           "emailAddress1.address = \"[email protected]\";\r\n" +
                                           "toRecipients1.emailAddress = emailAddress1;\r\n" +
                                           "toRecipientsList.add(toRecipients1);\r\n" +
                                           "message.toRecipients = toRecipientsList;\r\n" +
                                           "\r\n" +
                                           "graphClient.me().messages()\n" +
                                           "\t.buildRequest()\n" +
                                           "\t.post(message);";

            //Assert the snippet generated is as expected
            Assert.Equal(AuthProviderPrefix + expectedSnippet, result);
        }
Ejemplo n.º 22
0
        public static void PerformModelGenerate(TargetLanguage targetLanguage, TargetDatabaseConnector targetDatabaseConnector, string connectionString, string directory, string @namespace)
        {
            IModelGenerator generator = default;

            switch (targetLanguage)
            {
            case TargetLanguage.CSharp:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new CSharpGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new CSharpGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new CSharpGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new CSharpGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new CSharpGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.VisualBasic:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new VisualBasicGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new VisualBasicGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new VisualBasicGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new VisualBasicGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new VisualBasicGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.TypeScript:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new TypeScriptGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new TypeScriptGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new TypeScriptGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new TypeScriptGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new TypeScriptGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.PHP:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new PHPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new PHPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new PHPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new PHPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new PHPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Python:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new PythonGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new PythonGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new PythonGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new PythonGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new PythonGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Python37:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new Python37Generator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new Python37Generator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new Python37Generator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new Python37Generator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new Python37Generator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Java:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new JavaGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new JavaGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new JavaGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new JavaGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new JavaGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.CPP:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new CPPGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new CPPGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new CPPGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new CPPGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new CPPGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;

            case TargetLanguage.Golang:
                switch (targetDatabaseConnector)
                {
                case TargetDatabaseConnector.SQLServer:
                    generator = new GolangGenerator <SqlConnection, SqlParameter>(connectionString, directory, @namespace, x => $"[{x}]");
                    break;

                case TargetDatabaseConnector.Oracle:
                    generator = new GolangGenerator <OracleConnection, OracleParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.MySQL:
                    generator = new GolangGenerator <MySqlConnection, MySqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.PostgreSQL:
                    generator = new GolangGenerator <NpgsqlConnection, NpgsqlParameter>(connectionString, directory, @namespace);
                    break;

                case TargetDatabaseConnector.SQLite:
                    generator = new GolangGenerator <SQLiteConnection, SQLiteParameter>(connectionString, directory, @namespace);
                    break;
                }
                break;
            }
            generator.Generate();
        }