public void should_filter_by_namespace()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            // None.

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            FromAssemblyDefiner instance = AssemblyScanner.FromAssemblyInThisApplicationDirectory();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            instance.BasedOn <IPaymentMethod>()
            .InSameNamespaceOf(typeof(IAdditionalAssemblyService))
            .Filter()
            .Scan().Count.Should().Be(0);
        }
        public void when_sub_namespace_search_option_is_not_active_then_the_sub_namespaced_type_doesnt_count_inside_of_scanned_types()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            // None.

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            FromAssemblyDefiner instance = AssemblyScanner.FromAssemblyInThisApplicationDirectory();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            instance.BasedOn <IPaymentMethod>()
            .InSameNamespaceOf <IPaymentMethod>()
            .Filter()
            .Scan()
            .Should().NotContain(typeof(DBankPaymentMethod));
        }
        public void should_return_related_types_with_based_ons()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            // None.

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            FromAssemblyDefiner instance = AssemblyScanner.FromAssemblyInThisApplicationDirectory();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            instance.BasedOn <IPaymentMethod>()
            .OrBasedOn <IAdditionalAssemblyService>()
            .Filter()
            .Classes()
            .Scan()
            .Should().NotContain(typeof(SampleDbContext));
        }
        public void when_use_with_based_ons_and_filter_should_work_and_returns_also_interfaces()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            // None.

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            FromAssemblyDefiner instance = AssemblyScanner.FromAssemblyInThisApplication();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            List <Type> scannedTypes = instance.BasedOn <IPaymentMethod>()
                                       .OrBasedOn <IAdditionalAssemblyService>()
                                       .Filter()
                                       .Scan();

            scannedTypes.Count.Should().Be(7);
        }
        public void when_use_with_filter_with_method_name_contains()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            // None.

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            FromAssemblyDefiner instance = AssemblyScanner.FromAssemblyInThisApplicationDirectory();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            List <Type> scannedTypes = instance.BasedOn <IPaymentMethod>()
                                       .Filter()
                                       .MethodNameContains("BPaymentInternal")
                                       .Scan();

            scannedTypes.Count.Should().Be(1);
            scannedTypes.Should().Contain(typeof(BBankPaymentMethod));
        }
        public void when_use_with_filter_with_methodHasAttribute_should_work()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            // None.

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            FromAssemblyDefiner instance = AssemblyScanner.FromAssemblyInThisApplicationDirectory();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            List <Type> scannedTypes = instance.BasedOn <IPaymentMethod>()
                                       .Filter()
                                       .MethodHasAttribute <UnitOfWorkAttribute>()
                                       .Scan();

            scannedTypes.Count.Should().Be(1);
            scannedTypes.Should().Contain(typeof(CBankPaymentMethod));
        }