public void ResolveManifestToken_caches_based_on_connection_server_and_database() { var resolver = new DefaultManifestTokenResolver(); Assert.Equal("1908", resolver.ResolveManifestToken(CreateConnection <FakeSqlConnection>("1908", "Cheese", "Pickle"))); // The following call should still return 1908 because the cache is being used Assert.Equal("1908", resolver.ResolveManifestToken(CreateConnection <FakeSqlConnection>("2108", "Cheese", "Pickle"))); // Each of the following calls should miss the cache and return the new manifest token value Assert.Equal("2110", resolver.ResolveManifestToken(CreateConnection <FakeSqlConnection>("2110", "Beer", "Pickle"))); Assert.Equal("2111", resolver.ResolveManifestToken(CreateConnection <FakeSqlConnection>("2111", "Cheese", "Chips"))); #if !NET40 // Only on .NET 4.5 because provider lookup will fail on .NET 4 unless we jump through hoops to register Assert.Equal("2109", resolver.ResolveManifestToken(CreateConnection <DerivedFakeSqlConnection>("2109", "Cheese", "Pickle"))); #endif }