1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
namespace System.Data.Entity.SqlServer.Utilities
{
using System.Data.Entity.Core.Metadata.Edm;
using Moq;
using Xunit;
public class EdmFunctionExtensionsTests
{
[Fact]
public void IsCSpace_returns_false_if_MetadataProperties_contains_no_data_space_property()
{
var mockEdmFunction = new Mock<EdmFunction>();
mockEdmFunction.Setup(m => m.MetadataProperties).Returns(new ReadOnlyMetadataCollection<MetadataProperty>());
Assert.False(mockEdmFunction.Object.IsCSpace());
}
[Fact]
public void IsCSpace_returns_false_if_MetadataProperties_contains_non_c_space_data_space_property()
{
Assert.False(CreateMockEdmFunction(DataSpace.OCSpace, null).Object.IsCSpace());
}
[Fact]
public void IsCSpace_returns_true_if_MetadataProperties_contains_c_space_data_space_property()
{
Assert.True(CreateMockEdmFunction(DataSpace.CSpace, null).Object.IsCSpace());
}
[Fact]
public void IsCanonicalFunction_returns_true_if_function_is_in_c_space_and_has_Edm_namespace()
{
Assert.True(CreateMockEdmFunction(DataSpace.CSpace, "Edm").Object.IsCanonicalFunction());
}
[Fact]
public void IsCanonicalFunction_returns_false_if_function_is_in_c_space_but_not_in_Edm_namespace()
{
Assert.False(CreateMockEdmFunction(DataSpace.CSpace, "Sql").Object.IsCanonicalFunction());
}
[Fact]
public void IsCanonicalFunction_returns_false_if_function_is_in_Edm_namespace_but_not_in_c_space()
{
Assert.False(CreateMockEdmFunction(DataSpace.SSpace, "Edm").Object.IsCanonicalFunction());
}
private static Mock<EdmFunction> CreateMockEdmFunction(DataSpace dataSpace, string namespaceName)
{
var mockProperty = new Mock<MetadataProperty>();
mockProperty.Setup(m => m.Name).Returns("DataSpace");
mockProperty.Setup(m => m.Value).Returns(dataSpace);
var mockEdmFunction = new Mock<EdmFunction>();
mockEdmFunction.Setup(m => m.MetadataProperties).Returns(
new ReadOnlyMetadataCollection<MetadataProperty>(new[] { mockProperty.Object }));
mockEdmFunction.Setup(m => m.NamespaceName).Returns(namespaceName);
return mockEdmFunction;
}
}
}
|