Exemple #1
0
        public void Interface_Types_Are_Ignored()
        {
            var typeSource = new MockTypeSource(typeof(IInterfaceHandler1));
            var collection = new ServiceCollection();

            collection.AddCustomRequestHandlers(typeSource);
            Assert.Empty(collection);
        }
Exemple #2
0
        public void Interfaces_That_Does_Not_Implement_IRequestHandler_Are_Ignored()
        {
            var typeSource = new MockTypeSource(
                typeof(NotRequestHandler));
            var collection = new ServiceCollection();

            collection.AddCustomRequestHandlers(typeSource);
            Assert.Empty(collection);
        }
Exemple #3
0
        public void Open_Generic_Types_Are_Ignored()
        {
            var typeSource = new MockTypeSource(
                typeof(GenericHandler1 <>),
                typeof(GenericHandler2 <,>));
            var collection = new ServiceCollection();

            collection.AddCustomRequestHandlers(typeSource);
            Assert.Empty(collection);
        }
Exemple #4
0
        public void RetrieveRequestHandler_Correct_Interfaces_Are_Generated()
        {
            var typeSource = new MockTypeSource(
                typeof(TestRetrieveHandler1));
            var collection = new ServiceCollection();

            collection.AddCustomRequestHandlers(typeSource);
            Assert.Collection(collection.OrderBy(x => x.ServiceType?.Name),
                              x => Assert.Equal(typeof(IRetrieveHandler <TestRow>), x.ServiceType),
                              x => Assert.Equal(typeof(IRetrieveHandler <TestRow, RetrieveRequest, RetrieveResponse <TestRow> >), x.ServiceType),
                              x => Assert.Equal(typeof(TestRetrieveHandler1), x.ServiceType));
        }
Exemple #5
0
        public void Interface_Type_CanBeFiltered_Via_Predicate()
        {
            var typeSource = new MockTypeSource(typeof(CustomHandler1));
            var collection = new ServiceCollection();

            collection.AddCustomRequestHandlers(typeSource, (svc, impl) =>
                                                !svc.IsInterface);
            var descriptor = Assert.Single(collection);

            Assert.Equal(typeof(CustomHandler1), descriptor.ServiceType);
            Assert.Equal(typeof(CustomHandler1), descriptor.ImplementationType);
            Assert.Equal(ServiceLifetime.Transient, descriptor.Lifetime);
        }
Exemple #6
0
        public void Throws_When_Multiple_Types_With_DefaultHandler_Implements_Same_Interface()
        {
            var typeSource = new MockTypeSource(
                typeof(CustomHandler1DefaultA),
                typeof(CustomHandler1DefaultB));
            var collection = new ServiceCollection();
            var exception  = Assert.Throws <InvalidProgramException>(() =>
                                                                     collection.AddCustomRequestHandlers(typeSource));

            Assert.Contains("CustomHandler1DefaultA", exception.Message, StringComparison.OrdinalIgnoreCase);
            Assert.Contains("CustomHandler1DefaultB", exception.Message, StringComparison.OrdinalIgnoreCase);
            Assert.Contains("use [DefaultHandler] on only one of them!", exception.Message, StringComparison.OrdinalIgnoreCase);
        }
Exemple #7
0
        public void Uses_Passed_TypeSource()
        {
            var typeSource = new MockTypeSource(typeof(CustomHandler1));
            var collection = new ServiceCollection();

            collection.AddCustomRequestHandlers(typeSource);
            Assert.Collection(collection,
                              x1 =>
            {
                Assert.Equal(typeof(CustomHandler1), x1.ServiceType);
                Assert.Equal(typeof(CustomHandler1), x1.ImplementationType);
                Assert.Equal(ServiceLifetime.Transient, x1.Lifetime);
            },
                              x2 =>
            {
                Assert.Equal(typeof(ICustomHandler1), x2.ServiceType);
                Assert.Equal(typeof(CustomHandler1), x2.ImplementationType);
                Assert.Equal(ServiceLifetime.Transient, x2.Lifetime);
            });
        }