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
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
namespace System.Data.Entity.Config
{
using System.Data.Common;
using System.Data.Entity.Resources;
using System.Data.SqlClient;
using Xunit;
public class DefaultProviderFactoryResolverTests
{
[Fact]
public void GetService_returns_null_for_non_DbProviderFactory_types()
{
Assert.Null(new DefaultProviderFactoryResolver().GetService<Random>());
}
[Fact]
public void GetService_throws_for_null_or_incorrect_key_type()
{
Assert.Equal(
Strings.ProviderInvariantNotPassedToResolver,
Assert.Throws<ArgumentException>(
() => new DefaultProviderFactoryResolver().GetService<DbProviderFactory>(null)).Message);
Assert.Equal(
Strings.ProviderInvariantNotPassedToResolver,
Assert.Throws<ArgumentException>(
() => new DefaultProviderFactoryResolver().GetService<DbProviderFactory>("")).Message);
Assert.Equal(
Strings.ProviderInvariantNotPassedToResolver,
Assert.Throws<ArgumentException>(
() => new DefaultProviderFactoryResolver().GetService<DbProviderFactory>(" ")).Message);
Assert.Equal(
Strings.ProviderInvariantNotPassedToResolver,
Assert.Throws<ArgumentException>(
() => new DefaultProviderFactoryResolver().GetService<DbProviderFactory>(new Random())).Message);
}
[Fact]
public void GetService_returns_correct_provider_factory_given_an_invariant_name()
{
Assert.Same(
SqlClientFactory.Instance,
new DefaultProviderFactoryResolver().GetService<DbProviderFactory>("System.Data.SqlClient"));
}
[Fact]
public void GetService_wraps_argument_exception_when_provider_is_not_found()
{
var exception = Assert.Throws<ArgumentException>(
() => new DefaultProviderFactoryResolver().GetService<DbProviderFactory>("Oh.No.Not.Again"));
Assert.Equal(Strings.EntityClient_InvalidStoreProvider, exception.Message);
Assert.NotNull(exception.InnerException);
}
}
}
|