public void CompileObjectMemberExpression() { var fixture = new Fixture() { x = 12, y = "aaa", a = "x", c = () => "string" }; Assert.Equal(fixture.a, "this.a".Compile().EvaluateAs <string>(fixture)); Assert.Equal(fixture.a, "this[thisIsA]".Compile(ParseOption.CreateOption() .AddLiteralValue("thisIsA", "a") .AsReadOnly() ).EvaluateAs <string>(fixture)); Assert.Equal("aa", "this.a()".Compile().EvaluateAs <string>(new Fixture { a = new Func <string>(() => "aa") })); Assert.Equal("aa", "this.D()".Compile().EvaluateAs <string>(new Fixture { D = new Func <string>(() => "aa") })); Assert.Equal("12122", "this.D".Compile().EvaluateAs <string>(new Fixture { D = "12122" })); Assert.Equal(fixture.ToString(), "this.ToString()".Compile().EvaluateAs <string>(fixture)); Assert.Equal(fixture.c(), "this.c()".Compile().EvaluateAs <string>(fixture)); Assert.Equal(fixture.ToString(), "this.ToString()".Compile().EvaluateAsType(fixture, typeof(string))); Assert.Throws <ParseException>(() => "ToString()".Compile().Evaluate(fixture)); Assert.Equal(3, "this.lengthOf('abc')".Compile().Evaluate(new { lengthOf = new Func <string, int>(s => s.Length) })); Assert.Equal(fixture.GetString("abc"), "this.GetString('abc')".Compile().Evaluate(fixture)); Assert.Equal(fixture.Add(12), "this.Add(12)".Compile().Evaluate(fixture)); Assert.Equal(fixture.Add(12), "a.Add(12)".Compile().Evaluate(new { a = fixture })); Assert.Equal("1111", "this.f[0]()".Compile().Evaluate(new { f = new object[] { new Func <string>(() => "1111") } })); Assert.Equal(6, "('abc'+d).Length".Compile().Evaluate(new { d = "efg" })); }
public void CompileObjectMemberExpression() { Assert.Throws <ArgumentNullException>(() => Core.Compiler.Default.Compile <Fixture>(null)); var cachedEvaluator = "3*'abc'".Compile <Fixture>(); Assert.Equal("abcabcabc", cachedEvaluator.EvaluateAs <Fixture, string>(null)); Assert.Equal("abcabcabc", cachedEvaluator.EvaluateAs <Fixture, string>(null)); var fixture = new Fixture() { x = 12, y = "aaa", a = "x", c = () => "string" }; Assert.Equal(3, "abc".Compile <IndexerObject>().EvaluateAs <IndexerObject, int>(new IndexerObject())); Assert.Equal(fixture.a, "this.a".Compile <Fixture>().EvaluateAs <Fixture, string>(fixture)); Assert.Equal(fixture.a, "this[thisIsA]".Compile <Fixture>( ParseOption.CreateOption() .AddLiteralValue("thisIsA", "a") .AsReadOnly() ).EvaluateAs <Fixture, string>(fixture)); Assert.Equal("aa", "this.a()".Compile <Fixture>().EvaluateAs <Fixture, string>(new Fixture { a = new Func <string>(() => "aa") })); Assert.Equal("aa", "this.D()".Compile <Fixture>().EvaluateAs <Fixture, string>(new Fixture { D = new Func <string>(() => "aa") })); Assert.Equal("12122", "this.D".Compile <Fixture>().EvaluateAs <Fixture, string>(new Fixture { D = "12122" })); Assert.Equal("12122", "D".Compile <Fixture>().EvaluateAs <Fixture, string>(new Fixture { D = "12122" })); Assert.Equal(12122, "E".Compile <Fixture>().EvaluateAs <Fixture, int>(new Fixture { E = 12122 })); Assert.Equal("this is a value", "a".Compile <Fixture>().EvaluateAs <Fixture, string>(new Fixture { a = "this is a value" })); Assert.Equal(123456, "x".Compile <Fixture>().EvaluateAs <Fixture, int>(new Fixture { x = 123456 })); Assert.Equal(fixture.ToString(), "this.ToString()".Compile <Fixture>().EvaluateAs <Fixture, string>(fixture)); Assert.Equal(fixture.c(), "this.c()".Compile <Fixture>().EvaluateAs <Fixture, string>(fixture)); Assert.Equal(fixture.c(), "this.c()".Compile <Fixture>(Core.Parser.Default).EvaluateAs <Fixture, string>(fixture)); Assert.Equal(fixture.ToString(), "this.ToString()".Compile <Fixture>().EvaluateAsType(fixture, typeof(string))); Assert.Equal(fixture.GetString("abc"), "this.GetString('abc')".Compile <Fixture>().Evaluate(fixture)); Assert.Equal(fixture.Add(12), "this.Add(12)".Compile <Fixture>().Evaluate(fixture)); Assert.Equal(fixture.Add(12).ToString(), "this.Add(12)".Compile <Fixture>().EvaluateAs <Fixture, string>(fixture)); Assert.Null("this.DoSomething()".Compile <Fixture>().Evaluate(fixture)); Assert.Throws <MemberNotFoundException>(() => "Y".Compile <Fixture>().Evaluate(fixture)); Assert.Throws <MemberNotFoundException>(() => "this.Y".Compile <Fixture>().Evaluate(fixture)); }
public void WriteMappingFragment_should_write_store_entity_set_name() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageEntitySetMapping = new EntitySetMapping( entitySet, new EntityContainerMapping(entityContainer)); TypeMapping typeMapping = new EntityTypeMapping(storageEntitySetMapping); var mappingFragment = new MappingFragment(entitySet, typeMapping, false); fixture.Writer.WriteMappingFragmentElement(mappingFragment); Assert.Equal( @"<MappingFragment StoreEntitySet=""ES"" />", fixture.ToString()); }
public void WriteFunctionElementHeader_should_write_return_type_attribute_for_primitive_return_type() { var fixture = new Fixture(); var function = new EdmFunction( "Foo", "Bar", DataSpace.SSpace, new EdmFunctionPayload { Schema = "dbo", ReturnParameters = new[] { new FunctionParameter( "r", TypeUsage.CreateDefaultTypeUsage( PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.ReturnValue) } }); fixture.Writer.WriteFunctionElementHeader(function); Assert.Equal( "<Function Name=\"Foo\" Aggregate=\"false\" BuiltIn=\"false\" NiladicFunction=\"false\" IsComposable=\"true\" ParameterTypeSemantics=\"AllowImplicitConversion\" Schema=\"dbo\" ReturnType=\"Int32\"", fixture.ToString()); }
public void WriteFunctionImportHeader_writes_element_and_attributes() { var fixture = new Fixture(); var complexType = new ComplexType("CT", "N", DataSpace.CSpace); var returnParameter = new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(complexType.GetCollectionType()), ParameterMode.ReturnValue); var functionPayload = new EdmFunctionPayload { IsComposable = true, ReturnParameters = new[] { returnParameter }, }; var functionImport = new EdmFunction("foo", "nction", DataSpace.CSpace, functionPayload); fixture.Writer.WriteFunctionImportElementHeader(functionImport); Assert.Equal( "<FunctionImport Name=\"foo\" ReturnType=\"Collection(N.CT)\" IsComposable=\"true\"", fixture.ToString()); }
public void WriteFunctionElementHeader_should_not_write_return_type_attribute_for_non_primitive_return_type() { var fixture = new Fixture(); var returnParameterType = TypeUsage.CreateDefaultTypeUsage(new RowType()); var function = new EdmFunction( "Foo", "Bar", DataSpace.SSpace, new EdmFunctionPayload { Schema = "dbo", ReturnParameters = new[] { new FunctionParameter( "r", returnParameterType, ParameterMode.ReturnValue) } }); fixture.Writer.WriteFunctionElementHeader(function); Assert.Equal( "<Function Name=\"Foo\" Aggregate=\"false\" BuiltIn=\"false\" NiladicFunction=\"false\" IsComposable=\"true\" ParameterTypeSemantics=\"AllowImplicitConversion\" Schema=\"dbo\"", fixture.ToString()); }
public void WriteFunctionImportHeader_IsComposable_attribute_if_it_is_false() { var fixture = new Fixture(); var returnParameter = new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.ReturnValue); var functionPayload = new EdmFunctionPayload { IsComposable = false, ReturnParameters = new[] { returnParameter }, }; var functionImport = new EdmFunction("foo", "nction", DataSpace.CSpace, functionPayload); fixture.Writer.WriteFunctionImportElementHeader(functionImport); Assert.Equal( "<FunctionImport Name=\"foo\" ReturnType=\"Int32\"", fixture.ToString()); }
public void WriteMappingFragment_should_write_store_entity_set_name() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageEntitySetMapping = new StorageEntitySetMapping( entitySet, new StorageEntityContainerMapping(entityContainer)); StorageTypeMapping typeMapping = new StorageEntityTypeMapping(storageEntitySetMapping); var mappingFragment = new StorageMappingFragment(entitySet, typeMapping, false); fixture.Writer.WriteMappingFragmentElement(mappingFragment); Assert.Equal( @"<MappingFragment StoreEntitySet=""ES"" />", fixture.ToString()); }
public void WriteRowTypeElementHeader_writes_header() { var fixture = new Fixture(); fixture.Writer.WriteRowTypeElementHeader(); Assert.Equal("<RowType", fixture.ToString()); }
public void WriteSchemaElementHeader_writes_annotation_prefix_for_UseStrongSpatialTypes_attribute() { var fixture = new Fixture(); fixture.Writer.WriteSchemaElementHeader("test"); Assert.Equal(@"<Schema Namespace=""test"" Alias=""Self"" annotation:UseStrongSpatialTypes=""false"" xmlns:annotation=""http://schemas.microsoft.com/ado/2009/02/edm/annotation""", fixture.ToString()); }
public void WriteSchemaElementHeader_does_not_write_StoreSchemaGen_namespace_declaration_if_not_requested() { var fixture = new Fixture(2.0); fixture.Writer.WriteSchemaElementHeader("Room.Store", "fakeProvider", "42", false); Assert.Equal(@"<Schema Namespace=""Room.Store"" Provider=""fakeProvider"" ProviderManifestToken=""42"" Alias=""Self"" xmlns:customannotation=""http://schemas.microsoft.com/ado/2013/11/edm/customannotation""", fixture.ToString()); }
public void WriteSchemaElementHeader_writes_annotation_namespace_declaration_if_UseStrongSpatialTypes_not_present() { var fixture = new Fixture(2.0); fixture.Writer.WriteSchemaElementHeader("test"); Assert.Equal(@"<Schema Namespace=""test"" Alias=""Self"" xmlns:annotation=""http://schemas.microsoft.com/ado/2009/02/edm/annotation""", fixture.ToString()); }
public void WriteFunctionImportMappingElement_does_not_write_result_mapping_when_result_mapped_to_primitive_type() { var typeUsage = TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); var functionImport = new EdmFunction( "f_c", "Ns", DataSpace.CSpace, new EdmFunctionPayload { IsComposable = true, IsFunctionImport = true, ReturnParameters = new[] { new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(typeUsage.EdmType.GetCollectionType()), ParameterMode.ReturnValue) }, }); var rowTypeProperty = new EdmProperty("RTProperty1", ProviderRegistry.Sql2008_ProviderManifest.GetStoreType(typeUsage)); var rowType = new RowType(new[] { rowTypeProperty }); var storeFunction = new EdmFunction( "f_s", "Ns.Store", DataSpace.SSpace, new EdmFunctionPayload { ReturnParameters = new[] { new FunctionParameter( "Return", TypeUsage.CreateDefaultTypeUsage(rowType.GetCollectionType()), ParameterMode.ReturnValue) }, }); var functionImportMapping = new FunctionImportMappingComposable( functionImport, storeFunction, new FunctionImportResultMapping(), new EntityContainerMapping(new EntityContainer("C", DataSpace.SSpace))); var fixture = new Fixture(); fixture.Writer.WriteFunctionImportMappingElement(functionImportMapping); Assert.Equal( @"<FunctionImportMapping FunctionName=""Ns.Store.f_s"" FunctionImportName=""f_c"" />", fixture.ToString()); }
public void WriteFunctionMapping_should_write_simple_parameter_and_result_bindings_and_rows_affected_parameter() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var property = new EdmProperty("M"); var typeUsage = TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); var storageModificationFunctionMapping = new StorageModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new StorageModificationFunctionParameterBinding( new FunctionParameter( "P", typeUsage, ParameterMode.In), new StorageModificationFunctionMemberPath( new[] { property }, null), true), new StorageModificationFunctionParameterBinding( new FunctionParameter( "P_Original", typeUsage, ParameterMode.In), new StorageModificationFunctionMemberPath( new[] { property }, null), false) }, new FunctionParameter("RowsAffected", typeUsage, ParameterMode.Out), new[] { new StorageModificationFunctionResultBinding("C", property) }); fixture.Writer.WriteFunctionMapping("InsertFunction", storageModificationFunctionMapping); Assert.Equal( @"<InsertFunction FunctionName=""N.F"" RowsAffectedParameter=""RowsAffected""> <ScalarProperty Name=""M"" ParameterName=""P"" Version=""Current"" /> <ScalarProperty Name=""M"" ParameterName=""P_Original"" Version=""Original"" /> <ResultBinding Name=""M"" ColumnName=""C"" /> </InsertFunction>", fixture.ToString()); }
public void Should_Return_Formatted_String() { // Arrange var sut = new Fixture().Create <Rover>(); // Act var result = sut.ToString(); // Assert result.Should().Be($"{sut.PosX}, {sut.PosY}, {Enum.GetName(typeof(Bearing), sut.Bearing)}"); }
public void ConvertToOrDefault_WhenItIsAbleToConvert_ShouldConvertToTheTypeDefault <T>() { // Arrange T expected = new Fixture().Create <T>(); string predicate = expected.ToString(); // Act var result = predicate.ConvertToOrDefault <T>(); // Assert Assert.That(result, Is.EqualTo(expected)); }
public void GetFromObjectMethod() { object state = "this is a string"; Assert.Throws <System.Reflection.AmbiguousMatchException>(() => ObjectMemberEvaluator.Evaluate(state, "ToString", false)); var fixture = new Fixture() { x = 12, y = "aaa" }; var toString = ObjectMemberEvaluator.Evaluate(fixture, "ToString", false) as Func <object[], object>; Assert.NotNull(toString); Assert.Equal(fixture.ToString(), toString(null)); var getString = ObjectMemberEvaluator.Evaluate(fixture, "GetString", false) as Func <object[], object>; Assert.NotNull(getString); Assert.Equal(fixture.GetString("demo"), getString(new object[] { "demo" })); var add = ObjectMemberEvaluator.Evaluate(fixture, "Add", false) as Func <object[], object>; Assert.NotNull(add); Assert.Equal(fixture.Add(13), add(new object[] { 13 })); fixture.DoSomething(); Assert.Equal("function called", fixture.y); fixture.y = "function not call"; Assert.Equal("function not call", fixture.y); var watch = Stopwatch.StartNew(); watch.Start(); var doSomething = ObjectMemberEvaluator.Evaluate(fixture, "DoSomething", false) as Func <object[], object>; watch.Stop(); var elapsedTicks = watch.ElapsedTicks; Assert.NotNull(doSomething); doSomething(null); Assert.Equal("function called", fixture.y); fixture.y = "function not call"; watch.Restart(); var doSomethingAgain = ObjectMemberEvaluator.Evaluate(fixture, "DoSomething", false) as Func <object[], object>; watch.Stop(); Assert.True(watch.ElapsedTicks < elapsedTicks); Assert.NotNull(doSomethingAgain); doSomethingAgain(null); Assert.Equal("function called", fixture.y); Assert.Equal("Not found member(abc) in (Fixture)", Assert.Throws <MemberNotFoundException>(() => ObjectMemberEvaluator.Evaluate(fixture, "abc", false)).Message); }
public void WriteFunctionMapping_should_write_association_end_bindings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)); var associationEndMember1 = new AssociationEndMember("Source", new EntityType("E", "N", DataSpace.CSpace)); associationSet.AddAssociationSetEnd(new AssociationSetEnd(entitySet, associationSet, associationEndMember1)); var associationEndMember2 = new AssociationEndMember("Target", new EntityType("E", "N", DataSpace.CSpace)); associationSet.AddAssociationSetEnd(new AssociationSetEnd(entitySet, associationSet, associationEndMember2)); var storageModificationFunctionMapping = new StorageModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new StorageModificationFunctionParameterBinding( new FunctionParameter( "P", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.In), new StorageModificationFunctionMemberPath( new EdmMember[] { new EdmProperty("K"), associationEndMember1 }, associationSet), true) }, null, null); fixture.Writer.WriteFunctionMapping("InsertFunction", storageModificationFunctionMapping); Assert.Equal( @"<InsertFunction FunctionName=""N.F""> <AssociationEnd AssociationSet=""AS"" From=""Source"" To=""Target""> <ScalarProperty Name=""K"" ParameterName=""P"" Version=""Current"" /> </AssociationEnd> </InsertFunction>", fixture.ToString()); }
public void ShouldCaptureToFile() { driver.Get("/elements.html"); var imgname = string.Format("wd-capt-{0}-{1}.png" , Fixture.ToString().ToLower() , DateTime.Now.Ticks.ToString()); driver.TakeScreenshot().SaveAs(@"%temp%\" + imgname); var file = new FileInfo(Environment.ExpandEnvironmentVariables(@"%temp%\" + imgname)); A.Greater(file.Length, 10000); file.Delete(); }
public void ToDomain_ShouldMapDefaultPositionObjectValuesGivenValidInput(string x, string y) { var expectedOrientation = new Fixture().Create <Orientation>(); var input = new List <string> { x, y, expectedOrientation.ToString() }; var result = _mapper.ToDomain(input); result.Should().NotBeNull(); result.X.Should().Be(0); result.Y.Should().Be(0); }
public void WriteFunctionImportReturnTypeAttributes_writes_Type_attribute_for_non_inline_definition() { var fixture = new Fixture(); var returnParameter = new FunctionParameter( "RetValue", TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.ReturnValue); fixture.Writer.WriteFunctionReturnTypeElementHeader(); fixture.Writer.WriteFunctionImportReturnTypeAttributes(returnParameter, null, false); Assert.Equal("<ReturnType Type=\"Int32\"", fixture.ToString()); }
public void ToDomain_ShouldMapPositionObjectGivenValidInput() { var expectedX = new Fixture().Create <int>(); var expectedY = new Fixture().Create <int>(); var expectedOrientation = new Fixture().Create <Orientation>(); var input = new List <string> { expectedX.ToString(), expectedY.ToString(), expectedOrientation.ToString() }; var result = _mapper.ToDomain(input); result.Should().NotBeNull(); result.X.Should().Be(expectedX); result.Y.Should().Be(expectedY); result.Orientation.Should().Be(expectedOrientation); }
public async Task ContinueTrial() { // Arrange var dateTime = new Fixture().Create <DateTime>(); _settingsManager .Setup(x => x.GetObjectSettingAsync(PlatformConstants.Settings.Setup.TrialExpirationDate.Name, null, null)) .ReturnsAsync(new ObjectSettingEntry()); // Act await _controller.ContinueTrial(new TrialProlongation { NextTime = dateTime.ToString() }); // Assert _settingsManager.Verify(x => x.GetObjectSettingAsync(It.Is <string>(x => x.Equals(PlatformConstants.Settings.Setup.TrialExpirationDate.Name)), null, null), Times.Once); _settingsManager.Verify(x => x.SaveObjectSettingsAsync(It.Is <IEnumerable <ObjectSettingEntry> >(x => x.First().Value.ToString().Equals(dateTime.ToString()))), Times.Once); }
public void WriteFunctionImportParameterElement_writes_full_element_with_attributes() { var fixture = new Fixture(); var functionImportParameter = new FunctionParameter( "miles", TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.InOut); fixture.Writer.WriteFunctionImportParameterElementHeader(functionImportParameter); Assert.Equal( "<Parameter Name=\"miles\" Mode=\"InOut\" Type=\"Int32\"", fixture.ToString()); }
public void WriteFunctionParameterHeader_should_write_element_and_attributes() { var fixture = new Fixture(); var typeUsage = TypeUsage.Create( PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String), new FacetValues { MaxLength = 123 }); var functionParameter = new FunctionParameter( "Foo", typeUsage, ParameterMode.In); fixture.Writer.WriteFunctionParameterHeader(functionParameter); Assert.Equal( "<Parameter Name=\"Foo\" Type=\"String\" Mode=\"In\" MaxLength=\"123\"", fixture.ToString()); fixture = new Fixture(); typeUsage = TypeUsage.Create( PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Decimal), new FacetValues { Precision = (byte?)4, Scale = (byte?)8 }); functionParameter = new FunctionParameter( "Foo", typeUsage, ParameterMode.In); fixture.Writer.WriteFunctionParameterHeader(functionParameter); Assert.Equal( "<Parameter Name=\"Foo\" Type=\"Decimal\" Mode=\"In\" Precision=\"4\" Scale=\"8\"", fixture.ToString()); }
public void WriteFunctionMapping_should_write_complex_parameter_bindings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var storageModificationFunctionMapping = new StorageModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new StorageModificationFunctionParameterBinding( new FunctionParameter( "P", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.In), new StorageModificationFunctionMemberPath( new[] { EdmProperty.Complex("C1", new ComplexType()), EdmProperty.Complex("C2", new ComplexType()), new EdmProperty("M") }, null), true) }, null, null); fixture.Writer.WriteFunctionMapping("InsertFunction", storageModificationFunctionMapping); Assert.Equal( @"<InsertFunction FunctionName=""N.F""> <ComplexProperty Name=""C1"" TypeName="".""> <ComplexProperty Name=""C2"" TypeName="".""> <ScalarProperty Name=""M"" ParameterName=""P"" Version=""Current"" /> </ComplexProperty> </ComplexProperty> </InsertFunction>", fixture.ToString()); }
public void WriteFunctionImportReturnTypeAttributes_writes_EntitySet_attribute() { var fixture = new Fixture(); var returnParameter = new FunctionParameter( "RetValue", TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.ReturnValue); fixture.Writer.WriteFunctionReturnTypeElementHeader(); fixture.Writer.WriteFunctionImportReturnTypeAttributes(returnParameter, new EntitySet { Name = "ES" }, false); Assert.Equal("<ReturnType Type=\"Int32\" EntitySet=\"ES\"", fixture.ToString()); }
public void WriteEntitySetMappingElement_should_write_modification_function_mappings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageEntitySetMapping = new EntitySetMapping( entitySet, new EntityContainerMapping(entityContainer)); var storageModificationFunctionMapping = new ModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), Enumerable.Empty<ModificationFunctionParameterBinding>(), null, null); storageEntitySetMapping.AddModificationFunctionMapping( new EntityTypeModificationFunctionMapping( entityType, storageModificationFunctionMapping, storageModificationFunctionMapping, storageModificationFunctionMapping)); fixture.Writer.WriteEntitySetMappingElement(storageEntitySetMapping); Assert.Equal( @"<EntitySetMapping Name=""ES""> <EntityTypeMapping TypeName="".E""> <ModificationFunctionMapping> <InsertFunction FunctionName=""N.F"" /> <UpdateFunction FunctionName=""N.F"" /> <DeleteFunction FunctionName=""N.F"" /> </ModificationFunctionMapping> </EntityTypeMapping> </EntitySetMapping>", fixture.ToString()); }
public void WriteEntitySetMappingElement_should_write_modification_function_mappings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageEntitySetMapping = new StorageEntitySetMapping( entitySet, new StorageEntityContainerMapping(entityContainer)); var storageModificationFunctionMapping = new StorageModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), Enumerable.Empty <StorageModificationFunctionParameterBinding>(), null, null); storageEntitySetMapping.AddModificationFunctionMapping( new StorageEntityTypeModificationFunctionMapping( entityType, storageModificationFunctionMapping, storageModificationFunctionMapping, storageModificationFunctionMapping)); fixture.Writer.WriteEntitySetMappingElement(storageEntitySetMapping); Assert.Equal( @"<EntitySetMapping Name=""ES""> <EntityTypeMapping TypeName="".E""> <ModificationFunctionMapping> <InsertFunction FunctionName=""N.F"" /> <UpdateFunction FunctionName=""N.F"" /> <DeleteFunction FunctionName=""N.F"" /> </ModificationFunctionMapping> </EntityTypeMapping> </EntitySetMapping>", fixture.ToString()); }
public void WriteExtendedProperties_writes_annotations_on_properties() { var annotation = MetadataProperty.CreateAnnotation(XmlConstants.CustomAnnotationPrefix + "Foo", "Goo"); var mockProperty = new Mock <MetadataProperty>(); mockProperty.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection <MetadataProperty>(new List <MetadataProperty>() { annotation })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.Property); fixture.Writer.WriteExtendedProperties(mockProperty.Object); Assert.Equal(@"<Property p1:Foo=""Goo""", fixture.ToString()); }
public void WriteExtendedProperties_does_not_write_store_generated_annotations() { var annotation = MetadataProperty.CreateAnnotation(XmlConstants.StoreGeneratedPatternAnnotation, "Identity"); var mockProperty = new Mock <MetadataProperty>(); mockProperty.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection <MetadataProperty>(new List <MetadataProperty>() { annotation })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.Property); fixture.Writer.WriteExtendedProperties(mockProperty.Object); Assert.Equal(@"<Property", fixture.ToString()); }
public void WriteFunctionElementHeader_should_write_element_and_attributes() { var fixture = new Fixture(); var function = new EdmFunction( "Foo", "Bar", DataSpace.SSpace, new EdmFunctionPayload { Schema = "dbo" }); fixture.Writer.WriteFunctionElementHeader(function); Assert.Equal( "<Function Name=\"Foo\" Aggregate=\"false\" BuiltIn=\"false\" NiladicFunction=\"false\" IsComposable=\"true\" ParameterTypeSemantics=\"AllowImplicitConversion\" Schema=\"dbo\"", fixture.ToString()); }
public void WriteExtendedProperties_does_not_write_annotations_that_do_not_have_a_name_containing_a_colon() { var property = MetadataProperty.CreateAnnotation("Foo", "true"); var mockEntityType = new Mock <EntityType>("E", "ns", DataSpace.CSpace); mockEntityType.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection <MetadataProperty>(new List <MetadataProperty>() { property })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.EntityType); fixture.Writer.WriteExtendedProperties(mockEntityType.Object); Assert.Equal(@"<EntityType", fixture.ToString()); }
public void WriteFunctionImportMappingElement_writes_result_mapping_for_non_composable_functions_mapped_explicitly_to_EntityType() { var typeUsage = TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); var entityTypeProperty1 = new EdmProperty("ETProperty1", typeUsage); var entityTypeProperty2 = new EdmProperty("ETProperty2", typeUsage); var entityType = new EntityType("ET", "Ns", DataSpace.CSpace); entityType.AddMember(entityTypeProperty1); entityType.AddMember(entityTypeProperty2); var functionImport = new EdmFunction( "f_c", "Ns", DataSpace.CSpace, new EdmFunctionPayload { IsComposable = false, IsFunctionImport = true, ReturnParameters = new[] { new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(entityType.GetCollectionType()), ParameterMode.ReturnValue) }, }); typeUsage = ProviderRegistry.Sql2008_ProviderManifest.GetStoreType(typeUsage); var rowTypeProperty1 = new EdmProperty("RTProperty1", typeUsage); var rowTypeProperty2 = new EdmProperty("RTProperty2", typeUsage); var rowType = new RowType(new[] { rowTypeProperty1, rowTypeProperty2 }); var storeFunction = new EdmFunction( "f_s", "Ns.Store", DataSpace.SSpace, new EdmFunctionPayload { IsComposable = false, ReturnParameters = new[] { new FunctionParameter( "Return", TypeUsage.CreateDefaultTypeUsage(rowType), ParameterMode.ReturnValue) }, }); var functionImportResultMapping = new FunctionImportResultMapping(); functionImportResultMapping.AddTypeMapping( new FunctionImportEntityTypeMapping( new EntityType[0], new [] { entityType }, new Collections.ObjectModel.Collection<FunctionImportReturnTypePropertyMapping>() { new FunctionImportReturnTypeScalarPropertyMapping("ETProperty1", "RTProperty1"), new FunctionImportReturnTypeScalarPropertyMapping("ETProperty2", "RTProperty2") }, new FunctionImportEntityTypeMappingCondition[] { new FunctionImportEntityTypeMappingConditionIsNull("RTProperty1", false), new FunctionImportEntityTypeMappingConditionValue("RTProperty2", 4), new FunctionImportEntityTypeMappingConditionValue("FakeCondition", true) } )); var mappingItemCollection = new StorageMappingItemCollection( new EdmItemCollection(EdmModel.CreateConceptualModel()), new StoreItemCollection( EdmModel.CreateStoreModel(ProviderRegistry.Sql2008_ProviderInfo, ProviderRegistry.Sql2008_ProviderManifest)), new string[0]); var containerMapping = new EntityContainerMapping( new EntityContainer("C", DataSpace.CSpace), new EntityContainer("S", DataSpace.SSpace), mappingItemCollection, false); var functionImportMapping = new FunctionImportMappingNonComposable( functionImport, storeFunction, new [] { functionImportResultMapping }, containerMapping); containerMapping.AddFunctionImportMapping(functionImportMapping); var fixture = new Fixture(); fixture.Writer.WriteFunctionImportMappingElement(functionImportMapping); Assert.Equal( @"<FunctionImportMapping FunctionName=""Ns.Store.f_s"" FunctionImportName=""f_c""> <ResultMapping> <EntityTypeMapping TypeName=""Ns.ET""> <ScalarProperty Name=""ETProperty1"" ColumnName=""RTProperty1"" /> <ScalarProperty Name=""ETProperty2"" ColumnName=""RTProperty2"" /> <Condition ColumnName=""RTProperty1"" IsNull=""false"" /> <Condition ColumnName=""RTProperty2"" Value=""4"" /> <Condition ColumnName=""FakeCondition"" Value=""1"" /> </EntityTypeMapping> </ResultMapping> </FunctionImportMapping>", fixture.ToString()); }
public void WriteExtendedProperties_does_not_write_store_generated_annotations() { var annotation = MetadataProperty.CreateAnnotation(XmlConstants.StoreGeneratedPatternAnnotation, "Identity"); var mockProperty = new Mock<MetadataProperty>(); mockProperty.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection<MetadataProperty>(new List<MetadataProperty>() { annotation })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.Property); fixture.Writer.WriteExtendedProperties(mockProperty.Object); Assert.Equal(@"<Property", fixture.ToString()); }
public void WriteExtendedProperties_writes_annotations_on_properties() { var annotation = MetadataProperty.CreateAnnotation(XmlConstants.CustomAnnotationPrefix + "Foo", "Goo"); var mockProperty = new Mock<MetadataProperty>(); mockProperty.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection<MetadataProperty>(new List<MetadataProperty>() { annotation })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.Property); fixture.Writer.WriteExtendedProperties(mockProperty.Object); Assert.Equal(@"<Property p1:Foo=""Goo""", fixture.ToString()); }
public void WriteExtendedProperties_does_not_write_annotations_that_do_not_have_a_name_containing_a_colon() { var property = MetadataProperty.CreateAnnotation("Foo", "true"); var mockEntityType = new Mock<EntityType>("E", "ns", DataSpace.CSpace); mockEntityType.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection<MetadataProperty>(new List<MetadataProperty>() { property })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.EntityType); fixture.Writer.WriteExtendedProperties(mockEntityType.Object); Assert.Equal(@"<EntityType", fixture.ToString()); }
public void WriteExtendedProperties_writes_annotations_using_ToString_if_serializer_not_available() { var property = MetadataProperty.CreateAnnotation(XmlConstants.UseClrTypesAnnotationWithPrefix, "true"); var mockEntityType = new Mock<EntityType>("E", "ns", DataSpace.CSpace); mockEntityType.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection<MetadataProperty>(new List<MetadataProperty>() { property })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.EntityType); fixture.Writer.WriteExtendedProperties(mockEntityType.Object); Assert.Equal(@"<EntityType p1:UseClrTypes=""true""", fixture.ToString()); }
public void WriteFunctionImportHeader_writes_element_and_attributes() { var fixture = new Fixture(); var complexType = new ComplexType("CT", "N", DataSpace.CSpace); var returnParameter = new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(complexType.GetCollectionType()), ParameterMode.ReturnValue); var functionPayload = new EdmFunctionPayload { IsComposable = true, ReturnParameters = new[] { returnParameter }, }; var functionImport = new EdmFunction("foo", "nction", DataSpace.CSpace, functionPayload); fixture.Writer.WriteFunctionImportElementHeader(functionImport); Assert.Equal( "<FunctionImport Name=\"foo\" IsComposable=\"true\"", fixture.ToString()); }
public void WriteFunctionMapping_should_write_simple_parameter_and_result_bindings_and_rows_affected_parameter() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var property = new EdmProperty("M"); var typeUsage = TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); var storageModificationFunctionMapping = new ModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new ModificationFunctionParameterBinding( new FunctionParameter( "P", typeUsage, ParameterMode.In), new ModificationFunctionMemberPath( new[] { property }, null), true), new ModificationFunctionParameterBinding( new FunctionParameter( "P_Original", typeUsage, ParameterMode.In), new ModificationFunctionMemberPath( new[] { property }, null), false) }, new FunctionParameter("RowsAffected", typeUsage, ParameterMode.Out), new[] { new ModificationFunctionResultBinding("C", property) }); fixture.Writer.WriteFunctionMapping("InsertFunction", storageModificationFunctionMapping); Assert.Equal( @"<InsertFunction FunctionName=""N.F"" RowsAffectedParameter=""RowsAffected""> <ScalarProperty Name=""M"" ParameterName=""P"" Version=""Current"" /> <ScalarProperty Name=""M"" ParameterName=""P_Original"" Version=""Original"" /> <ResultBinding Name=""M"" ColumnName=""C"" /> </InsertFunction>", fixture.ToString()); }
public void WriteFunctionMapping_should_write_complex_parameter_bindings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var storageModificationFunctionMapping = new ModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new ModificationFunctionParameterBinding( new FunctionParameter( "P", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.In), new ModificationFunctionMemberPath( new[] { EdmProperty.CreateComplex("C1", new ComplexType()), EdmProperty.CreateComplex("C2", new ComplexType()), new EdmProperty("M") }, null), true) }, null, null); fixture.Writer.WriteFunctionMapping("InsertFunction", storageModificationFunctionMapping); Assert.Equal( @"<InsertFunction FunctionName=""N.F""> <ComplexProperty Name=""C1"" TypeName="".""> <ComplexProperty Name=""C2"" TypeName="".""> <ScalarProperty Name=""M"" ParameterName=""P"" Version=""Current"" /> </ComplexProperty> </ComplexProperty> </InsertFunction>", fixture.ToString()); }
public void WriteFunctionImportMappingElement_does_not_write_result_mapping_for_non_composable_functions_mapped_implicitly() { var typeUsage = TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); var complexTypeProperty1 = new EdmProperty("CTProperty1", typeUsage); var complexTypeProperty2 = new EdmProperty("CTProperty2", typeUsage); var complexType = new ComplexType("CT", "Ns", DataSpace.CSpace); complexType.AddMember(complexTypeProperty1); complexType.AddMember(complexTypeProperty2); var functionImport = new EdmFunction( "f_c", "Ns", DataSpace.CSpace, new EdmFunctionPayload { IsComposable = false, IsFunctionImport = true, ReturnParameters = new[] { new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(complexType.GetCollectionType()), ParameterMode.ReturnValue) }, }); typeUsage = ProviderRegistry.Sql2008_ProviderManifest.GetStoreType(typeUsage); var rowTypeProperty1 = new EdmProperty("RTProperty1", typeUsage); var rowTypeProperty2 = new EdmProperty("RTProperty2", typeUsage); var rowType = new RowType(new[] { rowTypeProperty1, rowTypeProperty2 }); var storeFunction = new EdmFunction( "f_s", "Ns.Store", DataSpace.SSpace, new EdmFunctionPayload { IsComposable = false, ReturnParameters = new[] { new FunctionParameter( "Return", TypeUsage.CreateDefaultTypeUsage(rowType), ParameterMode.ReturnValue) }, }); var functionImportMapping = new FunctionImportMappingNonComposable( functionImport, storeFunction, new FunctionImportResultMapping[0], new EntityContainerMapping(new EntityContainer("C", DataSpace.SSpace))); var fixture = new Fixture(); fixture.Writer.WriteFunctionImportMappingElement(functionImportMapping); Assert.Equal( @"<FunctionImportMapping FunctionName=""Ns.Store.f_s"" FunctionImportName=""f_c"" />", fixture.ToString()); }
public void WriteEntityContainerMappingElement_should_write_function_import_elements_mapped_to_EntityType() { var typeUsage = TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); var entityTypeProperty1 = new EdmProperty("ETProperty1", typeUsage); var entityTypeProperty2 = new EdmProperty("ETProperty2", typeUsage); var entityType = new EntityType("ET", "Ns", DataSpace.CSpace); entityType.AddMember(entityTypeProperty1); entityType.AddMember(entityTypeProperty2); var functionImport = new EdmFunction( "f_c", "Ns", DataSpace.CSpace, new EdmFunctionPayload { IsComposable = true, IsFunctionImport = true, ReturnParameters = new[] { new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(entityType.GetCollectionType()), ParameterMode.ReturnValue) }, Parameters = new[] { new FunctionParameter("param", typeUsage, ParameterMode.Out) } }); typeUsage = ProviderRegistry.Sql2008_ProviderManifest.GetStoreType(typeUsage); var rowTypeProperty1 = new EdmProperty("RTProperty1", typeUsage); var rowTypeProperty2 = new EdmProperty("RTProperty2", typeUsage); var rowType = new RowType(new[] { rowTypeProperty1, rowTypeProperty2 }); var storeFunction = new EdmFunction( "f_s", "Ns.Store", DataSpace.SSpace, new EdmFunctionPayload { ReturnParameters = new[] { new FunctionParameter( "Return", TypeUsage.CreateDefaultTypeUsage(rowType), ParameterMode.ReturnValue) }, Parameters = new[] { new FunctionParameter("param", typeUsage, ParameterMode.Out) } }); var structuralTypeMapping = new Tuple<StructuralType, List<ConditionPropertyMapping>, List<PropertyMapping>>( entityType, new List<ConditionPropertyMapping>(), new List<PropertyMapping>()); structuralTypeMapping.Item2.Add(new ConditionPropertyMapping(rowTypeProperty1, null, false)); structuralTypeMapping.Item3.Add(new ScalarPropertyMapping(entityTypeProperty1, rowTypeProperty1)); structuralTypeMapping.Item3.Add(new ScalarPropertyMapping(entityTypeProperty2, rowTypeProperty2)); var functionImportMapping = new FunctionImportMappingComposable( functionImport, storeFunction, new List<Tuple<StructuralType, List<ConditionPropertyMapping>, List<PropertyMapping>>> { structuralTypeMapping }); var containerMapping = new EntityContainerMapping(new EntityContainer("C", DataSpace.SSpace)); containerMapping.AddFunctionImportMapping(functionImportMapping); var fixture = new Fixture(); fixture.Writer.WriteEntityContainerMappingElement(containerMapping); Assert.Equal( @"<EntityContainerMapping StorageEntityContainer="""" CdmEntityContainer=""C""> <FunctionImportMapping FunctionName=""Ns.Store.f_s"" FunctionImportName=""f_c""> <ResultMapping> <EntityTypeMapping TypeName=""Ns.ET""> <Condition IsNull=""false"" ColumnName=""RTProperty1"" /> <ScalarProperty Name=""ETProperty1"" ColumnName=""RTProperty1"" /> <ScalarProperty Name=""ETProperty2"" ColumnName=""RTProperty2"" /> </EntityTypeMapping> </ResultMapping> </FunctionImportMapping> </EntityContainerMapping>", fixture.ToString()); }
public void WriteContainer_writes_annotation_namespace_when_requested() { var container = EntityContainer.Create( "C", DataSpace.CSpace, new EntitySetBase[0], null, new[] { new MetadataProperty( "http://schemas.microsoft.com/ado/2009/02/edm/annotation:LazyLoadingEnabled", TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)), "true") }); var fixture = new Fixture(); // WriteSchemaElementHeader binds the "annotation" namespace prefix to the annotation namespace uri fixture.Writer.WriteSchemaElementHeader("ns"); fixture.Writer.WriteEntityContainerElementHeader(container); Assert.Equal( @"<Schema Namespace=""ns"" Alias=""Self"" annotation:UseStrongSpatialTypes=""false"" xmlns:annotation=""http://schemas.microsoft.com/ado/2009/02/edm/annotation"" xmlns:customannotation=""http://schemas.microsoft.com/ado/2013/11/edm/customannotation"" xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"">" + @"<EntityContainer Name=""C"" annotation:LazyLoadingEnabled=""true""", fixture.ToString()); }
#pragma warning restore 649 public ClassForIndirectReference() { var fixture = new Fixture(); fixture.ToString(); }
public void WriteEnumTypeElementHeader_writes_annotations() { var property = MetadataProperty.CreateAnnotation(XmlConstants.ClrTypeAnnotationWithPrefix, typeof(Random)); var mockEnumType = new Mock<EnumType>(); mockEnumType.Setup(m => m.Name).Returns("E"); mockEnumType.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection<MetadataProperty>(new List<MetadataProperty>() { property })); var fixture = new Fixture(2.0); fixture.Writer.WriteEnumTypeElementHeader(mockEnumType.Object); Assert.Equal( @"<EnumType Name=""E"" IsFlags=""false"" p1:ClrType=""System.Random, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"" UnderlyingType=""Int32""", fixture.ToString()); }
public void WriteExtendedProperties_writes_annotations_using_serializer_to_serialize_if_available() { var property = MetadataProperty.CreateAnnotation(XmlConstants.ClrTypeAnnotationWithPrefix, typeof(Random)); var mockEntityType = new Mock<EntityType>("E", "ns", DataSpace.CSpace); mockEntityType.Setup(m => m.MetadataProperties).Returns( new ReadOnlyMetadataCollection<MetadataProperty>(new List<MetadataProperty>() { property })); var fixture = new Fixture(2.0); fixture.UnderlyingWriter.WriteStartElement(XmlConstants.EntityType); fixture.Writer.WriteExtendedProperties(mockEntityType.Object); Assert.Equal( @"<EntityType p1:ClrType=""System.Random, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089""", fixture.ToString()); }
public void WriteSchemaElementHeader_writes_annotation_prefix_for_UseStrongSpatialTypes_attribute() { var fixture = new Fixture(); fixture.Writer.WriteSchemaElementHeader("test"); Assert.Equal(@"<Schema Namespace=""test"" Alias=""Self"" annotation:UseStrongSpatialTypes=""false"" xmlns:annotation=""http://schemas.microsoft.com/ado/2009/02/edm/annotation"" xmlns:customannotation=""http://schemas.microsoft.com/ado/2013/11/edm/customannotation""", fixture.ToString()); }
public void WriteFunctionMapping_should_write_association_end_bindings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)); var associationEndMember1 = new AssociationEndMember("Source", new EntityType("E", "N", DataSpace.CSpace)); associationSet.AddAssociationSetEnd(new AssociationSetEnd(entitySet, associationSet, associationEndMember1)); var associationEndMember2 = new AssociationEndMember("Target", new EntityType("E", "N", DataSpace.CSpace)); associationSet.AddAssociationSetEnd(new AssociationSetEnd(entitySet, associationSet, associationEndMember2)); var storageModificationFunctionMapping = new ModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new ModificationFunctionParameterBinding( new FunctionParameter( "P", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.In), new ModificationFunctionMemberPath( new EdmMember[] { new EdmProperty("K"), associationEndMember1 }, associationSet), true) }, null, null); fixture.Writer.WriteFunctionMapping("InsertFunction", storageModificationFunctionMapping); Assert.Equal( @"<InsertFunction FunctionName=""N.F""> <AssociationEnd AssociationSet=""AS"" From=""Source"" To=""Target""> <ScalarProperty Name=""K"" ParameterName=""P"" Version=""Current"" /> </AssociationEnd> </InsertFunction>", fixture.ToString()); }
public void WriteSchemaElementHeader_writes_annotation_namespace_declaration_if_UseStrongSpatialTypes_not_present() { var fixture = new Fixture(2.0); fixture.Writer.WriteSchemaElementHeader("test"); Assert.Equal(@"<Schema Namespace=""test"" Alias=""Self"" xmlns:annotation=""http://schemas.microsoft.com/ado/2009/02/edm/annotation"" xmlns:customannotation=""http://schemas.microsoft.com/ado/2013/11/edm/customannotation""", fixture.ToString()); }
public void WriteFunctionImportHeader_writes_IsComposable_attribute_if_it_is_false() { var fixture = new Fixture(); var returnParameter = new FunctionParameter( "ReturnValue", TypeUsage.CreateDefaultTypeUsage(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.ReturnValue); var functionPayload = new EdmFunctionPayload { IsComposable = false, ReturnParameters = new[] { returnParameter }, }; var functionImport = new EdmFunction("foo", "nction", DataSpace.CSpace, functionPayload); fixture.Writer.WriteFunctionImportElementHeader(functionImport); Assert.Equal( "<FunctionImport Name=\"foo\"", fixture.ToString()); }
public void WriteAssociationSetMapping_should_write_modification_function_mapping() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); new EntityContainer("EC", DataSpace.SSpace).AddEntitySetBase(entitySet); var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)); var associationEndMember1 = new AssociationEndMember("Source", new EntityType("E", "N", DataSpace.CSpace)); associationSet.AddAssociationSetEnd(new AssociationSetEnd(entitySet, associationSet, associationEndMember1)); var associationEndMember2 = new AssociationEndMember("Target", new EntityType("E", "N", DataSpace.CSpace)); associationSet.AddAssociationSetEnd(new AssociationSetEnd(entitySet, associationSet, associationEndMember2)); var storageModificationFunctionMapping = new ModificationFunctionMapping( associationSet, associationSet.ElementType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), new[] { new ModificationFunctionParameterBinding( new FunctionParameter( "P", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.In), new ModificationFunctionMemberPath( new EdmMember[] { new EdmProperty("K"), associationEndMember1 }, associationSet), true), new ModificationFunctionParameterBinding( new FunctionParameter( "P", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), ParameterMode.In), new ModificationFunctionMemberPath( new EdmMember[] { new EdmProperty("K"), associationEndMember2 }, associationSet), false) }, null, null); var associationSetMapping = new AssociationSetMapping( associationSet, entitySet) { SourceEndMapping = new EndPropertyMapping { AssociationEnd = associationEndMember1 }, TargetEndMapping = new EndPropertyMapping { AssociationEnd = associationEndMember2 }, ModificationFunctionMapping = new AssociationSetModificationFunctionMapping( associationSet, storageModificationFunctionMapping, storageModificationFunctionMapping) }; fixture.Writer.WriteAssociationSetMappingElement(associationSetMapping); Assert.Equal( @"<AssociationSetMapping Name=""AS"" TypeName="".A"" StoreEntitySet=""E""> <EndProperty Name=""Source"" /> <EndProperty Name=""Target"" /> <ModificationFunctionMapping> <InsertFunction FunctionName=""N.F""> <EndProperty Name=""Source""> <ScalarProperty Name=""K"" ParameterName=""P"" Version=""Current"" /> </EndProperty> <EndProperty Name=""Target""> <ScalarProperty Name=""K"" ParameterName=""P"" Version=""Original"" /> </EndProperty> </InsertFunction> <DeleteFunction FunctionName=""N.F""> <EndProperty Name=""Source""> <ScalarProperty Name=""K"" ParameterName=""P"" Version=""Current"" /> </EndProperty> <EndProperty Name=""Target""> <ScalarProperty Name=""K"" ParameterName=""P"" Version=""Original"" /> </EndProperty> </DeleteFunction> </ModificationFunctionMapping> </AssociationSetMapping>", fixture.ToString()); }