Ejemplo n.º 1
0
        public virtual void Process()
        {
            var overrides = Settings.OverridesFiles.SelectMany(GetFiles);

            GLTypes = SpecReader.ReadTypeMap(Path.Combine(Settings.InputPath, glTypemap));
            CSTypes = SpecReader.ReadCSTypeMap(Path.Combine(Settings.InputPath, csTypemap));

            // Read enum signatures
            SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, Profile, Version);
            foreach (var file in overrides)
            {
                SpecReader.ReadEnums(file, Enums, Profile, Version);
            }

            // Read delegate signatures
            SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, Profile, Version);
            foreach (var file in overrides)
            {
                SpecReader.ReadDelegates(file, Delegates, Profile, Version);
            }

            var enum_processor = new EnumProcessor(this, overrides);
            var func_processor = new FuncProcessor(this, overrides);
            var doc_processor  = new DocProcessor(this);

            Enums    = enum_processor.Process(Enums, Profile);
            Wrappers = func_processor.Process(enum_processor, doc_processor,
                                              Delegates, Enums, Profile, Version);
        }
Ejemplo n.º 2
0
        public virtual void Process()
        {
            var overrides = Settings.OverridesFiles.SelectMany(GetFiles);

            GLTypes = SpecReader.ReadTypeMap(Path.Combine(Settings.InputPath, glTypemap));
            CSTypes = SpecReader.ReadCSTypeMap(Path.Combine(Settings.InputPath, csTypemap));

            // Read enum signatures
            SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, Profile, Version);
            foreach (var file in overrides)
            {
                SpecReader.ReadEnums(file, Enums, Profile, Version);
            }

            // Read delegate signatures
            SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, Profile, Version);
            foreach (var file in overrides)
            {
                SpecReader.ReadDelegates(file, Delegates, Profile, Version);
            }

            HashSet <string> extensions = new HashSet <string>();

            foreach (var(name, list) in Delegates)
            {
                var @delegate = list[0];
                if (string.IsNullOrEmpty(@delegate.Category) == false)
                {
                    foreach (var part in @delegate.Category.Split('|'))
                    {
                        extensions.Add(part);
                    }
                }
            }

            foreach (var(name, @enum) in Enums)
            {
                var match = Utilities.Extensions.Match(name);
                if (match.Index == 0 && match.Length != 0)
                {
                    extensions.Add(name);
                }
            }

            var enum_processor = new EnumProcessor(this, overrides);
            var func_processor = new FuncProcessor(this, overrides);
            var doc_processor  = new DocProcessor(this);

            Enums    = enum_processor.Process(Enums, Profile, extensions);
            Wrappers = func_processor.Process(enum_processor, doc_processor, Delegates, Enums, Profile, Version);
        }
Ejemplo n.º 3
0
        public void LoadSwaggerResourceShouldReturnSerialisedObject()
        {
            string testData        = "{\"swaggerVersion\":\"1.2\",\"apiVersion\":\"1.0\",\"apis\":[{\"path\":\"/SomeEndpoint\"}]}";
            var    responseMessage = new HttpResponseMessage();

            responseMessage.Content = new FakeHttpContent(testData);
            var messageHandler = new FakeHttpMessageHandler(responseMessage);
            var client         = new HttpClient(messageHandler);
            var classUnderTest = new SpecReader(client);

            var response = classUnderTest.LoadSwaggerResource("http://someUrl/");

            Assert.That(response.ApiVersion, Is.EqualTo("1.0"));
            Assert.That(response.SwaggerVersion, Is.EqualTo("1.2"));
            Assert.That(response.Apis.First().Path, Is.EqualTo("/SomeEndpoint"));
        }
Ejemplo n.º 4
0
        public virtual void Process()
        {
            string overrides = Path.Combine(Settings.InputPath, Settings.OverridesFile);

            GLTypes = SpecReader.ReadTypeMap(Path.Combine(Settings.InputPath, glTypemap));
            CSTypes = SpecReader.ReadCSTypeMap(Path.Combine(Settings.InputPath, csTypemap));

            SpecReader.ReadEnums(Path.Combine(Settings.InputPath, enumSpec), Enums, Profile, Version);
            SpecReader.ReadEnums(overrides, Enums, Profile, Version);
            SpecReader.ReadDelegates(Path.Combine(Settings.InputPath, glSpec), Delegates, Profile, Version);
            SpecReader.ReadDelegates(overrides, Delegates, Profile, Version);

            var enum_processor = new EnumProcessor(this, overrides);
            var func_processor = new FuncProcessor(this, overrides);

            Enums    = enum_processor.Process(Enums, Profile);
            Wrappers = func_processor.Process(enum_processor, Delegates, Enums, Profile, Version);
        }
Ejemplo n.º 5
0
        public void LoadSwaggerApiDefinitionShouldReturnSerialisedObject()
        {
            string testData        = "{\"swaggerVersion\":\"1.2\",\"apiVersion\":\"1.0\",\"basePath\":\"http://someUrl/\",\"resourcePath\":\"/SomeEndpoint\",\"apis\":[{\"path\":\"/someOperation\",\"operations\":[{\"method\":\"GET\",\"nickname\":\"GetSomething\",\"type\":\"array\",\"items\":{\"$ref\":\"someModel\"},\"parameters\":[{\"paramType\":\"path\",\"name\":\"customerId\",\"required\":true,\"type\":\"string\"}],\"responseMessages\":[]}]}],\"models\":{\"someModel\":{\"id\":\"someModel\",\"type\":\"object\",\"properties\":{\"Id\":{\"type\":\"string\"},\"Name\":{\"type\":\"string\"}},\"required\":[],\"subTypes\":[]}}}";
            var    responseMessage = new HttpResponseMessage();

            responseMessage.Content = new FakeHttpContent(testData);
            var messageHandler = new FakeHttpMessageHandler(responseMessage);
            var client         = new HttpClient(messageHandler);
            var classUnderTest = new SpecReader(client);

            var response = classUnderTest.LoadSwaggerApiDefinition("http://someUrl/SomeEndpoint");

            Assert.That(response.ApiVersion, Is.EqualTo("1.0"));
            Assert.That(response.SwaggerVersion, Is.EqualTo("1.2"));
            Assert.That(response.Apis.First().Path, Is.EqualTo("/someOperation"));
            Assert.That(response.Apis.First().Operations.Select(o => o.Method).First(), Is.EquivalentTo("GET"));
            Assert.That(response.Apis.First().Operations.Select(o => o.Type).First(), Is.EquivalentTo("array"));
            Assert.That(response.Apis.First().Operations.Select(o => o.Parameters.First().Name).First(), Is.EqualTo("customerId"));
            Assert.That(response.Apis.First().Operations.Select(o => o.Parameters.First().Type).First(), Is.EqualTo("string"));
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Usage: GenerateCodeFromSwagger.exe http://urlToSwaggerDef");
                return;
            }

            using (HttpClient client = new HttpClient())
            {
                Console.WriteLine("Loading api listing from {0}", args[0]);
                SpecReader specReader = new SpecReader(client);
                Listing    listing    = specReader.LoadSwaggerResource(args[0]);
                foreach (var api in listing.Apis)
                {
                    Console.WriteLine("Loading api definition from {0}", api.Path);
                    SwaggerParser.Model.SwaggerApi.Listing apiSpec = specReader.LoadSwaggerApiDefinition(api.Path);
                }
            }
        }
Ejemplo n.º 7
0
 public DisplayedSpec()
 {
     SpecReader specReader = new SpecReader();
     ViewSpec = specReader.CurrentSpec;
 }