public void VerifyInputMappingsForResources() { using (NewContext) { var codeModel = New <CodeModel>(); codeModel.Name = "test service client"; var flattenedPropertyType = New <CompositeType>("FooFlattened"); flattenedPropertyType.Add(New <Property>(new { Name = "Sku", ModelType = New <PrimaryType>(KnownPrimaryType.String) })); flattenedPropertyType.Add(New <Property>(new { Name = "ProvState", ModelType = New <PrimaryType>(KnownPrimaryType.String) })); flattenedPropertyType.Add(New <Property>(new { Name = "Id", ModelType = New <PrimaryType>(KnownPrimaryType.Int) })); var customObjectPropertyType = New <CompositeType>("FooProperty"); customObjectPropertyType.Add(New <Property>(new { Name = "Sku", ModelType = New <PrimaryType>(KnownPrimaryType.String) })); customObjectPropertyType.Add(New <Property>(new { Name = "ProvState", ModelType = New <PrimaryType>(KnownPrimaryType.String) })); var customObjectType = New <CompositeType>("Foo"); customObjectType.Add(New <Property>(new { Name = "Property", ModelType = customObjectPropertyType })); customObjectType.Add(New <Property>(new { Name = "Id", ModelType = New <PrimaryType>(KnownPrimaryType.Int) })); var method = New <Method>(new { Name = "method1", Group = "mGroup", ReturnType = new Response(flattenedPropertyType, null) }); var inputParameter = New <Parameter>(new { Name = "prop", ModelType = flattenedPropertyType }); codeModel.Add(method); method.Add(inputParameter); method.InputParameterTransformation.Add(new ParameterTransformation { OutputParameter = New <Parameter>(new { Name = "body", ModelType = customObjectType, SerializedName = "body" }) }); method.InputParameterTransformation.Last().ParameterMappings.Add(new ParameterMapping { InputParameter = inputParameter, InputParameterProperty = "Id", OutputParameterProperty = "Id" }); method.InputParameterTransformation.Last().ParameterMappings.Add(new ParameterMapping { InputParameter = inputParameter, InputParameterProperty = "Sku", OutputParameterProperty = "Property.Sku" }); method.InputParameterTransformation.Last().ParameterMappings.Add(new ParameterMapping { InputParameter = inputParameter, InputParameterProperty = "ProvState", OutputParameterProperty = "Property.ProvState" }); MethodCs templateModel = method as MethodCs; templateModel.SyncMethods = SyncMethodsGenerationMode.All; var output = templateModel.BuildInputMappings(); string expected = @"String paramA = null; if (body != null) { paramA = body.A; } String paramB = default(String); if (body != null) { paramB = body.B; }"; MultilineAreEqual(expected, output.Trim()); } }
public void VerifyInputMappingsForFlattening() { using (NewContext) { var codeModel = New <CodeModel>(); codeModel.Name = "test service client"; var customObjectType = New <CompositeType>("Foo"); customObjectType.Add(New <Property>(new { Name = "A", ModelType = New <PrimaryType>(KnownPrimaryType.Boolean) })); customObjectType.Add(New <Property>(new { Name = "B", ModelType = New <PrimaryType>(KnownPrimaryType.String) })); var method = New <Method>(new { Name = "method1", Group = "mGroup", ReturnType = new Response(customObjectType, null) }); var outputParameter = New <Parameter>(new { Name = "body", ModelType = customObjectType }); codeModel.Add(method); method.Add( New <Parameter>( new { Name = "paramA", ModelType = New <PrimaryType>(KnownPrimaryType.Boolean), SerializedName = "paramA" })); method.Add( New <Parameter>( new { Name = "paramB", ModelType = New <PrimaryType>(KnownPrimaryType.String), SerializedName = "paramB" })); method.InputParameterTransformation.Add(new ParameterTransformation { OutputParameter = outputParameter }); method.InputParameterTransformation[0].ParameterMappings.Add(new ParameterMapping { InputParameter = method.Parameters.FirstOrDefault(), OutputParameterProperty = "A" }); method.InputParameterTransformation[0].ParameterMappings.Add(new ParameterMapping { InputParameter = method.Parameters.Skip(1).FirstOrDefault(), OutputParameterProperty = "B" }); MethodCs templateModel = method as MethodCs; templateModel.SyncMethods = SyncMethodsGenerationMode.All; var output = templateModel.BuildInputMappings(); System.Console.WriteLine(output); string expected = @"Foo body = default(Foo); if (paramA != null || paramB != null) { body = new Foo(); body.A = paramA; body.B = paramB; }"; MultilineAreEqual(expected, output.Trim()); } }