EntityConnection_does_not_dispose_underlying_StoreConnection_if_the_entityConnectionOwnsStoreConnection_flag_is_not_specified () { var storeConnectionMock = new Mock<DbConnection>(MockBehavior.Strict); storeConnectionMock.Protected().Setup("Dispose", true).Verifiable(); storeConnectionMock.SetupGet(m => m.State).Returns(() => ConnectionState.Closed); storeConnectionMock.SetupGet(m => m.DataSource).Returns("fake"); storeConnectionMock.Protected().Setup<DbProviderFactory>("DbProviderFactory").Returns(GenericProviderFactory<DbProviderFactory>.Instance); var entityConnection = new EntityConnection(CreateMetadataWorkspaceMock().Object, storeConnectionMock.Object); entityConnection.Dispose(); storeConnectionMock.Protected().Verify("Dispose", Times.Never(), true); }
public void Should_use_interception() { var storeConnectionMock = new Mock<DbConnection>(MockBehavior.Strict); storeConnectionMock.Protected().Setup("Dispose", true).Verifiable(); storeConnectionMock.SetupGet(m => m.State).Returns(() => ConnectionState.Closed); storeConnectionMock.SetupGet(m => m.DataSource).Returns("fake"); storeConnectionMock.Setup(m => m.ToString()).Returns("Mock Connection"); storeConnectionMock.Protected() .Setup<DbProviderFactory>("DbProviderFactory") .Returns(GenericProviderFactory<DbProviderFactory>.Instance); var mockConnectionInterceptor = new Mock<IDbConnectionInterceptor>(); DbInterception.Add(mockConnectionInterceptor.Object); try { var entityConnection = new EntityConnection(CreateMetadataWorkspaceMock().Object, storeConnectionMock.Object, true); entityConnection.Dispose(); } finally { DbInterception.Remove(mockConnectionInterceptor.Object); } mockConnectionInterceptor.Verify(m => m.Disposing(It.IsAny<DbConnection>(), It.IsAny<DbConnectionInterceptionContext>()), Times.Once()); mockConnectionInterceptor.Verify(m => m.Disposed(It.IsAny<DbConnection>(), It.IsAny<DbConnectionInterceptionContext>()), Times.Once()); storeConnectionMock.Protected().Verify("Dispose", Times.Once(), ItExpr.IsAny<bool>()); mockConnectionInterceptor.Verify( m => m.StateGetting(It.IsAny<DbConnection>(), It.IsAny<DbConnectionInterceptionContext<ConnectionState>>()), Times.Exactly(2)); mockConnectionInterceptor.Verify( m => m.StateGot(It.IsAny<DbConnection>(), It.IsAny<DbConnectionInterceptionContext<ConnectionState>>()), Times.Exactly(2)); storeConnectionMock.Verify(m => m.State, Times.Exactly(2)); }