public void Scoped_data_store_services_can_be_obtained_from_configuration_with_implicit_service_provider()
        {
            DataStore           store;
            DataStoreCreator    creator;
            DataStoreConnection connection;

            using (var context = new GiddyupContext())
            {
                var contextServices = ((IDbContextServices)context).ScopedServiceProvider;

                store      = contextServices.GetRequiredService <DbContextService <DataStore> >().Service;
                creator    = contextServices.GetRequiredService <DbContextService <DataStoreCreator> >().Service;
                connection = contextServices.GetRequiredService <DbContextService <DataStoreConnection> >().Service;

                Assert.Same(store, contextServices.GetRequiredService <DbContextService <DataStore> >().Service);
                Assert.Same(creator, contextServices.GetRequiredService <DbContextService <DataStoreCreator> >().Service);
                Assert.Same(connection, contextServices.GetRequiredService <DbContextService <DataStoreConnection> >().Service);
            }

            using (var context = new GiddyupContext())
            {
                var contextServices = ((IDbContextServices)context).ScopedServiceProvider;

                Assert.NotSame(store, contextServices.GetRequiredService <DbContextService <DataStore> >().Service);
                Assert.NotSame(creator, contextServices.GetRequiredService <DbContextService <DataStoreCreator> >().Service);
                Assert.NotSame(connection, contextServices.GetRequiredService <DbContextService <DataStoreConnection> >().Service);
            }
        }
        public void Scoped_data_store_services_can_be_obtained_from_configuration_with_implicit_service_provider()
        {
            IDataStore store;
            IDataStoreCreator creator;
            IDataStoreConnection connection;

            using (var context = new GiddyupContext())
            {
                var contextServices = ((IAccessor<IServiceProvider>)context).Service;

                store = contextServices.GetRequiredService<IDataStore>();
                creator = contextServices.GetRequiredService<IDataStoreCreator>();
                connection = contextServices.GetRequiredService<IDataStoreConnection>();

                Assert.Same(store, contextServices.GetRequiredService<IDataStore>());
                Assert.Same(creator, contextServices.GetRequiredService<IDataStoreCreator>());
                Assert.Same(connection, contextServices.GetRequiredService<IDataStoreConnection>());
            }

            using (var context = new GiddyupContext())
            {
                var contextServices = ((IAccessor<IServiceProvider>)context).Service;

                Assert.NotSame(store, contextServices.GetRequiredService<IDataStore>());
                Assert.NotSame(creator, contextServices.GetRequiredService<IDataStoreCreator>());
                Assert.NotSame(connection, contextServices.GetRequiredService<IDataStoreConnection>());
            }
        }
        public void Scoped_provider_services_can_be_obtained_from_configuration_with_implicit_service_provider()
        {
            IDatabase        database;
            IDatabaseCreator creator;

            using (var context = new GiddyupContext())
            {
                database = context.GetService <IDatabase>();
                creator  = context.GetService <IDatabaseCreator>();

                Assert.Same(database, context.GetService <IDatabase>());
                Assert.Same(creator, context.GetService <IDatabaseCreator>());
            }

            using (var context = new GiddyupContext())
            {
                Assert.NotSame(database, context.GetService <IDatabase>());
                Assert.NotSame(creator, context.GetService <IDatabaseCreator>());
            }
        }
        public void Scoped_provider_services_can_be_obtained_from_configuration_with_implicit_service_provider()
        {
            IDatabase database;
            IDatabaseCreator creator;

            using (var context = new GiddyupContext())
            {
                database = context.GetService<IDatabase>();
                creator = context.GetService<IDatabaseCreator>();

                Assert.Same(database, context.GetService<IDatabase>());
                Assert.Same(creator, context.GetService<IDatabaseCreator>());
            }

            using (var context = new GiddyupContext())
            {
                Assert.NotSame(database, context.GetService<IDatabase>());
                Assert.NotSame(creator, context.GetService<IDatabaseCreator>());
            }
        }
        public void Scoped_provider_services_can_be_obtained_from_configuration()
        {
            var serviceProvider = InMemoryTestHelpers.Instance.CreateServiceProvider();

            IDatabase        database;
            IDatabaseCreator creator;

            using (var context = new GiddyupContext(serviceProvider))
            {
                database = context.GetService <IDatabase>();
                creator  = context.GetService <IDatabaseCreator>();

                Assert.Same(database, context.GetService <IDatabase>());
                Assert.Same(creator, context.GetService <IDatabaseCreator>());
            }

            using (var context = new GiddyupContext(serviceProvider))
            {
                Assert.NotSame(database, context.GetService <IDatabase>());
                Assert.NotSame(creator, context.GetService <IDatabaseCreator>());
            }
        }
        public void Scoped_provider_services_can_be_obtained_from_configuration()
        {
            var serviceProvider = TestHelpers.Instance.CreateServiceProvider();

            IDatabase database;
            IDatabaseCreator creator;

            using (var context = new GiddyupContext(serviceProvider))
            {
                database = context.GetService<IDatabase>();
                creator = context.GetService<IDatabaseCreator>();

                Assert.Same(database, context.GetService<IDatabase>());
                Assert.Same(creator, context.GetService<IDatabaseCreator>());
            }

            using (var context = new GiddyupContext(serviceProvider))
            {
                Assert.NotSame(database, context.GetService<IDatabase>());
                Assert.NotSame(creator, context.GetService<IDatabaseCreator>());
            }
        }
Пример #7
0
        public void Scoped_data_store_services_can_be_obtained_from_configuration_with_implicit_service_provider()
        {
            DataStore           store;
            DataStoreCreator    creator;
            DataStoreConnection connection;

            using (var context = new GiddyupContext())
            {
                store      = context.Configuration.DataStore;
                creator    = context.Configuration.DataStoreCreator;
                connection = context.Configuration.Connection;

                Assert.Same(store, context.Configuration.DataStore);
                Assert.Same(creator, context.Configuration.DataStoreCreator);
                Assert.Same(connection, context.Configuration.Connection);
            }

            using (var context = new GiddyupContext())
            {
                Assert.NotSame(store, context.Configuration.DataStore);
                Assert.NotSame(creator, context.Configuration.DataStoreCreator);
                Assert.NotSame(connection, context.Configuration.Connection);
            }
        }