コード例 #1
0
        protected override void BeginProcessing()
        {
            base.BeginProcessing();

            var filePathFormatService = new FilePathFormattingService();
            var jsonTypeParser        = new OpenApiSpecUmbrellaTypeParser <JsonCatchAllTypeModel>();
            var jsonObjectParser      = new OpenApiSpecObjectParser <JsonCatchAllTypeModel>(jsonTypeParser);
            var yamlTypeParser        = new OpenApiSpecUmbrellaTypeParser <YamlCatchAllTypeModel>();
            var yamlObjectParser      = new OpenApiSpecObjectParser <YamlCatchAllTypeModel>(yamlTypeParser);
            var lastTokenService      = new LastTokenInPathService();
            var enumFromStringService = new EnumFromStringService();
            var shortNameService      = new OpenApiEndpointShortNameService(lastTokenService);

            var moduleBuilderProvider   = new ModuleBuilderProvider();
            var openApiPrimitiveService = new OpenApiPrimitiveToTypeService(new OpenApiEnumToTypeService(moduleBuilderProvider));
            var openApiTypeResolver     = new OpenApiUmbrellaTypeResolver(openApiPrimitiveService,
                                                                          new OpenApiReferenceToTypeService(lastTokenService));
            var openApiObjectToTypeService = new OpenApiObjectToTypeService(openApiTypeResolver,
                                                                            new StealFieldsFromOpenApiObjectTypeService(openApiTypeResolver),
                                                                            moduleBuilderProvider);

            //establish current ps session working directory
            using (var session = PowerShell.Create(RunspaceMode.CurrentRunspace))
            {
                session.AddCommand("get-location");
                _pwd = session.Invoke <PathInfo>()
                       .FirstOrDefault()?.Path;
            }

            _specImportService = new ImportSpecFromFilePathService(filePathFormatService,
                                                                   new JsonFileToOpenApiModelService(jsonObjectParser,
                                                                                                     jsonTypeParser,
                                                                                                     new OpenApiJsonEndpointsParser(jsonTypeParser,
                                                                                                                                    jsonObjectParser,
                                                                                                                                    enumFromStringService),
                                                                                                     shortNameService),
                                                                   new YamlFileToOpenApiModelService(yamlObjectParser,
                                                                                                     yamlTypeParser,
                                                                                                     new OpenApiYamlEndpointsParser(yamlTypeParser,
                                                                                                                                    yamlObjectParser,
                                                                                                                                    enumFromStringService),
                                                                                                     shortNameService),
                                                                   new OpenApiSpecModelToGeneratedTypesService(openApiObjectToTypeService,
                                                                                                               openApiTypeResolver,
                                                                                                               new OpenApiEndpointToEndpointService(openApiTypeResolver,
                                                                                                                                                    openApiPrimitiveService,
                                                                                                                                                    openApiObjectToTypeService)));
        }
コード例 #2
0
        public void TestInitialise()
        {
            _lastTokenService = new Mock <ILastTokenInPathService>();

            _service = new OpenApiEndpointShortNameService(_lastTokenService.Object);

            _shortName     = Guid.NewGuid().ToString();
            _firstTag      = Guid.NewGuid().ToString();
            _secondTag     = Guid.NewGuid().ToString();
            _path          = Guid.NewGuid().ToString();
            _pathLastToken = Guid.NewGuid().ToString();

            _endpoints = new List <OpenApiEndpointModel>()
            {
                new OpenApiEndpointModel()
                {
                    Path = _path,
                    Tags = new List <string>()
                    {
                        _firstTag,
                        _secondTag
                    },
                    ShortName = _shortName
                },
                new OpenApiEndpointModel()
                {
                    Path = _path,
                    Tags = new List <string>()
                    {
                        _firstTag
                    },
                    Method = Method.GET
                }
            };

            _lastTokenService.Setup(s => s.GetLastToken(_path))
            .Returns(() => _pathLastToken).Verifiable();
        }