Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/aspnetwebstack.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'test/System.Web.Http.OData.Test/OData/Builder/EdmTypeConfigurationExtensionsTest.cs')
-rw-r--r--test/System.Web.Http.OData.Test/OData/Builder/EdmTypeConfigurationExtensionsTest.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/System.Web.Http.OData.Test/OData/Builder/EdmTypeConfigurationExtensionsTest.cs b/test/System.Web.Http.OData.Test/OData/Builder/EdmTypeConfigurationExtensionsTest.cs
new file mode 100644
index 00000000..031036a9
--- /dev/null
+++ b/test/System.Web.Http.OData.Test/OData/Builder/EdmTypeConfigurationExtensionsTest.cs
@@ -0,0 +1,40 @@
+// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
+
+using System.Linq;
+using System.Reflection;
+using Microsoft.TestCommon;
+using Moq;
+
+namespace System.Web.Http.OData.Builder
+{
+ public class EdmTypeConfigurationExtensionsTest
+ {
+ [Fact]
+ public void DerivedProperties_ReturnsAllDerivedProperties()
+ {
+ Mock<IEntityTypeConfiguration> entityA = new Mock<IEntityTypeConfiguration>();
+ entityA.Setup(e => e.Properties).Returns(new[] { MockProperty("A1"), MockProperty("A2") });
+
+ Mock<IEntityTypeConfiguration> entityB = new Mock<IEntityTypeConfiguration>();
+ entityB.Setup(e => e.Properties).Returns(new[] { MockProperty("B1"), MockProperty("B2") });
+ entityB.Setup(e => e.BaseType).Returns(entityA.Object);
+
+ Mock<IEntityTypeConfiguration> entityC = new Mock<IEntityTypeConfiguration>();
+ entityC.Setup(e => e.Properties).Returns(new[] { MockProperty("C1"), MockProperty("C2") });
+ entityC.Setup(e => e.BaseType).Returns(entityB.Object);
+
+ Assert.Equal(
+ new[] { "A1", "A2", "B1", "B2" },
+ entityC.Object.DerivedProperties().Select(p => p.Name).OrderBy(s => s));
+ }
+
+ private static PropertyConfiguration MockProperty(string name)
+ {
+ Mock<PropertyInfo> propertyInfo = new Mock<PropertyInfo>();
+ propertyInfo.Setup(p => p.Name).Returns(name);
+
+ Mock<PropertyConfiguration> property = new Mock<PropertyConfiguration>(propertyInfo.Object);
+ return property.Object;
+ }
+ }
+}