Beispiel #1
0
        public void NeedToSetKeyAsSegmentShouldBeTureInAnnotaionTargetingNamespaces()
        {
            var context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithKeyAsSegmentAnnotaion, null);

            IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Namespace1").ToArray();
            context.UseKeyAsSegmentUrlConvention(schemaElements.OfType <IEdmEntityContainer>().First()).Should().BeTrue();
        }
Beispiel #2
0
        public void GetSchemaElementsShouldReturnIEdmSchemaElementIfInputNamespaceExistInEdmModel()
        {
            var context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);

            IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Test").ToArray();
            schemaElements.Length.Should().BeGreaterThan(0);
        }
Beispiel #3
0
        public void GetSchemaElementsShouldReturnEmptyIfInputNamespaceNotExistInEdmModel()
        {
            var context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);

            IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Foo").ToArray();
            schemaElements.Length.Should().Be(0);
        }
Beispiel #4
0
        public void GetPrefixedFullNameShouldReturnFullNameWithPrefixNamespaceIfNamespacePrefixIsNotNull()
        {
            ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithKeyAsSegmentAnnotaion, "Foo");
            IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Namespace1").ToArray();
            IEdmEntityContainer container      = schemaElements.OfType <IEdmEntityContainer>().First();

            context.GetPrefixedFullName(container, container.Name, new ODataT4CodeGenerator.ODataClientCSharpTemplate(context)).Should().Be("global::Foo.Namespace1.EntityContainer");
        }
Beispiel #5
0
        public void GetPrefixedFullNameShouldReturnExpectedFullName()
        {
            ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithEntityHierarchy, null);
            IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Namespace1").ToArray();
            IEdmEntityContainer container      = schemaElements.OfType <IEdmEntityContainer>().First();

            context.GetPrefixedFullName(container, container.Name, new ODataT4CodeGenerator.ODataClientCSharpTemplate(context)).Should().Be("global::Namespace1.EntityContainer");
        }
Beispiel #6
0
 public void GetEdmxStringFromMetadataPathShouldThrowExceptionIfInputIsInvalidUri()
 {
     try
     {
         Uri metadataUri = new Uri("ftp://testurl/");
         ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(metadataUri, null);
     }
     catch (Exception ex)
     {
         Assert.AreEqual(ex.Message, "Only file, http, https schemes are supported for paths to metadata source locations.");
     }
 }
Beispiel #7
0
        public UtilsTests()
        {
            this.context  = new ODataT4CodeGenerator.CodeGenerationContext(@"<?xml version=""1.0"" encoding=""utf-8""?>
<edmx:Edmx Version=""4.0"" xmlns:edmx=""http://docs.oasis-open.org/odata/ns/edmx"">
  <edmx:DataServices>
    <Schema Namespace=""Namespace"" xmlns=""http://docs.oasis-open.org/odata/ns/edm"">
      <EntityContainer Name=""EntityContainer""/>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>", "NamespacePrefix");
            this.template = new ODataT4CodeGenerator.ODataClientCSharpTemplate(context);
        }
Beispiel #8
0
 public void NamespaceMapShouldBeEmptyIfNamespacePrefixIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NamespaceMap.Count.Should().Be(0);
 }
Beispiel #9
0
 public void NamespacesInModelShouldContainOneNamespaceInOneNamesapceModel()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NamespacesInModel.Length.Should().Be(1);
 }
Beispiel #10
0
        public UtilsTests()
        {
            this.context = new ODataT4CodeGenerator.CodeGenerationContext(@"<?xml version=""1.0"" encoding=""utf-8""?>
<edmx:Edmx Version=""4.0"" xmlns:edmx=""http://docs.oasis-open.org/odata/ns/edmx"">
  <edmx:DataServices>
    <Schema Namespace=""Namespace"" xmlns=""http://docs.oasis-open.org/odata/ns/edm"">
      <EntityContainer Name=""EntityContainer""/>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>", "NamespacePrefix");
            this.template = new ODataT4CodeGenerator.ODataClientCSharpTemplate(context);
        }
 public void OnlyOneNamespaceShouldCallWriteNamespaceStartJustOnce()
 {
     string namespacePrefix = string.Empty;
     Context = new ODataT4CodeGenerator.CodeGenerationContext(OneNamespaceAndEmptyComplexTypeEdmx, namespacePrefix);
     ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
     template.WriteNamespaces();
     // Verify WriteNamespaceStart to representing WriteNamepsace
     template.CalledActions.FindAll(act => act == "WriteNamespaceStart(Namespace1)").Count.Should().Be(1);
 }
 public void GetEdmxStringFromMetadataPathShouldThrowExceptionIfInputIsInvalidUri()
 {
     try
     {
         Uri metadataUri = new Uri("ftp://testurl/");
         ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(metadataUri, null);
     }
     catch (Exception ex)
     {
         Assert.AreEqual(ex.Message, "Only file, http, https schemes are supported for paths to metadata source locations.");
     }
 }
Beispiel #13
0
 public void GetPrefixedNamespaceShouldReturnNamespaceWithoutGlobalAttached()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, "Test.Foo");
     context.GetPrefixedNamespace("Test", new ODataT4CodeGenerator.ODataClientCSharpTemplate(context), false, true).Should().Be("global::Test.Foo.Test");
 }
Beispiel #14
0
 public void NeedResolveNameFromTypeShouldFalseTrueIfEdmModeHasNotInheritanceAndNamespacePrefixIsIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NeedResolveNameFromType.Should().BeFalse();
 }
 public void ModelHasInheritanceShouldBeFalseIfEdmModelHasnotInheritance()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.ModelHasInheritance.Should().BeFalse();
 }
 public void NamespaceMapShouldNotBeEmptyIfNamespacePrefixIsNotNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, "Foo");
     context.NamespaceMap.Count.Should().BeGreaterThan(0);
 }
 public void NamespaceMapShouldBeEmptyIfNamespacePrefixIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NamespaceMap.Count.Should().Be(0);
 }
 public void NamespacesInModelShouldContainTwoNamespacesInTwoNamesapceModel()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithDifferentNamespaces, null);
     context.NamespacesInModel.Length.Should().Be(2);
 }
 public void NamespacesInModelShouldContainOneNamespaceInOneNamesapceModel()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NamespacesInModel.Length.Should().Be(1);
 }
        public void SimpleEdmxShouldCallMethodsInOrder()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(SimpleEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            template.WriteNamespace("Namespace1");

            List<string> expectedActions = new List<string>
            {
                "WriteNamespaceStart(Namespace1)",
                "WriteClassStartForEntityContainer(EntityContainer, EntityContainer, EntityContainer)",
                "WriteMethodStartForEntityContainerConstructor(EntityContainer, EntityContainer)",
                "WriteClassEndForEntityContainerConstructor()",
                "WriteGeneratedEdmModel(<edmx:Edmx Version=\"\"4.0\"\" xmlns:edmx=\"\"http://docs.oasis-open.org/odata/ns/edmx\"\">\r\n  <edmx:DataServices>\r\n    <Schema Namespace=\"\"Namespace1\"\" xmlns=\"\"http://docs.oasis-open.org/odata/ns/edm\"\">\r\n      <ComplexType Name=\"\"ComplexType\"\" />\r\n      <EnumType Name=\"\"EnumType\"\" />\r\n      <EntityType Name=\"\"EntityType\"\" Abstract=\"\"true\"\" />\r\n      <EntityContainer Name=\"\"EntityContainer\"\" />\r\n    </Schema>\r\n  </edmx:DataServices>\r\n</edmx:Edmx>)",
                "WriteClassEndForEntityContainer()",
                "WriteSummaryCommentForStructuredType(ComplexType)",
                "WriteClassStartForStructuredType(, ComplexType, ComplexType, )",
                "WriteClassEndForStructuredType()",
                "WriteSummaryCommentForStructuredType(EntityTypeSingle)", 
                "WriteClassStartForStructuredType(, EntityTypeSingle, EntityTypeSingle, ClassInheritDataServiceQuerySingle)",
                "WriteConstructorForSingleType(EntityTypeSingle, DataServiceQuerySingle)",
                "WriteClassEndForStructuredType()",
                "WriteSummaryCommentForStructuredType(EntityType)",
                "WriteEntityTypeAttribute()",
                "WriteClassStartForStructuredType(AbstractModifier, EntityType, EntityType, global::Microsoft.OData.Client.BaseEntityType)",
                "WriteClassEndForStructuredType()",
                "WriteSummaryCommentForEnumType(EnumType)",
                "WriteEnumDeclaration(EnumType, EnumType, )",
                "WriteEnumEnd()",
                "WriteExtensionMethodsStart()",
                "WriteExtensionMethodsEnd()",
                "WriteNamespaceEnd()"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
        public void OnlyEntityTypeShouldCallWriteEntityType()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(EmptyEntityTypeEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            template.WriteNamespace("Namespace1");

            List<string> expectedActions = new List<string>
            {
                "WriteNamespaceStart(Namespace1)",
                "WriteSummaryCommentForStructuredType(EntityTypeSingle)", 
                "WriteClassStartForStructuredType(, EntityTypeSingle, EntityTypeSingle, ClassInheritDataServiceQuerySingle)",
                "WriteConstructorForSingleType(EntityTypeSingle, DataServiceQuerySingle)",
                "WriteClassEndForStructuredType()",
                "WriteSummaryCommentForStructuredType(EntityType)",
                "WriteEntityTypeAttribute()",
                "WriteClassStartForStructuredType(AbstractModifier, EntityType, EntityType, global::Microsoft.OData.Client.BaseEntityType)",
                "WriteClassEndForStructuredType()",
                "WriteExtensionMethodsStart()",
                "WriteExtensionMethodsEnd()",
                "WriteNamespaceEnd()"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
Beispiel #22
0
 public void ModelHasInheritanceShouldBeFalseIfEdmModelHasnotInheritance()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.ModelHasInheritance.Should().BeFalse();
 }
Beispiel #23
0
 public void NeedResolveNameFromTypeShouldBeTrueIfEdmModelHasInheritance()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithEntityHierarchy, null);
     context.NeedResolveNameFromType.Should().BeTrue();
 }
 public void ModelHasInheritanceShouldBeTrueIfEdmModelHasInheritance()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithEntityHierarchy, null);
     context.ModelHasInheritance.Should().BeTrue();
 }
Beispiel #25
0
 public void GetPrefixedNamespaceShouldReturnNamespaceWithoutPrefixIfNamespacePrefixIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.GetPrefixedNamespace("Test", new ODataT4CodeGenerator.ODataClientCSharpTemplate(context), false, false).Should().Be("Test");
 }
 public void NeedResolveNameFromTypeShouldBeTrueIfEdmModelHasInheritance()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithEntityHierarchy, null);
     context.NeedResolveNameFromType.Should().BeTrue();
 }
        public void OnlyEnumTypeShouldCallWriteEnumType()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(EmptyEnumTypeEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            template.WriteNamespace("Namespace1");

            List<string> expectedActions = new List<string>
            {
                "WriteNamespaceStart(Namespace1)",
                "WriteSummaryCommentForEnumType(EnumType)",
                "WriteEnumDeclaration(EnumType, EnumType, )",
                "WriteEnumEnd()",
                "WriteNamespaceEnd()"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
 public void NeedResolveNameFromTypeShouldBeTrueIfNamespacePrefixIsNotNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, "Foo");
     context.NeedResolveNameFromType.Should().BeTrue();
 }
 public void TwoNamespacesShouldCallWriteNamespaceStartTwice()
 {
     string namespacePrefix = string.Empty;
     Context = new ODataT4CodeGenerator.CodeGenerationContext(TwoNamespacesEdmx, namespacePrefix);
     ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
     template.WriteNamespaces();
     // Verify WriteNamespaceStart representing WriteNamepsace
     template.CalledActions.FindAll(act => act.StartsWith("WriteNamespaceStart")).Count.Should().Be(2);
 }
 public void NeedResolveNameFromTypeShouldFalseTrueIfEdmModeHasNotInheritanceAndNamespacePrefixIsIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NeedResolveNameFromType.Should().BeFalse();
 }
        public void WriteDupNamesWithCamelCase()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(DupNamesEdmx, namespacePrefix);
            Context.EnableNamingAlias = true;
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmComplexType complexType = Context.GetSchemaElements("Namespace1").OfType<IEdmComplexType>().First();
            template.SetPropertyIdentifierMappingsIfNameConflicts(complexType.Name, complexType);
            template.WritePropertiesForStructuredType(complexType.DeclaredProperties);

            List<string> expectedActions = new List<string>
            {
                "WritePropertyForStructuredType(String, Name, Name2, Name2, _Name21, , False)",
                "WritePropertyForStructuredType(String, name, Name3, Name3, _Name3, , False)",
                "WritePropertyForStructuredType(String, Name1, Name1, Name1, _Name1, , False)",
                "WritePropertyForStructuredType(String, _Name2, _Name2, _Name2, __Name2, , False)",
            };
            template.CalledActions.Should().Contain(expectedActions);
        }
 public void NeedResolveTypeFromNameShouldBeFalseIfNamespacePrefixIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NeedResolveNameFromType.Should().BeFalse();
 }
 public void GetPrefixedNamespaceShouldReturnNamespaceWithoutPrefixIfNamespacePrefixIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.GetPrefixedNamespace("Test", new ODataT4CodeGenerator.ODataClientCSharpTemplate(context), false, false).Should().Be("Test");
 }
 public void GetPrefixedNamespaceShouldReturnFixedOriginalNamespaceWithoutPrefixIfNamespacePrefixIsNullAndNamespaceIsKeyword()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithNamespaceInKeywords, null);
     context.GetPrefixedNamespace("event.string.int", new ODataT4CodeGenerator.ODataClientCSharpTemplate(context), false, false).Should().Be("event.string.int");
 }
Beispiel #35
0
 public void NamespacesInModelShouldContainTwoNamespacesInTwoNamesapceModel()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithDifferentNamespaces, null);
     context.NamespacesInModel.Length.Should().Be(2);
 }
 public void GetPrefixedNamespaceShouldReturnNamespaceWithoutGlobalAttached()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, "Test.Foo");
     context.GetPrefixedNamespace("Test", new ODataT4CodeGenerator.ODataClientCSharpTemplate(context), false, true).Should().Be("global::Test.Foo.Test");
 }
Beispiel #37
0
 public void NamespaceMapShouldNotBeEmptyIfNamespacePrefixIsNotNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, "Foo");
     context.NamespaceMap.Count.Should().BeGreaterThan(0);
 }
 public void GetPrefixedFullNameShouldReturnExpectedFullName()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithEntityHierarchy, null);
     IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Namespace1").ToArray();
     IEdmEntityContainer container = schemaElements.OfType<IEdmEntityContainer>().First();
     context.GetPrefixedFullName(container, container.Name, new ODataT4CodeGenerator.ODataClientCSharpTemplate(context)).Should().Be("global::Namespace1.EntityContainer");
 }
Beispiel #39
0
 public void ModelHasInheritanceShouldBeTrueIfEdmModelHasInheritance()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithEntityHierarchy, null);
     context.ModelHasInheritance.Should().BeTrue();
 }
        public void OnlyEntityContainerShouldCallWriteEntityContainer()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(EmptyEntityContainerEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            template.WriteNamespace("Namespace1");

            List<string> expectedActions = new List<string>
            {
                "WriteNamespaceStart(Namespace1)",
                "WriteClassStartForEntityContainer(EntityContainer, EntityContainer, EntityContainer)",
                "WriteMethodStartForEntityContainerConstructor(EntityContainer, EntityContainer)",
                "WriteClassEndForEntityContainerConstructor()",
                "WriteGeneratedEdmModel(<edmx:Edmx Version=\"\"4.0\"\" xmlns:edmx=\"\"http://docs.oasis-open.org/odata/ns/edmx\"\">\r\n  <edmx:DataServices>\r\n    <Schema Namespace=\"\"Namespace1\"\" xmlns=\"\"http://docs.oasis-open.org/odata/ns/edm\"\">\r\n      <EntityContainer Name=\"\"EntityContainer\"\" />\r\n    </Schema>\r\n  </edmx:DataServices>\r\n</edmx:Edmx>)",
                "WriteClassEndForEntityContainer()",
                "WriteNamespaceEnd()",
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
Beispiel #41
0
 public void NeedResolveNameFromTypeShouldBeTrueIfNamespacePrefixIsNotNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, "Foo");
     context.NeedResolveNameFromType.Should().BeTrue();
 }
        public void WritePrefixConfict()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(PrefixConflictEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmComplexType complexType = Context.GetSchemaElements("Namespace1").OfType<IEdmComplexType>().First();
            template.WritePropertiesForStructuredType(complexType.DeclaredProperties);

            List<string> expectedActions = new List<string>
            {
                "WritePropertyForStructuredType(String, Name, Name, Name, _Name1, , False)",
                "WritePropertyForStructuredType(String, _Name, _Name, _Name, __Name1, , False)",
                "WritePropertyForStructuredType(String, __Name, __Name, __Name, ___Name, , False)"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
Beispiel #43
0
 public void NeedResolveTypeFromNameShouldBeFalseIfNamespacePrefixIsNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     context.NeedResolveNameFromType.Should().BeFalse();
 }
 public void GetSchemaElementsShouldReturnIEdmSchemaElementIfInputNamespaceExistInEdmModel()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Test").ToArray();
     schemaElements.Length.Should().BeGreaterThan(0);
 }
Beispiel #45
0
 public void GetPrefixedNamespaceShouldReturnFixedOriginalNamespaceWithoutPrefixIfNamespacePrefixIsNullAndNamespaceIsKeyword()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithNamespaceInKeywords, null);
     context.GetPrefixedNamespace("event.string.int", new ODataT4CodeGenerator.ODataClientCSharpTemplate(context), false, false).Should().Be("event.string.int");
 }
 public void GetSchemaElementsShouldReturnEmptyIfInputNamespaceNotExistInEdmModel()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxSimple, null);
     IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Foo").ToArray();
     schemaElements.Length.Should().Be(0);
 }
 public void GetPrefixedFullNameShouldReturnFullNameWithPrefixNamespaceIfNamespacePrefixIsNotNull()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithKeyAsSegmentAnnotaion, "Foo");
     IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Namespace1").ToArray();
     IEdmEntityContainer container = schemaElements.OfType<IEdmEntityContainer>().First();
     context.GetPrefixedFullName(container, container.Name, new ODataT4CodeGenerator.ODataClientCSharpTemplate(context)).Should().Be("global::Foo.Namespace1.EntityContainer");
 }
        public void OnlyComplexTypeShouldCallWriteComplexType()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(OneNamespaceAndEmptyComplexTypeEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            template.WriteNamespace("Namespace1");

            List<string> expectedActions = new List<string>
            {
                "WriteNamespaceStart(Namespace1)",
                "WriteSummaryCommentForStructuredType(ComplexType)",
                "WriteClassStartForStructuredType(, ComplexType, ComplexType, )",
                "WriteClassEndForStructuredType()",
                "WriteNamespaceEnd()"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }
 public void NeedToSetKeyAsSegmentShouldBeTureInAnnotaionTargetingNamespaces()
 {
     ODataT4CodeGenerator.CodeGenerationContext context = new ODataT4CodeGenerator.CodeGenerationContext(EdmxWithKeyAsSegmentAnnotaion, null);
     IEdmSchemaElement[] schemaElements = context.GetSchemaElements("Namespace1").ToArray();
     context.UseKeyAsSegmentUrlConvention(schemaElements.OfType<IEdmEntityContainer>().First()).Should().BeTrue();
 }
        public void WriteMembersForEnumTypeWithMembers()
        {
            string namespacePrefix = string.Empty;
            Context = new ODataT4CodeGenerator.CodeGenerationContext(EnumTypeWithMembersEdmx, namespacePrefix);
            ODataClientTemplateImp template = new ODataClientTemplateImp(Context);
            IEdmEnumType enumType = Context.GetSchemaElements("Namespace1").OfType<IEdmEnumType>().First();
            template.WriteMembersForEnumType(enumType.Members);

            List<string> expectedActions = new List<string>
            {
                "WriteMemberForEnumType(Liquid = 0, Liquid, False)",
                "WriteMemberForEnumType(Perishable = 1, Perishable, True)"
            };
            template.CalledActions.Should().Equal(expectedActions);
        }