public void ParseSwaggerPaths() { var opsTerm = new VocabTerm <Operation>(); var pathTerm = new VocabTerm <Path>(); pathTerm.MapAnyObject <Operation>(opsTerm, (s, p) => { return(s.AddOperation(p, Guid.NewGuid().ToString())); }); var pathsTerm = new VocabTerm <OpenApiDocument>("paths"); pathsTerm.MapAnyObject <Path>(pathTerm, (s, p) => { return(s.AddPath(p)); }); var rootTerm = new VocabTerm <OpenApiDocument>(); rootTerm.MapObject <OpenApiDocument>(pathsTerm, (s) => { return(s); }); var stream = this.GetType().Assembly .GetManifestResourceStream(this.GetType(), "forecast.io.swagger.json"); var swaggerDoc = new OpenApiDocument(); JsonStreamingParser.ParseStream(stream, swaggerDoc, rootTerm); Assert.Equal(1, swaggerDoc.Paths.Count); Assert.Equal(1, swaggerDoc.Paths.First().Value.Operations.Count()); }
public static VocabTerm<OpenApiDocument> Create() { var openApiTerm = new VocabTerm<OpenApiDocument>(); openApiTerm.MapProperty<string>("swagger", (s, o) => s.Version = o); openApiTerm.MapProperty<string>("schemes", (s, o) => { if (s.Schemes == null) s.Schemes = new List<String>(); s.Schemes.Add(o); }); var infoTerm = new VocabTerm<Info>("info"); infoTerm.MapProperty<string>("description",(s,o) => s.Description = o); infoTerm.MapProperty<string>("termsOfService", (s, o) => s.TermsOfService = o); infoTerm.MapProperty<string>("title", (s, o) => s.Title = o); openApiTerm.MapObject<Info>(infoTerm, (s) => { s.Info = new Info(); return s.Info; }); var contactTerm = new VocabTerm<Contact>("contact"); infoTerm.MapObject<Contact>(contactTerm, (s) => { s.Contact = new Contact(); return s.Contact; }); var opsTerm = new VocabTerm<Operation>(); opsTerm.MapProperty<string>("operationId", (s, o) => s.Id = o); //opsTerm.MapProperty<string>("x-controller", (s, o) => s. = o); var pathTerm = new VocabTerm<Path>(); pathTerm.MapAnyObject<Operation>(opsTerm, (s, p) => { return s.AddOperation(p, Guid.NewGuid().ToString()); }); var pathsTerm = new VocabTerm<OpenApiDocument>("paths"); pathsTerm.MapAnyObject<Path>(pathTerm, (s, p) => { return s.AddPath(p); }); openApiTerm.MapObject<OpenApiDocument>(pathsTerm, (s) => { return s; }); return openApiTerm; }
// [Fact] public void ParseVeryLargeSwaggerPaths() { var opsTerm = new VocabTerm <Operation>(); var pathTerm = new VocabTerm <Path>(); pathTerm.MapAnyObject <Operation>(opsTerm, (s, p) => { return(s.AddOperation(p, Guid.NewGuid().ToString())); }); var pathsTerm = new VocabTerm <OpenApiDocument>("paths"); pathsTerm.MapAnyObject <Path>(pathTerm, (s, p) => { return(s.AddPath(p)); }); var rootTerm = new VocabTerm <OpenApiDocument>(); rootTerm.MapObject <OpenApiDocument>(pathsTerm, (s) => { return(s); }); var swaggerDoc = new OpenApiDocument(); var sw = new Stopwatch(); using (var stream = File.OpenRead(@"C:\Users\Darrel\Documents\Swagger\WebSites.json")) { sw.Start(); JsonStreamingParser.ParseStream(stream, swaggerDoc, rootTerm); sw.Stop(); }; _output.WriteLine(swaggerDoc.Paths.Count.ToString()); _output.WriteLine("That took : " + sw.ElapsedMilliseconds); }
// [Fact] public void ParseVeryLargeSwaggerPaths() { var opsTerm = new VocabTerm<Operation>(); var pathTerm = new VocabTerm<Path>(); pathTerm.MapAnyObject<Operation>(opsTerm, (s, p) => { return s.AddOperation(p, Guid.NewGuid().ToString()); }); var pathsTerm = new VocabTerm<OpenApiDocument>("paths"); pathsTerm.MapAnyObject<Path>(pathTerm, (s, p) => { return s.AddPath(p); }); var rootTerm = new VocabTerm<OpenApiDocument>(); rootTerm.MapObject<OpenApiDocument>(pathsTerm, (s) => { return s; }); var swaggerDoc = new OpenApiDocument(); var sw = new Stopwatch(); using (var stream = File.OpenRead(@"C:\Users\Darrel\Documents\Swagger\WebSites.json")) { sw.Start(); JsonStreamingParser.ParseStream(stream, swaggerDoc, rootTerm); sw.Stop(); }; _output.WriteLine(swaggerDoc.Paths.Count.ToString()); _output.WriteLine("That took : " + sw.ElapsedMilliseconds); }
public void ParseSwaggerPaths() { var opsTerm = new VocabTerm<Operation>(); var pathTerm = new VocabTerm<Path>(); pathTerm.MapAnyObject<Operation>(opsTerm, (s, p) => { return s.AddOperation(p, Guid.NewGuid().ToString()); }); var pathsTerm = new VocabTerm<OpenApiDocument>("paths"); pathsTerm.MapAnyObject<Path>(pathTerm,(s,p) => { return s.AddPath(p); }); var rootTerm = new VocabTerm<OpenApiDocument>(); rootTerm.MapObject<OpenApiDocument>(pathsTerm, (s) => { return s; }); var stream = this.GetType().Assembly .GetManifestResourceStream(this.GetType(), "forecast.io.swagger.json"); var swaggerDoc = new OpenApiDocument(); JsonStreamingParser.ParseStream(stream, swaggerDoc, rootTerm); Assert.Equal(1, swaggerDoc.Paths.Count); Assert.Equal(1, swaggerDoc.Paths.First().Value.Operations.Count()); }