public void DisposeCalledForMultipleDisposableServicesCreatedByActivator() { var interceptorActivator = new DefaultGrpcInterceptorActivator <DisposableGrpcInterceptor>(Mock.Of <IServiceProvider>()); var interceptor1 = (DisposableGrpcInterceptor)interceptorActivator.Create(); var interceptor2 = (DisposableGrpcInterceptor)interceptorActivator.Create(); var interceptor3 = (DisposableGrpcInterceptor)interceptorActivator.Create(); interceptorActivator.Release(interceptor3); interceptorActivator.Release(interceptor2); interceptorActivator.Release(interceptor1); Assert.True(interceptor1.Disposed); Assert.True(interceptor2.Disposed); Assert.True(interceptor3.Disposed); }
public void DisposeNotCalledForUndisposableServicesCreatedByActivator() { var interceptorActivator = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(Mock.Of <IServiceProvider>()); var interceptor = (GrpcInterceptor)interceptorActivator.Create(); interceptorActivator.Release(interceptor); Assert.False(interceptor.Disposed); }
public void Release_MultipleDisposableCreatedByActivator_DisposeCalled() { // Arrange var interceptorRegistration = CreateRegistration <DisposableGrpcInterceptor>(); var interceptorActivator = new DefaultGrpcInterceptorActivator <DisposableGrpcInterceptor>(); var interceptorHandle1 = interceptorActivator.Create(Mock.Of <IServiceProvider>(), interceptorRegistration); var interceptorHandle2 = interceptorActivator.Create(Mock.Of <IServiceProvider>(), interceptorRegistration); var interceptorHandle3 = interceptorActivator.Create(Mock.Of <IServiceProvider>(), interceptorRegistration); // Act interceptorActivator.Release(interceptorHandle3); interceptorActivator.Release(interceptorHandle2); interceptorActivator.Release(interceptorHandle1); // Assert Assert.True(((DisposableGrpcInterceptor)interceptorHandle1.Instance).Disposed); Assert.True(((DisposableGrpcInterceptor)interceptorHandle2.Instance).Disposed); Assert.True(((DisposableGrpcInterceptor)interceptorHandle3.Instance).Disposed); }
public void Create_NotResolvedFromServiceProvider_CreatedByActivator() { // Arrange var activator = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(); // Act var handle = activator.Create(Mock.Of <IServiceProvider>(), CreateRegistration <GrpcInterceptor>()); // Assert Assert.NotNull(handle.Instance); Assert.IsTrue(handle.Created); }
public void Release_NonDisposableCreatedByActivator_DisposeNotCalled() { // Arrange var interceptorActivator = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(); var interceptorHandle = interceptorActivator.Create(Mock.Of <IServiceProvider>(), CreateRegistration <GrpcInterceptor>()); var interceptorInstance = (GrpcInterceptor)interceptorHandle.Instance; // Act interceptorActivator.Release(interceptorHandle); // Assert Assert.False(interceptorInstance.Disposed); }
public void Create_ResolvedFromServiceProvider_NotCreatedByActivator() { // Arrange var interceptor = new GrpcInterceptor(); var mockServiceProvider = new Mock <IServiceProvider>(); mockServiceProvider .Setup(sp => sp.GetService(typeof(GrpcInterceptor))) .Returns(interceptor); var activator = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(); // Act var handle = activator.Create(mockServiceProvider.Object, CreateRegistration <GrpcInterceptor>()); // Assert Assert.AreSame(handle.Instance, interceptor); Assert.IsFalse(handle.Created); }
public void DisposeNotCalledForServicesResolvedFromServiceProvider() { var mockServiceProvider = new Mock <IServiceProvider>(); mockServiceProvider .Setup(sp => sp.GetService(typeof(DisposableGrpcInterceptor))) .Returns(() => { return(new DisposableGrpcInterceptor()); }); var interceptorActivator = new DefaultGrpcInterceptorActivator <DisposableGrpcInterceptor>(mockServiceProvider.Object); var interceptor = (DisposableGrpcInterceptor)interceptorActivator.Create(); interceptorActivator.Release(interceptor); Assert.False(interceptor.Disposed); }
public void Release_ResolvedFromServiceProvider_DisposeNotCalled() { // Arrange var mockServiceProvider = new Mock <IServiceProvider>(); mockServiceProvider .Setup(sp => sp.GetService(typeof(DisposableGrpcInterceptor))) .Returns(() => { return(new DisposableGrpcInterceptor()); }); var interceptorActivator = new DefaultGrpcInterceptorActivator <DisposableGrpcInterceptor>(); var interceptorHandle = interceptorActivator.Create(mockServiceProvider.Object, CreateRegistration <DisposableGrpcInterceptor>()); var interceptorInstance = (DisposableGrpcInterceptor)interceptorHandle.Instance; // Act interceptorActivator.Release(interceptorHandle); // Assert Assert.False(interceptorInstance.Disposed); }