// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version: 17.0.0.0
//  
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
namespace ServiceClientGenerator.Generators.TestFiles
{
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;
    using System;
    
    /// <summary>
    /// Class to produce the template output
    /// </summary>
    
    #line 1 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
    public partial class SimpleConstructorTests : Generators.BaseGenerator
    {
#line hidden
        /// <summary>
        /// Create the template output
        /// </summary>
        public override string TransformText()
        {
            
            #line 6 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"

	AddLicenseHeader();

            
            #line default
            #line hidden
            this.Write("using System.Collections.Generic;\r\nusing System.IO;\r\nusing Microsoft.VisualStudio" +
                    ".TestTools.UnitTesting;\r\nusing ");
            
            #line 12 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
            
            #line default
            #line hidden
            this.Write(";\r\nusing ");
            
            #line 13 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
            
            #line default
            #line hidden
            this.Write(".Model;\r\n\r\nnamespace AWSSDK_DotNet35.UnitTests.TestTools\r\n{\r\n    [TestClass]\r\n   " +
                    " public class ");
            
            #line 18 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ClassName));
            
            #line default
            #line hidden
            this.Write("ConstructorCustomizationsTests\r\n    {\r\n");
            
            #line 20 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"

    foreach (var operation in this.Config.ServiceModel.Operations)
    {
        if (this.Config.ServiceModel.Customizations.SimpleConstructorsModel.CreateSimpleConstructors(operation.Name + "Request"))
        {

            
            #line default
            #line hidden
            this.Write("        [TestMethod]\r\n\t\t[TestCategory(\"UnitTest\")]\r\n        [TestCategory(\"Constr" +
                    "uctors\"), TestCategory(\"");
            
            #line 28 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.TestCategory));
            
            #line default
            #line hidden
            this.Write("\")]\r\n        public void ");
            
            #line 29 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
            
            #line default
            #line hidden
            this.Write("RequestConstructorTests()\r\n        {\r\n");
            
            #line 31 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"

            foreach (var form in  this.Config.ServiceModel.Customizations.SimpleConstructorsModel.SimpleConstructors[operation.Name + "Request"].Forms)
            {
                var docMembers = this.Config.ServiceModel.Customizations.SimpleConstructorsModel.GetFormMembers(form, this.Config.ServiceModel.FindShape(operation.RequestStructure.Name).Members);

            
            #line default
            #line hidden
            this.Write("            EnsureConstructorExists(typeof(");
            
            #line 36 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
            
            #line default
            #line hidden
            this.Write(".Model.");
            
            #line 36 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name + "Request"));
            
            #line default
            #line hidden
            this.Write("), new System.Type[] { ");
            
            #line 36 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
 foreach (var member in docMembers) { 
            
            #line default
            #line hidden
            this.Write("typeof(");
            
            #line 36 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(member.DetermineType()));
            
            #line default
            #line hidden
            this.Write("), ");
            
            #line 36 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"
}
            
            #line default
            #line hidden
            this.Write("});\r\n");
            
            #line 37 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"

            }

            
            #line default
            #line hidden
            this.Write("        }\r\n\r\n");
            
            #line 42 "C:\projects\aws\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\TestFiles\SimpleConstructorTests.tt"

        }
    }

            
            #line default
            #line hidden
            this.Write("        void EnsureConstructorExists(System.Type type, System.Type[] constructorP" +
                    "arams)\r\n        {\r\n            Assert.IsNotNull(type.GetConstructor(constructorP" +
                    "arams));\r\n        }\r\n    }\r\n}");
            return this.GenerationEnvironment.ToString();
        }
    }
    
    #line default
    #line hidden
}