Example #1
0
        public void Initialize()
        {
            _settingsMock = new Mock <IOptionsMonitor <RecaptchaSettings> >();
            _settingsMock.SetupGet(instance => instance.CurrentValue)
            .Returns(new RecaptchaSettings()
            {
                SiteKey   = SiteKey,
                SecretKey = string.Empty
            })
            .Verifiable();

            _optionsMock = new Mock <IOptionsMonitor <RecaptchaOptions> >();
            _optionsMock.SetupGet(instance => instance.CurrentValue)
            .Returns(new RecaptchaOptions())
            .Verifiable();

            _tagHelperComponentCollectionMock = new Mock <ICollection <ITagHelperComponent> >();
            _tagHelperComponentCollectionMock.Setup(instance => instance.Add(It.IsAny <CallbackScriptTagHelperComponent>()))
            .Verifiable();

            _tagHelperComponentManagerMock = new Mock <ITagHelperComponentManager>();
            _tagHelperComponentManagerMock.SetupGet(instance => instance.Components)
            .Returns(_tagHelperComponentCollectionMock.Object);

            _tagHelperOutputStub = new TagHelperOutput("recaptcha-invisible",
                                                       new TagHelperAttributeList(), (useCachedResult, htmlEncoder) =>
            {
                var tagHelperContent = new DefaultTagHelperContent();
                tagHelperContent.SetContent(string.Empty);
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            _contextStub = new TagHelperContext(new TagHelperAttributeList(),
                                                new Dictionary <object, object>(),
                                                Guid.NewGuid().ToString("N"));

            invisibleTagHelper = new RecaptchaInvisibleTagHelper(_settingsMock.Object, _optionsMock.Object, _tagHelperComponentManagerMock.Object)
            {
                Callback = CallbackName
            };
        }
Example #2
0
        public void Construction_IsSuccessful()
        {
            // Arrange
            _settingsMock = new Mock <IOptionsMonitor <RecaptchaSettings> >();
            _settingsMock.SetupGet(instance => instance.CurrentValue)
            .Returns(new RecaptchaSettings())
            .Verifiable();

            _optionsMock = new Mock <IOptionsMonitor <RecaptchaOptions> >();
            _optionsMock.SetupGet(instance => instance.CurrentValue)
            .Returns(new RecaptchaOptions())
            .Verifiable();

            // Act
            var instance = new RecaptchaInvisibleTagHelper(_settingsMock.Object, _optionsMock.Object, _tagHelperComponentManagerMock.Object);

            // Assert
            Assert.NotNull(instance);
            _settingsMock.Verify(settings => settings.CurrentValue, Times.Once);
            _optionsMock.Verify(options => options.CurrentValue, Times.Once);
        }
Example #3
0
        public void Process_ShouldThrow_InvalidOperationException_WhenCallbackAndFormIdNullOrEmpty()
        {
            // Arrange
            var nullCallbackTagHelper = new RecaptchaInvisibleTagHelper(_settingsMock.Object, _optionsMock.Object, _tagHelperComponentManagerMock.Object)
            {
                Callback = null,
                FormId   = null
            };
            var emptyCallbackTagHelper = new RecaptchaInvisibleTagHelper(_settingsMock.Object, _optionsMock.Object, _tagHelperComponentManagerMock.Object)
            {
                Callback = string.Empty,
                FormId   = string.Empty
            };

            // Act


            // Assert
            Assert.Throws <InvalidOperationException>(() => nullCallbackTagHelper.Process(_contextStub, _tagHelperOutputStub));
            Assert.Throws <InvalidOperationException>(() => emptyCallbackTagHelper.Process(_contextStub, _tagHelperOutputStub));
        }
Example #4
0
        public void Constructor_ShouldSet_DefaultValues_FromGlobalOptions()
        {
            // Arrange
            _settingsMock = new Mock <IOptionsMonitor <RecaptchaSettings> >();
            _settingsMock.SetupGet(instance => instance.CurrentValue)
            .Returns(new RecaptchaSettings())
            .Verifiable();

            _optionsMock = new Mock <IOptionsMonitor <RecaptchaOptions> >();
            _optionsMock.SetupGet(instance => instance.CurrentValue)
            .Returns(new RecaptchaOptions()
            {
                Badge = BadgePosition.Inline
            })
            .Verifiable();

            // Act
            var tagHelper = new RecaptchaInvisibleTagHelper(_settingsMock.Object, _optionsMock.Object, _tagHelperComponentManagerMock.Object);

            // Assert
            _optionsMock.Verify(options => options.CurrentValue, Times.Once);
            Assert.AreEqual(BadgePosition.Inline, tagHelper.Badge);
        }