public void should_parse_query_object() { var parameterDynamicRaml = new Dictionary <string, object> { { "type", "string" }, { "displayName", "ParameterName" }, { "description", "this is the description" } }; var parameters = new Dictionary <string, object> { { "one", parameterDynamicRaml } }; var dynamicRaml = new Dictionary <string, object> { { "method", "get" }, { "queryParameters", parameters } }; var generatedMethod = new ClientGeneratorMethod { Name = "GeneratedMethod" }; const string objectName = "ObjName"; var queryObj = QueryParametersParser.GetQueryObject(generatedMethod, new MethodBuilder().Build(dynamicRaml), objectName); var parsedParameters = queryObj.Properties; Assert.AreEqual(generatedMethod.Name + objectName + "Query", queryObj.Name); Assert.AreEqual(1, parsedParameters.Count); Assert.AreEqual("string", parsedParameters.First().Type); Assert.AreEqual("One", parsedParameters.First().Name); }
public void ClientGeneratorMethodTest() { IncrementTestCount(); var method = new ClientGeneratorMethod() { Name = "pepe", ResponseType = "string", ReturnType = "string", OkReturnType = "string", Url = "/", RequestType = "string", RequestContentTypes = new string[] { "application/json" }, Parameter = new GeneratorParameter() { Name = "string", Type = "string" } }; Assert.AreEqual(0, method.UriParametersCount); Assert.AreEqual(false, method.RequestIsXml); Assert.IsNotNull(method.SimpleReturnTypeString); Assert.IsNotNull(method.NetHttpMethod); Assert.IsNotNull(method.ParameterString); Assert.IsNotNull(method.ParameterStringCore); Assert.IsNotNull(method.QualifiedParameterType); Assert.IsNotNull(method.SimpleParameterString); Assert.IsNotNull(method.XmlComment); Assert.IsNotNull(method.XmlSimpleComment); }
public static ApiObject GetHeadersObject(ClientGeneratorMethod generatedMethod, Method method, string objectName) { return(new ApiObject { Name = generatedMethod.Name + objectName + "Header", Properties = ParseHeaders(method) }); }
public static ApiObject GetHeadersObject(ClientGeneratorMethod generatedMethod, Response response, string objectName) { return(new ApiObject { Name = generatedMethod.Name + objectName + ParserHelpers.GetStatusCode(response.Code) + "ResponseHeader", Properties = ParseHeaders(response) }); }
public ApiObject GetQueryObject(ClientGeneratorMethod generatedMethod, Method method, string objectName) { var queryObject = new ApiObject { Name = generatedMethod.Name + objectName + "Query" }; queryObject.Properties = ParseParameters(method); return(queryObject); }
public void Generate(Resource resource, string url, ClientGeneratorMethod clientGeneratorMethod, IDictionary <string, ApiObject> uriParameterObjects, IDictionary <string, Parameter> parentUriParameters) { var parameters = GetUriParameters(resource, url, parentUriParameters).ToArray(); clientGeneratorMethod.UriParameters = parameters; if (!parameters.Any()) { return; } var name = NetNamingMapper.GetObjectName(url) + "UriParameters"; clientGeneratorMethod.UriParametersType = name; if (uriParameterObjects.ContainsKey(name)) { return; } var properties = new List <Property>(); if (resource.BaseUriParameters != null) { properties.AddRange(QueryParametersParser.ConvertParametersToProperties(resource.BaseUriParameters)); } if (resource.UriParameters != null) { properties.AddRange(QueryParametersParser.ConvertParametersToProperties(resource.UriParameters) .Where(up => properties.All(p => !String.Equals(up.Name, p.Name, StringComparison.InvariantCultureIgnoreCase)))); } var urlParameters = ExtractParametersFromUrl(url).ToArray(); var matchedParameters = MatchParameters(parentUriParameters, urlParameters); foreach (var urlParameter in matchedParameters) { var property = ConvertGeneratorParamToProperty(urlParameter); if (properties.All(p => !String.Equals(property.Name, p.Name, StringComparison.InvariantCultureIgnoreCase))) { properties.Add(property); } } var apiObject = new ApiObject { Name = name, Description = "Uri Parameters for resource " + resource.RelativeUri, Properties = properties }; uriParameterObjects.Add(name, apiObject); }
public void Should_Build_Uri_Parameters_When_Custom_Scalars() { var uriParameters = new Dictionary <string, Parameter> { { "id", new Parameter { DisplayName = "id", Type = "CustomInt" } } }; var methods = new List <Method> { new Method { Verb = "get" } }; var resource = new Resource { RelativeUri = "/abc{id}", Methods = methods, UriParameters = uriParameters }; var schemaObjects = new Dictionary <string, ApiObject>(); schemaObjects.Add("CustomInt", new ApiObject { Type = "CustomInt", Name = "CustomInt", Properties = new[] { new Property { Name = "value", Type = "int" } } }); var generator = new UriParametersGenerator(schemaObjects); var uriParameterObjects = new Dictionary <string, ApiObject>(); var generatorMethod = new ClientGeneratorMethod { Name = "MethodOne" }; generator.Generate(resource, "/movies/abc{id}", generatorMethod, uriParameterObjects, new Dictionary <string, Parameter>()); Assert.AreEqual("CustomInt", generatorMethod.UriParameters.First().Type); }
public void Should_Build_Uri_Parameters() { var uriParameters = new Dictionary <string, Parameter> { { "code", new Parameter { DisplayName = "code", Type = "integer" } } }; var methods = new List <Method> { new Method { Verb = "get" } }; var resource = new Resource { RelativeUri = "/abc{token}{code}", Methods = methods, UriParameters = uriParameters }; var generator = new UriParametersGenerator(); var uriParameterObjects = new Dictionary <string, ApiObject>(); var generatorMethod = new ClientGeneratorMethod { Name = "MethodOne" }; generator.Generate(resource, "/movies/{bucket}/abc{token}{code}", generatorMethod, uriParameterObjects, new Dictionary <string, Parameter>()); Assert.AreEqual(1, uriParameterObjects.Count); Assert.AreEqual(3, generatorMethod.UriParameters.Count()); Assert.AreEqual(uriParameterObjects.First().Value.Name, generatorMethod.UriParametersType); }