85 lines
3.2 KiB
C#
85 lines
3.2 KiB
C#
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.Common;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using SampleEntityFrameworkProvider;
|
|
using Xunit;
|
|
|
|
namespace ProviderTests
|
|
{
|
|
public class ProviderModelTests : TestBase
|
|
{
|
|
[Fact]
|
|
public void Verify_provider_can_be_created_with_factory()
|
|
{
|
|
Assert.NotNull(DbProviderFactories.GetFactory(SampleProviderName));
|
|
}
|
|
|
|
[Fact]
|
|
public void Verify_factory_created_by_provider_factories_and_connection_are_same()
|
|
{
|
|
var providerFactory = DbProviderFactories.GetFactory(SampleProviderName);
|
|
Assert.NotNull(providerFactory);
|
|
Assert.Same(typeof(SampleFactory), providerFactory.GetType());
|
|
|
|
var providerFactoryFromConnection = ((SampleConnection)providerFactory.CreateConnection()).ProviderFactory;
|
|
Assert.Same(providerFactory.GetType(), providerFactoryFromConnection.GetType());
|
|
}
|
|
|
|
[Fact]
|
|
public void Verify_SampleCommand_implements_ICloneable()
|
|
{
|
|
var providerFactory = DbProviderFactories.GetFactory(SampleProviderName);
|
|
Assert.NotNull(providerFactory);
|
|
|
|
var command = providerFactory.CreateCommand();
|
|
|
|
var cloneable = command as ICloneable;
|
|
Assert.NotNull(cloneable);
|
|
|
|
var clonedCommand = cloneable.Clone();
|
|
Assert.NotNull(cloneable);
|
|
}
|
|
|
|
[Fact]
|
|
public void Verify_provider_supports_DbProviderServices()
|
|
{
|
|
var providerFactory = DbProviderFactories.GetFactory(SampleProviderName);
|
|
Assert.NotNull(providerFactory);
|
|
|
|
var serviceprovider = providerFactory as IServiceProvider;
|
|
Assert.NotNull(serviceprovider);
|
|
|
|
Assert.NotNull(serviceprovider.GetService(typeof(DbProviderServices)));
|
|
}
|
|
|
|
[Fact]
|
|
public void Verify_provider_services_returns_provider_manifest()
|
|
{
|
|
var factory = DbProviderFactories.GetFactory(SampleProviderName);
|
|
var providerServices = (DbProviderServices)((IServiceProvider)factory).GetService(typeof(DbProviderServices));
|
|
var providerManifest = providerServices.GetProviderManifest("2005");
|
|
Assert.NotNull(providerManifest);
|
|
}
|
|
|
|
[Fact]
|
|
public void Verify_provider_manifest_token_returned_by_provider_services_is_correct()
|
|
{
|
|
var factory = DbProviderFactories.GetFactory(SampleProviderName);
|
|
|
|
using (var connection = factory.CreateConnection())
|
|
{
|
|
connection.ConnectionString = NorthwindDirectConnectionString;
|
|
|
|
var providerServices = (DbProviderServices)((IServiceProvider)factory).GetService(typeof(DbProviderServices));
|
|
var providerManifestToken = providerServices.GetProviderManifestToken(connection);
|
|
Assert.True(providerManifestToken == "2005" || providerManifestToken == "2008");
|
|
}
|
|
}
|
|
}
|
|
}
|