public void should_parse_whewn_oauth2() { var dynamicRaml = new Dictionary <string, object>(); dynamicRaml.Add("title", "test"); dynamicRaml.Add("baseUri", "http://baseuri.com"); var oauth = new Dictionary <string, object>(); var settings = new Dictionary <string, object>(); var oauthSettings = new Dictionary <string, object>(); oauthSettings.Add("authorizationUri", "https://authorization.com"); oauthSettings.Add("accessTokenUri", "https://accesstoken.com"); oauthSettings.Add("authorizationGrants", new [] { "read", "write" }); settings.Add("settings", oauthSettings); settings.Add("type", "OAuth 2.0"); oauth.Add("oauth_2_0", settings); var securitySchemes = new object[] { oauth }; dynamicRaml.Add("securitySchemes", securitySchemes); var ramlDocument = new RamlBuilder().Build(dynamicRaml); var security = SecurityParser.GetSecurity(ramlDocument); Assert.AreEqual("https://accesstoken.com", security.AccessTokenUri); Assert.AreEqual("read", security.AuthorizationGrants.First()); Assert.AreEqual("https://authorization.com", security.AuthorizationUri); }
public void should_parse_whewn_oauth1() { var dynamicRaml = new Dictionary <string, object>(); dynamicRaml.Add("title", "test"); dynamicRaml.Add("baseUri", "http://baseuri.com"); var oauth = new Dictionary <string, object>(); var settings = new Dictionary <string, object>(); var oauthSettings = new Dictionary <string, object>(); oauthSettings.Add("authorizationUri", "https://authorization.com"); oauthSettings.Add("tokenCredentialsUri", "https://tokencredentials.com"); oauthSettings.Add("requestTokenUri", "https://requesttoken.com"); settings.Add("settings", oauthSettings); settings.Add("type", "OAuth 1.0"); oauth.Add("oauth_1_0", settings); var securitySchemes = new object[] { oauth }; dynamicRaml.Add("securitySchemes", securitySchemes); var ramlDocument = new RamlBuilder().Build(dynamicRaml); var security = SecurityParser.GetSecurity(ramlDocument); Assert.AreEqual("https://tokencredentials.com", security.TokenCredentialsUri); Assert.AreEqual("https://requesttoken.com", security.RequestTokenUri); Assert.AreEqual("https://authorization.com", security.AuthorizationUri); }
public ClientGeneratorModel BuildModel() { warnings = new Dictionary <string, string>(); classesNames = new Collection <string>(); classes = new Collection <ClassObject>(); classesObjectsRegistry = new Dictionary <string, ClassObject>(); uriParameterObjects = new Dictionary <string, ApiObject>(); schemaRequestObjects = GetRequestObjects(); schemaResponseObjects = GetResponseObjects(); CleanProperties(schemaRequestObjects); CleanProperties(schemaResponseObjects); var parentClass = new ClassObject { Name = rootClassName, Description = "Main class for grouping root resources. Nested resources are defined as properties. The constructor can optionally receive an URL and HttpClient instance to override the default ones." }; classesNames.Add(parentClass.Name); classes.Add(parentClass); classesObjectsRegistry.Add(rootClassName, parentClass); var classObjects = GetClasses(raml.Resources, null, parentClass, null); SetClassesProperties(classesObjectsRegistry[rootClassName]); var apiRequestObjects = apiRequestGenerator.Generate(classObjects); var apiResponseObjects = apiResponseGenerator.Generate(classObjects); return(new ClientGeneratorModel { Namespace = NetNamingMapper.GetNamespace(raml.Title), RequestObjects = schemaRequestObjects, ResponseObjects = schemaResponseObjects, QueryObjects = queryObjects, HeaderObjects = headerObjects, ApiRequestObjects = apiRequestObjects, ApiResponseObjects = apiResponseObjects, ResponseHeaderObjects = responseHeadersObjects, BaseUriParameters = ParametersMapper.Map(raml.BaseUriParameters), BaseUri = raml.BaseUri, Security = SecurityParser.GetSecurity(raml), Version = raml.Version, Warnings = warnings, Classes = classObjects.Where(c => c.Name != rootClassName).ToArray(), Root = classObjects.First(c => c.Name == rootClassName), UriParameterObjects = uriParameterObjects }); }
public ClientGeneratorModel BuildModel() { warnings = new Dictionary <string, string>(); classesNames = new Collection <string>(); classes = new Collection <ClassObject>(); classesObjectsRegistry = new Dictionary <string, ClassObject>(); uriParameterObjects = new Dictionary <string, ApiObject>(); enums = new Dictionary <string, ApiEnum>(); //new RamlTypeParser(raml.Shapes, schemaObjects, ns, enums, warnings).Parse(); ParseSchemas(); schemaRequestObjects = GetRequestObjects(); schemaResponseObjects = GetResponseObjects(); FixEnumNamesClashing(); //FixTypes(schemaObjects.Values); //FixTypes(schemaRequestObjects.Values); //FixTypes(schemaResponseObjects.Values); ReconstructInheritance(); CleanProperties(schemaObjects); CleanProperties(schemaRequestObjects); CleanProperties(schemaResponseObjects); HandleScalarTypes(); clientMethodsGenerator = new ClientMethodsGenerator(raml, schemaResponseObjects, uriParameterObjects, queryObjects, headerObjects, responseHeadersObjects, schemaRequestObjects, linkKeysWithObjectNames, schemaObjects, enums); var parentClass = new ClassObject { Name = rootClassName, Description = "Main class for grouping root resources. Nested resources are defined as properties. The constructor can optionally receive an URL and HttpClient instance to override the default ones." }; classesNames.Add(parentClass.Name); classes.Add(parentClass); classesObjectsRegistry.Add(rootClassName, parentClass); var classObjects = GetClasses(raml.WebApi.EndPoints, null, parentClass, null, new Dictionary <string, Parameter>()); SetClassesProperties(classesObjectsRegistry[rootClassName]); var apiRequestObjects = apiRequestGenerator.Generate(classObjects); var apiResponseObjects = apiResponseGenerator.Generate(classObjects); //apiObjectsCleaner = new ApiObjectsCleaner(schemaRequestObjects, schemaResponseObjects, schemaObjects); uriParametersGenerator = new UriParametersGenerator(schemaObjects); //CleanNotUsedObjects(classObjects); return(new ClientGeneratorModel { BaseNamespace = baseNamespace, ModelsNamespace = modelsNamespace, SchemaObjects = schemaObjects, RequestObjects = schemaRequestObjects, ResponseObjects = schemaResponseObjects, QueryObjects = queryObjects, HeaderObjects = headerObjects, ApiRequestObjects = apiRequestObjects.ToArray(), ApiResponseObjects = apiResponseObjects.ToArray(), ResponseHeaderObjects = responseHeadersObjects, BaseUriParameters = ParametersMapper.Map(raml.WebApi.BaseUriParameters).ToArray(), BaseUri = raml.WebApi.Servers.Any() ? raml.WebApi.Servers.First() : null, Security = SecurityParser.GetSecurity(raml.WebApi), Version = raml.WebApi.Version, Warnings = warnings, Classes = classObjects.Where(c => c.Name != rootClassName).ToArray(), Root = classObjects.First(c => c.Name == rootClassName), UriParameterObjects = uriParameterObjects, Enums = Enums.ToArray() }); }