public void CreateInstance_ShouldReturn_ValidateRecaptchaFilter_WithUserSetAction() { // Arrange var action = "submit"; var optionsMock = new Mock <IOptionsMonitor <RecaptchaOptions> >(); optionsMock.SetupGet(options => options.CurrentValue) .Returns(new RecaptchaOptions()); var servicesMock = new Mock <IServiceProvider>(); servicesMock.Setup(provider => provider.GetService(typeof(IValidateRecaptchaFilter))) .Returns(new ValidateRecaptchaFilter(null, optionsMock.Object, null)) .Verifiable(); var attribute = new ValidateRecaptchaAttribute { Action = action }; // Act var filterInstance = attribute.CreateInstance(servicesMock.Object); // Assert servicesMock.Verify(); Assert.IsNotNull(filterInstance); Assert.IsInstanceOf <ValidateRecaptchaFilter>(filterInstance); Assert.AreEqual(action, (filterInstance as ValidateRecaptchaFilter).Action); }
public void CreateInstance_ShouldThrowWhen_ServicesNotRegistered() { // Arrange var servicesMock = new Mock <IServiceProvider>(); servicesMock.Setup(provider => provider.GetService(typeof(ValidateRecaptchaFilter))) .Returns(null); var attribute = new ValidateRecaptchaAttribute(); // Act // Assert Assert.Throws <InvalidOperationException>(() => attribute.CreateInstance(servicesMock.Object)); }