public string Create(IOpenApiMetadataResourceStrategy resourceStrategy)
        {
            try
            {
                var resources = resourceStrategy.GetFilteredResources(_documentContext)
                                .ToList();

                var swaggerDocument = new SwaggerDocument
                {
                    info = new Info
                    {
                        title       = "Ed-Fi Operational Data Store API", version = $"{ApiVersionConstants.Ods}",
                        description =
                            "The Ed-Fi ODS / API enables applications to read and write education data stored in an Ed-Fi ODS through a secure REST interface. \n***\n > *Note: Consumers of ODS / API information should sanitize all data for display and storage. The ODS / API provides reasonable safeguards against cross-site scripting attacks and other malicious content, but the platform does not and cannot guarantee that the data it contains is free of all potentially harmful content.* \n***\n"
                    },
                    host = "%HOST%", basePath = "%BASE_PATH%", securityDefinitions =
                        new Dictionary <string, SecurityScheme>
                    {
                        {
                            "oauth2_client_credentials", new SecurityScheme
                            {
                                type = "oauth2", description =
                                    "Ed-Fi ODS/API OAuth 2.0 Client Credentials Grant Type authorization",
                                flow   = "application", tokenUrl = "%TOKEN_URL%",
                                scopes = new Dictionary <string, string>()
                            }
                        }
                    },
                    security =
                        new List <IDictionary <string, IEnumerable <string> > >
                    {
                        new Dictionary <string, IEnumerable <string> >
                        {
                            {
                                "oauth2_client_credentials", new string[0]
                            }
                        }
                    },
                    consumes = _documentContext.IsCompositeContext
                                              ? null
                                              : SwaggerDocumentHelper.GetConsumes(),
                    produces = SwaggerDocumentHelper.GetProduces(), tags = _tagsFactory.Create(resources),
                    paths = _pathsFactory.Create(resources), definitions = _definitionsFactory.Create(resources),
                    parameters = _parametersFactory.Create(_documentContext.IsCompositeContext), responses = _responsesFactory.Create()
                };

                return(JsonConvert.SerializeObject(
                           swaggerDocument,
                           new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore
                }));
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                throw;
            }
        }
            protected override void Arrange()
            {
                _swaggerDocumentContext = DomainModelDefinitionsProviderHelper.DefaultSwaggerDocumentContext;

                var swaggerResources = _swaggerDocumentContext.ResourceModel.GetAllResources()
                                       .Select(r => new SwaggerResource(r))
                                       .ToList();

                _stubbedOpenApiMetadataResourceStrategy = Stub <IOpenApiMetadataResourceStrategy>();

                A.CallTo(() => _stubbedOpenApiMetadataResourceStrategy.GetFilteredResources(A <SwaggerDocumentContext> ._))
                .Returns(swaggerResources);
            }
            protected override void Arrange()
            {
                _openApiMetadataDocumentContext = DomainModelDefinitionsProviderHelper.DefaultopenApiMetadataDocumentContext;

                var openApiMetadataResources = _openApiMetadataDocumentContext.ResourceModel.GetAllResources()
                                               .Select(r => new OpenApiMetadataResource(r))
                                               .ToList();

                _stubbedOpenApiMetadataResourceStrategy = Stub <IOpenApiMetadataResourceStrategy>();

                A.CallTo(() => _stubbedOpenApiMetadataResourceStrategy.GetFilteredResources(A <OpenApiMetadataDocumentContext> ._))
                .Returns(openApiMetadataResources);

                var defaultPageSizeLimitProvider = new DefaultPageSizeLimitProvider(GetConfiguration());

                _openApiMetadataDocumentFactory = new OpenApiMetadataDocumentFactory(
                    CreateApiSettings(), defaultPageSizeLimitProvider);
            }