public void Prepare_returns_a_new_instance()
        {
            var objectQueryExecutionPlanFactory = new ObjectQueryExecutionPlanFactory(
                Common.Internal.Materialization.MockHelper.CreateTranslator <object>());

            var metadataWorkspace = new MetadataWorkspace();
            var edmItemCollection = new EdmItemCollection();

            metadataWorkspace.RegisterItemCollection(edmItemCollection);
            metadataWorkspace.RegisterItemCollection(new ObjectItemCollection());
            var fakeSqlProviderManifest = new FakeSqlProviderServices().GetProviderManifest("2008");
            var storeItemCollection     = new StoreItemCollection(FakeSqlProviderFactory.Instance, fakeSqlProviderManifest, "2008");

            metadataWorkspace.RegisterItemCollection(storeItemCollection);
            metadataWorkspace.RegisterItemCollection(
                new StorageMappingItemCollection(edmItemCollection, storeItemCollection, Enumerable.Empty <XmlReader>()));

            var fakeSqlConnection = new FakeSqlConnection();

            fakeSqlConnection.ConnectionString = "foo";
            var entityConnection = new EntityConnection(metadataWorkspace, fakeSqlConnection, false);

            var objectContext      = new ObjectContext(entityConnection);
            var dbExpression       = new DbNullExpression(TypeUsage.Create(fakeSqlProviderManifest.GetStoreTypes().First()));
            var dbQueryCommandTree = new DbQueryCommandTree(
                metadataWorkspace, DataSpace.CSpace,
                dbExpression, validate: false);
            var parameters = new List <Tuple <ObjectParameter, QueryParameterExpression> >();

            var objectQueryExecutionPlan = objectQueryExecutionPlanFactory.Prepare(
                objectContext, dbQueryCommandTree, typeof(object),
                MergeOption.NoTracking, new Span(), parameters, aliasGenerator: null);

            Assert.NotNull(objectQueryExecutionPlan);
        }
            public void GetServices_returns_services_registered_with_AddDependencyResolver()
            {
                var services = new FakeSqlProviderServices();

                services.AddDependencyResolver(new SingletonDependencyResolver <string>("Cheese", "Please"));

                Assert.Equal("Cheese", services.GetServices <string>("Please").Single());
            }