public void GivenExistingType_WhenConstructorWithParameterIsInvoked_ThenThatTypeShouldBeReflected(Type reflectedType)
        {
            // Arrange
            // Act
            var customization = new IgnoreVirtualMembersCustomization(reflectedType);

            // Assert
            customization.ReflectedType.Should().BeSameAs(reflectedType);
        }
        public void GivenDefaultConstructor_WhenInvoked_ThenReflectedTypeShouldBeNull()
        {
            // Arrange
            // Act
            var customization = new IgnoreVirtualMembersCustomization();

            // Assert
            customization.ReflectedType.Should().BeNull();
        }
        public void GivenExistingCustomizationForFixtureWithIgnoreVirtualMembersSetToFalse_WhenCustomizeIsInvoked_ThenFixtureShouldCreateVirtualMembers(Fixture fixture)
        {
            // Arrange
            var customization = new IgnoreVirtualMembersCustomization(ignoreVirtualMembers: false);

            // Act
            fixture.Customize(customization);

            // Assert
            fixture.ShouldNotIgnoreVirtualMembers();
        }
        public void GivenExistingCustomizationToIgnoreVirtualMembersForFixture_WhenCustomizeIsInvoked_ThenFixtureShouldNotCreateVirtualMembers(
            Fixture fixture,
            [Modest] IgnoreVirtualMembersCustomization customization)
        {
            // Arrange
            // Act
            fixture.Customize(customization);

            // Assert
            fixture.ShouldIgnoreVirtualMembers();
        }
        public void GivenExistingCustomizationToIgnoreVirtualMembersWithTypeForFixture_WhenCustomizeIsInvoked_ThenFixtureShouldNotCreateVirtualMembers(
            Fixture fixture,
            [Frozen] Type reflectedType,
            [Greedy] IgnoreVirtualMembersCustomization customization)
        {
            // Arrange
            // Act
            fixture.Customize(customization);

            // Assert
            fixture.ShouldIgnoreVirtualMembers(reflectedType);
        }