public void FindsAndRegistersAllHandlersInSingleAssembly()
            {
                // Arrange
                var handlerRegistry = new QueryHandlerRegistry();

                // Act
                handlerRegistry.RegisterFromAssemblies(new[] { typeof(TestQueryHandler).Assembly });

                // Assert
                handlerRegistry.Get(typeof(TestQueryA)).ShouldNotBeNull();
                handlerRegistry.Get(typeof(TestQueryB)).ShouldBeNull();
                handlerRegistry.Get(typeof(TestQueryC)).ShouldBeNull();
            }
Exemple #2
0
            public void ThrowsConfigurationExceptionWhenAddingADuplicatedRegistration()
            {
                // Arrange
                var handlerRegistry = new QueryHandlerRegistry();

                handlerRegistry.Register <TestQueryA, object, IQueryHandler <TestQueryA, object> >();

                // Act
                var exception = Assert.Throws <ConfigurationException>(() => handlerRegistry.Register <TestQueryA, object, IQueryHandler <TestQueryA, object> >());

                // Assert
                exception.Message.ShouldBe($"Registry already contains an entry for {typeof(TestQueryA).Name}");
                handlerRegistry.Get(typeof(TestQueryA)).ShouldNotBeNull();
                handlerRegistry.Get(typeof(TestQueryB)).ShouldBeNull();
                handlerRegistry.Get(typeof(TestQueryC)).ShouldBeNull();
            }
Exemple #3
0
            public void ReturnsNullForNotRegisteredHandler()
            {
                // Arrange
                var handlerRegistry = new QueryHandlerRegistry();

                handlerRegistry.Register <TestQueryA, object, IQueryHandler <TestQueryA, object> >();

                // Act
                var handlerType = handlerRegistry.Get(typeof(TestQueryB));

                // Assert
                handlerType.ShouldBeNull();
            }
Exemple #4
0
            public void ReturnsRegisteredHandler()
            {
                // Arrange
                var handlerRegistry = new QueryHandlerRegistry();

                handlerRegistry.Register(typeof(TestQueryA), typeof(object), typeof(IQueryHandler <TestQueryA, object>));

                // Act
                var handlerType = handlerRegistry.Get(typeof(TestQueryA));

                // Assert
                handlerType.ShouldBe(typeof(IQueryHandler <TestQueryA, object>));
            }
            public void ReturnsRegisteredHandler()
            {
                // Arrange
                var handlerRegistry = new QueryHandlerRegistry();

                handlerRegistry.Register <TestQueryA, TestQueryA.Response, IQueryHandler <TestQueryA, TestQueryA.Response> >();

                // Act
                var handlerType = handlerRegistry.Get(typeof(TestQueryA));

                // Assert
                handlerType.ShouldBe(typeof(IQueryHandler <TestQueryA, TestQueryA.Response>));
            }