58 lines
1.9 KiB
C#
58 lines
1.9 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.Collections.Generic;
|
|||
|
using System.Data.Common;
|
|||
|
using System.Linq;
|
|||
|
using Xunit;
|
|||
|
|
|||
|
public class ProviderRowFinderTests : TestBase
|
|||
|
{
|
|||
|
[Fact]
|
|||
|
public void FindRow_filters_by_hint_type_when_provided()
|
|||
|
{
|
|||
|
HintTest(typeof(DbContext));
|
|||
|
}
|
|||
|
|
|||
|
[Fact]
|
|||
|
public void FindRow_considers_all_assemblies_when_hint_type_is_null()
|
|||
|
{
|
|||
|
HintTest(null);
|
|||
|
}
|
|||
|
|
|||
|
private static void HintTest(Type hintType)
|
|||
|
{
|
|||
|
var foundRows = new List<DataRow>();
|
|||
|
|
|||
|
new ProviderRowFinder(CreateTestRows())
|
|||
|
.FindRow(
|
|||
|
hintType,
|
|||
|
r =>
|
|||
|
{
|
|||
|
foundRows.Add(r);
|
|||
|
return false;
|
|||
|
});
|
|||
|
|
|||
|
Assert.Equal(hintType == null ? 3 : 1, foundRows.Count);
|
|||
|
Assert.Equal(1, foundRows.Count(r => (string)r["AssemblyQualifiedName"] == typeof(DbContext).AssemblyQualifiedName));
|
|||
|
}
|
|||
|
|
|||
|
[Fact]
|
|||
|
public void FindRow_returns_null_when_no_row_matches()
|
|||
|
{
|
|||
|
Assert.Null(new ProviderRowFinder(CreateTestRows()).FindRow(null, r => false));
|
|||
|
}
|
|||
|
|
|||
|
private static IEnumerable<DataRow> CreateTestRows()
|
|||
|
{
|
|||
|
return new[]
|
|||
|
{
|
|||
|
CreateProviderRow("Row1", "Row.1", typeof(DbConnection).AssemblyQualifiedName),
|
|||
|
CreateProviderRow("Row2", "Row.2", typeof(DbContext).AssemblyQualifiedName),
|
|||
|
CreateProviderRow("Row3", "Row.3", typeof(TestBase).AssemblyQualifiedName),
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
}
|