public void Validate_Validate_GetValue()
        {
            var optionsMock = new Mock <IOptions <TestOptions> >(MockBehavior.Strict);

            optionsMock.SetupGet(el => el.Value).Returns(new TestOptions());
            var validateOptionsWithFluentValidationOnStartup = new ValidateOptionsWithFluentValidationOnStartup <TestOptions>(optionsMock.Object);

            validateOptionsWithFluentValidationOnStartup.Validate();

            optionsMock.VerifyGet(el => el.Value, Times.Once);
        }
        public void Configure_Configure_ValidateAll()
        {
            var validateOptionsWithFluentValidationOnStartupMock1 = new ValidateOptionsWithFluentValidationOnStartup();
            var validateOptionsWithFluentValidationOnStartupMock2 = new ValidateOptionsWithFluentValidationOnStartup();

            var startupValidators = new[]
            {
                validateOptionsWithFluentValidationOnStartupMock1,
                validateOptionsWithFluentValidationOnStartupMock2,
            };

            var validateOptionsWithFluentValidationStartupFilter = new ValidateOptionsWithFluentValidationStartupFilter(startupValidators);

            Action <IApplicationBuilder> next = _ => { };

            validateOptionsWithFluentValidationStartupFilter.Configure(next);

            validateOptionsWithFluentValidationOnStartupMock1.Counter.Should().Be(1);
            validateOptionsWithFluentValidationOnStartupMock2.Counter.Should().Be(1);
        }