[Fact] // CodePlex 2320 public void Model_is_available_in_DatabaseExists() { WrappingAdoNetProvider <SqlClientFactory> .WrapProviders(); var log = WrappingAdoNetProvider <SqlClientFactory> .Instance.Log; log.Clear(); using (var context = new EfLevelBlogContext()) { context.Database.Exists(); } var rawDetails = (object[])log.Where(i => i.Method == "DbDatabaseExists").Select(i => i.RawDetails).Single(); var itemCollection = (StoreItemCollection)rawDetails[1]; Assert.Equal( new[] { "Blog", "Post" }, itemCollection.OfType <EntityType>().Select(e => e.Name).OrderBy(n => n).ToArray()); }
public void Simple_query_and_update_works_with_wrapping_provider_setup_at_EF_level_only() { WrappingAdoNetProvider <SqlClientFactory> .WrapProviders(); var log = WrappingAdoNetProvider <SqlClientFactory> .Instance.Log; log.Clear(); using (var context = new EfLevelBlogContext()) { var blog = context.Blogs.Single(); Assert.Equal("Half a Unicorn", blog.Title); Assert.Equal("Wrap it up...", blog.Posts.Single().Title); using (context.Database.BeginTransaction()) { blog.Posts.Add( new Post { Title = "Throw it away..." }); Assert.Equal(1, context.SaveChanges()); Assert.Equal( new[] { "Throw it away...", "Wrap it up..." }, context.Posts.AsNoTracking().Select(p => p.Title).OrderBy(t => t)); } } // Sanity check that the wrapping provider really did get used var methods = log.Select(i => i.Method).ToList(); Assert.Contains("ExecuteReader", methods); Assert.Contains("ExecuteNonQuery", methods); Assert.Contains("Open", methods); Assert.Contains("Close", methods); Assert.Contains("Commit", methods); Assert.Contains("Generate", methods); }
public void Correct_services_are_returned_when_wrapping_setup_at_EF_level_only() { WrappingAdoNetProvider <SqlClientFactory> .WrapProviders(); Assert.Same( WrappingAdoNetProvider <SqlClientFactory> .Instance, DbConfiguration.DependencyResolver.GetService <DbProviderFactory>(SqlClientInvariantName)); Assert.Same( WrappingEfProvider <SqlClientFactory, SqlProviderServices> .Instance, DbConfiguration.DependencyResolver.GetService <DbProviderServices>(SqlClientInvariantName)); Assert.Equal( SqlClientInvariantName, DbConfiguration.DependencyResolver.GetService <IProviderInvariantName>(WrappingAdoNetProvider <SqlClientFactory> .Instance).Name); Assert.Same( WrappingAdoNetProvider <SqlClientFactory> .Instance, DbConfiguration.DependencyResolver.GetService <IDbProviderFactoryResolver>() .ResolveProviderFactory(new WrappingConnection <SqlClientFactory>(new SqlConnection()))); // Should still report what is in the providers table Assert.Same(SqlClientFactory.Instance, DbProviderFactories.GetFactory(SqlClientInvariantName)); }