CodeModelCsaf ITransformer <CodeModelCsaf> .TransformCodeModel(CodeModel cs)
        {
            var codeModel = cs as CodeModelCsaf;

            Settings.Instance.AddCredentials = true;

            // todo: these should be turned into individual transformers
            AzureExtensions.NormalizeAzureClientModel(codeModel);

            // Do parameter transformations
            TransformParameters(codeModel);

            // Fluent Specific stuff.
            MoveResourceTypeProperties(codeModel); // call this before normalizing the resource types
            NormalizeResourceTypes(codeModel);
            NormalizeTopLevelTypes(codeModel);
            UseSubResourceForResourceProperties(codeModel);
            NormalizeModelProperties(codeModel);


            NormalizePaginatedMethods(codeModel);
            NormalizeODataMethods(codeModel);
            NormalizeEnumTypesWithNoNames(codeModel);
            return(codeModel);
        }
Esempio n. 2
0
        public void ConvertsPageResultsToPageTypeTest()
        {
            using (NewContext)
            {
                var settings = new Settings
                {
                    Input = Path.Combine(Core.Utilities.Extensions.CodeBaseDirectory, "Resource", "azure-paging.json")
                };

                var modeler   = new SwaggerModeler();
                var codeModel = modeler.Build();
                AzureExtensions.NormalizeAzureClientModel(codeModel);

                Assert.Equal(7, codeModel.Methods.Count);
                Assert.Equal(1, codeModel.Methods.Count(m => m.Name == "GetSinglePage"));
                Assert.Equal(0, codeModel.Methods.Count(m => m.Name == "GetSinglePageNext"));
                Assert.Equal(1, codeModel.Methods.Count(m => m.Name == "PutSinglePage"));
                Assert.Equal(1, codeModel.Methods.Count(m => m.Name == "PutSinglePageSpecialNext"));

                Assert.Equal("ProductResult", codeModel.Methods[0].ReturnType.Body.Name);
                Assert.Equal("object", codeModel.Methods[1].ReturnType.Body.Name.ToLowerInvariant());
                Assert.Equal("ProductResult", codeModel.Methods[1].Responses.ElementAt(0).Value.Body.Name);
                Assert.Equal("string",
                             codeModel.Methods[1].Responses.ElementAt(1).Value.Body.Name.ToLowerInvariant());
                Assert.Equal("object", codeModel.Methods[2].ReturnType.Body.Name.ToLowerInvariant());
                Assert.Equal("ProductResult", codeModel.Methods[2].Responses.ElementAt(0).Value.Body.Name);
                Assert.Equal("ProductResult2", codeModel.Methods[2].Responses.ElementAt(1).Value.Body.Name);
                Assert.Equal("object", codeModel.Methods[3].ReturnType.Body.Name.ToLowerInvariant());
                Assert.Equal("ProductResult", codeModel.Methods[3].Responses.ElementAt(0).Value.Body.Name);
                Assert.Equal("ProductResult3", codeModel.Methods[3].Responses.ElementAt(1).Value.Body.Name);
                Assert.Equal(8, codeModel.ModelTypes.Count);
            }
        }
Esempio n. 3
0
        CodeModelCsa ITransformer <CodeModelCsa> .TransformCodeModel(CodeModel cs)
        {
            var codeModel = cs as CodeModelCsa;

            // we're guaranteed to be in our language-specific context here.
            Settings.Instance.AddCredentials = true;

            // add the Credentials
            // PopulateAdditionalProperties(codeModel);

            // Do parameter transformations
            TransformParameters(codeModel);

            // todo: these should be turned into individual transformers
            AzureExtensions.NormalizeAzureClientModel(codeModel);

            NormalizePaginatedMethods(codeModel);
            NormalizeODataMethods(codeModel);

            foreach (var model in codeModel.ModelTypes)
            {
                if (model.Extensions.ContainsKey(AzureExtensions.AzureResourceExtension) &&
                    (bool)model.Extensions[AzureExtensions.AzureResourceExtension])
                {
                    model.BaseModelType = New <ILiteralType>("Microsoft.Rest.Azure.IResource",
                                                             new { SerializedName = "Microsoft.Rest.Azure.IResource" }) as CompositeType;
                }
            }

            return(codeModel);
        }
 /// <summary>
 /// Normalizes client model by updating names and types to be language specific.
 /// </summary>
 /// <param name="serviceClient">The service client.</param>
 public override void NormalizeClientModel(ServiceClient serviceClient)
 {
     Settings.AddCredentials = true;
     AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, CodeNamer);
     CorrectFilterParameters(serviceClient);
     base.NormalizeClientModel(serviceClient);
 }
Esempio n. 5
0
 /// <summary>
 /// Normalizes client model by updating names and types to be language specific.
 /// </summary>
 /// <param name="serviceClient"></param>
 public override void NormalizeClientModel(ServiceClient serviceClient)
 {
     AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, _namer);
     _namer.NormalizeClientModel(serviceClient);
     _namer.ResolveNameCollisions(serviceClient, Settings.Namespace,
                                  Settings.Namespace + ".Models");
     _namer.NormalizePaginatedMethods(serviceClient, pageClasses);
 }
        public override CodeModel TransformCodeModel(CodeModel codeModel)
        {
            // we're guaranteed to be in our language-specific context here.
            Settings.Instance.AddCredentials = true;

            // todo: these should be turned into individual transformers
            AzureExtensions.NormalizeAzureClientModel(codeModel);

            return(codeModel);
        }
 /// <summary>
 /// Normalizes client model by updating names and types to be language specific.
 /// </summary>
 /// <param name="serviceClient"></param>
 public override void NormalizeClientModel(ServiceClient serviceClient)
 {
     // MethodNames are normalized explicitly to provide a consitent method name while
     // generating cloned methods for long running operations with reserved words. For
     // example - beginDeleteMethod() insteadof beginDelete() as delete is a reserved word.
     Namer.NormalizeMethodNames(serviceClient);
     AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, Namer);
     base.NormalizeClientModel(serviceClient);
     NormalizeApiVersion(serviceClient);
     NormalizePaginatedMethods(serviceClient);
     ExtendAllResourcesToBaseResource(serviceClient);
 }
Esempio n. 8
0
 /// <summary>
 /// Normalizes client model by updating names and types to be language specific.
 /// </summary>
 /// <param name="serviceClient"></param>
 public override void NormalizeClientModel(ServiceClient serviceClient)
 {
     AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, _namer);
     _namer.NormalizeClientModel(serviceClient);
     _namer.ResolveNameCollisions(serviceClient, Settings.Namespace,
                                  Settings.Namespace + ".Models");
     _namer.NormalizeResourceTypes(serviceClient);
     _namer.NormalizeTopLevelTypes(serviceClient);
     _namer.NormalizeModelProperties(serviceClient);
     _namer.NormalizePaginatedMethods(serviceClient, PageClasses);
     _namer.NormalizeODataMethods(serviceClient);
 }
        CodeModelRba ITransformer <CodeModelRba> .TransformCodeModel(CodeModel cs)
        {
            var codeModel = cs as CodeModelRba;

            PopulateAdditionalProperties(codeModel);

            Singleton <Settings> .Instance.AddCredentials = true;
            AzureExtensions.NormalizeAzureClientModel(codeModel);
            CorrectFilterParameters(codeModel);
            AddRubyPageableMethod(codeModel);
            ApplyPagination(codeModel);

            return(codeModel);
        }
Esempio n. 10
0
        CodeModelTSa ITransformer <CodeModelTSa> .TransformCodeModel(CodeModel cm)
        {
            var codeModel = cm as CodeModelTSa;

            if (codeModel == null)
            {
                throw new InvalidCastException("Code Model is not a TypeScript Azure code model.");
            }

            // MethodNames are normalized explicitly to provide a consitent method name while
            // generating cloned methods for long running operations with reserved words. For
            // example - beginDeleteMethod() insteadof beginDelete() as delete is a reserved word.
            // Namer.NormalizeMethodNames(serviceClient);

            AzureExtensions.NormalizeAzureClientModel(codeModel);
            base.TransformCodeModel(codeModel);
            NormalizePaginatedMethods(codeModel);
            ExtendAllResourcesToBaseResource(codeModel);
            CreateModelTypeForOptionalClientProperties(codeModel);
            return(codeModel);
        }
Esempio n. 11
0
        CodeModelCsaf ITransformer <CodeModelCsaf> .TransformCodeModel(CodeModel cs)
        {
            var codeModel = cs as CodeModelCsaf;

            // Do parameter transformations
            TransformParameters(codeModel);

            // todo: these should be turned into individual transformers
            AzureExtensions.NormalizeAzureClientModel(codeModel);

            // Fluent Specific stuff.
            NormalizeResourceTypes(codeModel);
            NormalizeTopLevelTypes(codeModel);
            NormalizeModelProperties(codeModel);


            NormalizePaginatedMethods(codeModel);
            NormalizeODataMethods(codeModel);

            return(codeModel);
        }
Esempio n. 12
0
        /// <summary>
        /// Normalizes client model by updating names and types to be language specific.
        /// </summary>
        /// <param name="serviceClient"></param>
        public override void NormalizeClientModel(ServiceClient serviceClient)
        {
            AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings);
            _namer.NormalizeClientModel(serviceClient);
            _namer.ResolveNameCollisions(serviceClient, Settings.Namespace,
                                         Settings.Namespace + ".Models");
            _namer.NormalizePaginatedMethods(serviceClient, pageClasses);
            _namer.NormalizeODataMethods(serviceClient);

            if (serviceClient != null)
            {
                foreach (var model in serviceClient.ModelTypes)
                {
                    if (model.Extensions.ContainsKey(AzureExtensions.AzureResourceExtension) &&
                        (bool)model.Extensions[AzureExtensions.AzureResourceExtension])
                    {
                        model.BaseModelType = new CompositeType {
                            Name = "IResource", SerializedName = "IResource"
                        };
                    }
                }
            }
        }
Esempio n. 13
0
 public override void NormalizeClientModel(ServiceClient serviceClient)
 {
     AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings);
 }
 public override void NormalizeClientModel(ServiceClient serviceClient)
 {
     AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, new SampleAzureCodeNamer());
 }