public void WriteStructuredTypeWithDifferentNamespaceBaseType()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(InheritedComplexTypeEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmComplexType complexType = Context.GetSchemaElements("Namespace1").OfType<IEdmComplexType>().First();
            template.WriteStructurdTypeDeclaration(complexType, string.Empty);

            List<string> expectedActions = new List<string>
            {                
                "WriteClassStartForStructuredType(, ComplexType, ComplexType, ClassInheritglobal::Namespace2.BaseComplexType)"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
        public void WriteNoBaseTypeStructuredTypeWithUseDataServiceCollection()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(OneNamespaceAndEmptyComplexTypeEdmx, namespacePrefix)
            {
                UseDataServiceCollection = true
            };
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmComplexType complexType = Context.GetSchemaElements("Namespace1").OfType<IEdmComplexType>().First();
            template.WriteStructurdTypeDeclaration(complexType, string.Empty);

            List<string> expectedActions = new List<string>
            {                
                "WriteClassStartForStructuredType(, ComplexType, ComplexType, ClassInheritNotifyPropertyChanged)"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
        public void WriteStructuredTypeWithSameNamespaceBaseType()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(ModelHasInheritanceEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmEntityType entityType = Context.GetSchemaElements("Namespace1").OfType<IEdmEntityType>().Last();
            template.WriteStructurdTypeDeclaration(entityType, string.Empty);

            List<string> expectedActions = new List<string>
            {                
                "WriteClassStartForStructuredType(, EntityType, EntityType, ClassInheritBaseEntityType)"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
        public void WriteAbstractModifier()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(AbstractComplexTypeEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmComplexType complexType = Context.GetSchemaElements("Namespace1").OfType<IEdmComplexType>().First();
            template.WriteStructurdTypeDeclaration(complexType, string.Empty);

            List<string> expectedActions = new List<string>
            {                
                "WriteClassStartForStructuredType(AbstractModifier, ComplexType, ComplexType, )"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }