public void Registering_registered_provider_replaces_provider()
        {
            var mockProviderServices = new Mock<DbProviderServices>();

            var resolver = new DbProviderServicesResolver();
            resolver.Register(mockProviderServices.Object.GetType(), SqlClientInvariantName);
            resolver.Register(typeof(SqlProviderServices), SqlClientInvariantName);

            Assert.Same(
                SqlProviderServices.Instance,
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));

            resolver.Unregister(SqlClientInvariantName);

            Assert.IsType<LegacyDbProviderServicesWrapper>(
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));
        }
Example #2
0
        public void Registering_registered_provider_replaces_provider()
        {
            var mockProviderServices = new Mock <DbProviderServices>();

            var resolver = new DbProviderServicesResolver();

            resolver.Register(mockProviderServices.Object.GetType(), SqlClientInvariantName);
            resolver.Register(typeof(SqlProviderServices), SqlClientInvariantName);

            Assert.Same(
                SqlProviderServices.Instance,
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));

            resolver.Unregister(SqlClientInvariantName);

            Assert.IsType <LegacyDbProviderServicesWrapper>(
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));
        }
Example #3
0
        public static void RegisterProvider(Type type, string invariantName)
        {
            Debug.Assert(type != null, "type != null");
            Debug.Assert(
                typeof(DbProviderServices).IsAssignableFrom(type),
                "expected type derived from DbProviderServices");
            Debug.Assert(!string.IsNullOrWhiteSpace(invariantName), "invariantName cannot be null or empty string");

            ProviderServicesResolver.Register(type, invariantName);
        }
Example #4
0
        public void Resolving_provider_whose_Instance_returns_non_DbProviderServices_throws()
        {
            var resolver = new DbProviderServicesResolver();

            resolver.Register(typeof(ProviderFake), "fakeProvider");

            Assert.Equal(
                string.Format(
                    CultureInfo.CurrentCulture,
                    Resources_VersioningFacade.EF6Providers_NotDbProviderServices,
                    typeof(ProviderFake).AssemblyQualifiedName),
                Assert.Throws <InvalidOperationException>(
                    () => resolver.GetService(typeof(DbProviderServices), "fakeProvider")).Message);
        }
        public void Can_register_unregister_provider()
        {
            var resolver = new DbProviderServicesResolver();
            resolver.Register(typeof(SqlProviderServices), SqlClientInvariantName);

            Assert.Same(
                SqlProviderServices.Instance,
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));

            resolver.Unregister(SqlClientInvariantName);

            Assert.IsType<LegacyDbProviderServicesWrapper>(
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));
        }
Example #6
0
        public void Can_register_unregister_provider()
        {
            var resolver = new DbProviderServicesResolver();

            resolver.Register(typeof(SqlProviderServices), SqlClientInvariantName);

            Assert.Same(
                SqlProviderServices.Instance,
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));

            resolver.Unregister(SqlClientInvariantName);

            Assert.IsType <LegacyDbProviderServicesWrapper>(
                resolver.GetService(typeof(DbProviderServices), SqlClientInvariantName));
        }
        public void Resolving_provider_without_static_Instance_field_or_property_throws()
        {
            var mockProviderServices = new Mock<DbProviderServices>();

            var resolver = new DbProviderServicesResolver();
            resolver.Register(mockProviderServices.Object.GetType(), "fakeProvider");

            Assert.Equal(
                string.Format(
                    CultureInfo.CurrentCulture,
                    Resources_VersioningFacade.EF6Providers_InstanceMissing,
                    mockProviderServices.Object.GetType().AssemblyQualifiedName),
                Assert.Throws<InvalidOperationException>(
                    () => resolver.GetService(typeof(DbProviderServices), "fakeProvider")).Message);
        }
Example #8
0
        public void Resolving_provider_without_static_Instance_field_or_property_throws()
        {
            var mockProviderServices = new Mock <DbProviderServices>();

            var resolver = new DbProviderServicesResolver();

            resolver.Register(mockProviderServices.Object.GetType(), "fakeProvider");

            Assert.Equal(
                string.Format(
                    CultureInfo.CurrentCulture,
                    Resources_VersioningFacade.EF6Providers_InstanceMissing,
                    mockProviderServices.Object.GetType().AssemblyQualifiedName),
                Assert.Throws <InvalidOperationException>(
                    () => resolver.GetService(typeof(DbProviderServices), "fakeProvider")).Message);
        }
        public void Resolving_provider_whose_Instance_returns_non_DbProviderServices_throws()
        {
            var resolver = new DbProviderServicesResolver();
            resolver.Register(typeof(ProviderFake), "fakeProvider");

            Assert.Equal(
                string.Format(
                    CultureInfo.CurrentCulture,
                    Resources_VersioningFacade.EF6Providers_NotDbProviderServices,
                    typeof(ProviderFake).AssemblyQualifiedName),
                Assert.Throws<InvalidOperationException>(
                    () => resolver.GetService(typeof(DbProviderServices), "fakeProvider")).Message);
        }