49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
|
||
|
|
||
|
namespace System.Data.Entity.Utilities
|
||
|
{
|
||
|
using System.Linq;
|
||
|
using Xunit;
|
||
|
|
||
|
public class DynamicEqualityComparerLinqIntegrationTests
|
||
|
{
|
||
|
[Fact]
|
||
|
public void Distinct_removes_duplicates_using_provided_equality_function()
|
||
|
{
|
||
|
var values = new[] { "a", "b", "A" };
|
||
|
|
||
|
Assert.True(
|
||
|
new[] { "a", "b" }.SequenceEqual(
|
||
|
values.Distinct((a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase))));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
public void Intersect_returns_intersection_using_provided_equality_function()
|
||
|
{
|
||
|
var setA = new[] { "a", "b" };
|
||
|
var setB = new[] { "A", "C" };
|
||
|
|
||
|
Assert.True(
|
||
|
new[] { "a" }.SequenceEqual(
|
||
|
setA.Intersect(setB, (a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase))));
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
public void GroupBy_groups_items_using_provided_equality_function()
|
||
|
{
|
||
|
var values = new[] { "a", "A" };
|
||
|
|
||
|
Assert.Equal(1, values.GroupBy((a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase)).Count());
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
public void SequenceEqual_compares_items_using_provided_equality_function()
|
||
|
{
|
||
|
var first = new[] { "a", "A" };
|
||
|
var second = new[] { "A", "a" };
|
||
|
|
||
|
Assert.True(first.SequenceEqual(second, (a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase)));
|
||
|
}
|
||
|
}
|
||
|
}
|