public void ConvertsPageResultsToPageTypeTest()
        {
            var settings = new Settings
            {
                Input = Path.Combine("Swagger", "azure-paging.json"),
                Header = "NONE",
                Modeler = "Swagger"
            };
            settings.FileSystem = new MemoryFileSystem();
            settings.FileSystem.CreateDirectory(Path.GetDirectoryName(settings.Input));
            settings.FileSystem.WriteFile(settings.Input, File.ReadAllText(settings.Input));

            SwaggerModeler modeler = new SwaggerModeler(settings);
            var serviceClient = modeler.Build();
            var codeNamer = new AzureCSharpCodeNamer();

            codeNamer.NormalizePaginatedMethods(serviceClient);
            Assert.Equal("Page<Product>", serviceClient.Methods[0].ReturnType.Name);
            Assert.Equal("Object", serviceClient.Methods[1].ReturnType.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[1].Responses.ElementAt(0).Value.Name);
            Assert.Equal("String", serviceClient.Methods[1].Responses.ElementAt(1).Value.Name);
            Assert.Equal("Object", serviceClient.Methods[2].ReturnType.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[2].Responses.ElementAt(0).Value.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[2].Responses.ElementAt(1).Value.Name);
            Assert.Equal("Object", serviceClient.Methods[3].ReturnType.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[3].Responses.ElementAt(0).Value.Name);
            Assert.Equal("Page<ProductChild>", serviceClient.Methods[3].Responses.ElementAt(1).Value.Name);
            Assert.Equal(4, serviceClient.ModelTypes.Count);
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult", StringComparison.OrdinalIgnoreCase)));
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult2", StringComparison.OrdinalIgnoreCase)));
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult3", StringComparison.OrdinalIgnoreCase)));
        }
コード例 #2
0
        public void ConvertsPageResultsToPageTypeTest()
        {
            var settings = new Settings
            {
                Input   = Path.Combine("Swagger", "azure-paging.json"),
                Header  = "NONE",
                Modeler = "Swagger"
            };

            settings.FileSystem = new MemoryFileSystem();
            settings.FileSystem.CreateDirectory(Path.GetDirectoryName(settings.Input));
            settings.FileSystem.WriteFile(settings.Input, File.ReadAllText(settings.Input));

            SwaggerModeler modeler       = new SwaggerModeler(settings);
            var            serviceClient = modeler.Build();
            var            codeNamer     = new AzureCSharpCodeNamer();

            codeNamer.NormalizePaginatedMethods(serviceClient);
            Assert.Equal("Page<Product>", serviceClient.Methods[0].ReturnType.Name);
            Assert.Equal("Object", serviceClient.Methods[1].ReturnType.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[1].Responses.ElementAt(0).Value.Name);
            Assert.Equal("String", serviceClient.Methods[1].Responses.ElementAt(1).Value.Name);
            Assert.Equal("Object", serviceClient.Methods[2].ReturnType.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[2].Responses.ElementAt(0).Value.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[2].Responses.ElementAt(1).Value.Name);
            Assert.Equal("Object", serviceClient.Methods[3].ReturnType.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[3].Responses.ElementAt(0).Value.Name);
            Assert.Equal("Page<ProductChild>", serviceClient.Methods[3].Responses.ElementAt(1).Value.Name);
            Assert.Equal(4, serviceClient.ModelTypes.Count);
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult", StringComparison.OrdinalIgnoreCase)));
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult2", StringComparison.OrdinalIgnoreCase)));
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult3", StringComparison.OrdinalIgnoreCase)));
        }
コード例 #3
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)
 {
     base.NormalizeClientModel(serviceClient);
     _namer.NormalizeClientModel(serviceClient);
     _namer.ResolveNameCollisions(serviceClient, Settings.Namespace,
                                  Settings.Namespace + ".Models");
     _namer.NormalizePaginatedMethods(serviceClient);
 }
コード例 #4
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)
        {
            base.NormalizeClientModel(serviceClient);
            _namer.NormalizeClientModel(serviceClient);
            _namer.ResolveNameCollisions(serviceClient, Settings.Namespace,
                                         Settings.Namespace + ".Models");
            _namer.NormalizePaginatedMethods(serviceClient, pageClasses);

            if (serviceClient != null)
            {
                foreach (var model in serviceClient.ModelTypes)
                {
                    if (model.Extensions.ContainsKey(AzureResourceExtension) && (bool)model.Extensions[AzureResourceExtension])
                    {
                        model.BaseModelType = new CompositeType {
                            Name = "IResource", SerializedName = "IResource"
                        };
                    }
                }
            }
        }
コード例 #5
0
        public void ConvertsPageResultsToPageTypeTest()
        {
            var settings = new Settings
            {
                Input         = Path.Combine("Swagger", "azure-paging.json"),
                Header        = "NONE",
                Modeler       = "Swagger",
                CodeGenerator = "CSharp"
            };

            settings.FileSystem = new MemoryFileSystem();
            settings.FileSystem.CreateDirectory(Path.GetDirectoryName(settings.Input));
            settings.FileSystem.WriteFile(settings.Input, File.ReadAllText(settings.Input));

            SwaggerModeler modeler       = new SwaggerModeler(settings);
            var            serviceClient = modeler.Build();
            var            codeNamer     = new AzureCSharpCodeNamer();
            var            objName       = codeNamer.NormalizeTypeReference(PrimaryType.Object).Name;
            var            strName       = codeNamer.NormalizeTypeReference(PrimaryType.String).Name;
            IDictionary <KeyValuePair <string, string>, string> pageClass = new Dictionary <KeyValuePair <string, string>, string>();

            codeNamer.NormalizePaginatedMethods(serviceClient, pageClass);
            Assert.Equal("Page<Product>", serviceClient.Methods[0].ReturnType.Body.Name);
            Assert.Equal(objName, serviceClient.Methods[1].ReturnType.Body.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[1].Responses.ElementAt(0).Value.Body.Name);
            Assert.Equal(strName, serviceClient.Methods[1].Responses.ElementAt(1).Value.Body.Name);
            Assert.Equal(objName, serviceClient.Methods[2].ReturnType.Body.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[2].Responses.ElementAt(0).Value.Body.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[2].Responses.ElementAt(1).Value.Body.Name);
            Assert.Equal(objName, serviceClient.Methods[3].ReturnType.Body.Name);
            Assert.Equal("Page<Product>", serviceClient.Methods[3].Responses.ElementAt(0).Value.Body.Name);
            Assert.Equal("Page<ProductChild>", serviceClient.Methods[3].Responses.ElementAt(1).Value.Body.Name);
            Assert.Equal(4, serviceClient.ModelTypes.Count);
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult", StringComparison.OrdinalIgnoreCase)));
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult2", StringComparison.OrdinalIgnoreCase)));
            Assert.False(serviceClient.ModelTypes.Any(t => t.Name.Equals("ProducResult3", StringComparison.OrdinalIgnoreCase)));
        }