Example #1
0
        public void DisposeNotCalledForUndisposableServicesCreatedByActivator()
        {
            var interceptorActivator = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(Mock.Of <IServiceProvider>());
            var interceptor          = (GrpcInterceptor)interceptorActivator.Create();

            interceptorActivator.Release(interceptor);

            Assert.False(interceptor.Disposed);
        }
Example #2
0
        public void Release_NullInterceptor_ThrowError()
        {
            // Arrange
            var activator = new DefaultGrpcInterceptorActivator <GrpcInterceptor>();

            // Act
            var ex = Assert.Throws <ArgumentException>(() => activator.Release(new GrpcActivatorHandle <Interceptor>(null !, true, state: null)));

            // Assert
            Assert.AreEqual("interceptor", ex.ParamName);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        public void GrpcInterceptorCanResolveArgumentsFromArg()
        {
            var mutex = new Mutex();
            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider
            .Setup(sp => sp.GetService(typeof(Mutex)))
            .Returns(mutex);

            var interceptor = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(mockServiceProvider.Object).Create(10) as GrpcInterceptor;

            Assert.AreEqual(10, interceptor.X);
        }
Example #6
0
        public void GrpcInterceptorNotResolvedFromServiceProviderIfExplicitArgsGiven()
        {
            var interceptor         = new GrpcInterceptor();
            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider
            .Setup(sp => sp.GetService(typeof(GrpcInterceptor)))
            .Returns(interceptor);

            var activatedInstance = new DefaultGrpcInterceptorActivator <GrpcInterceptor>(mockServiceProvider.Object).Create(10);

            Assert.AreNotSame(interceptor, activatedInstance);
            Assert.AreEqual(10, ((GrpcInterceptor)activatedInstance).X);
        }
        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);
        }
Example #8
0
        public void Create_ExplicitArgsAndServiceArgs_CreatedByActivatorWithServiceArgsResolved()
        {
            var mutex = new Mutex();
            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider
            .Setup(sp => sp.GetService(typeof(Mutex)))
            .Returns(mutex);

            var handle = new DefaultGrpcInterceptorActivator <GrpcIntMutexArgumentInterceptor>().Create(
                mockServiceProvider.Object,
                CreateRegistration <GrpcIntMutexArgumentInterceptor>(10));

            Assert.AreEqual(10, ((GrpcIntMutexArgumentInterceptor)handle.Instance).X);
            Assert.AreEqual(mutex, ((GrpcIntMutexArgumentInterceptor)handle.Instance).Mutex);
            Assert.IsTrue(handle.Created);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        public void Create_ServiceRegistrationAndExplicitArgs_CreatedByActivator()
        {
            // Arrange
            var interceptor         = new GrpcIntArgumentInterceptor();
            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider
            .Setup(sp => sp.GetService(typeof(GrpcIntArgumentInterceptor)))
            .Returns(interceptor);

            // Act
            var handle = new DefaultGrpcInterceptorActivator <GrpcIntArgumentInterceptor>().Create(
                mockServiceProvider.Object,
                CreateRegistration <GrpcIntArgumentInterceptor>(10));

            // Assert
            Assert.AreNotSame(interceptor, handle.Instance);
            Assert.AreEqual(10, ((GrpcIntArgumentInterceptor)handle.Instance).X);
            Assert.IsTrue(handle.Created);
        }
Example #13
0
        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);
        }