public void IsBot_ShouldBeFalse_IfHpInputNameIsInFormAndEmpty()
        {
            // Arrang
            Honeypot.InputNames.Clear();
            Honeypot.CustomRules.Clear();
            var worker = new HoneypotWorker();
            var token = new HoneypotData(HoneypotData.DefaultFieldName);
            var serializer = new HoneypotDataSerializer();
            var form = new NameValueCollection {
                { "FirstName", "Jon" }, {
                    HoneypotData.FormKeyFieldName,
                    serializer.Serialize(token)
                },
                {token.InputNameValue, ""}
            };

            // Act
            bool isBot = worker.IsBot(MvcHelper.GetHttpContext(form));

            // Assert
            Assert.False(isBot);
        }
        public void IsBot_ShouldReturnTrue_WhenValidateRulesReturnsFalse()
        {
            // Arrang
            Honeypot.InputNames.Clear();
            var worker = new HoneypotWorker();
            Honeypot.CustomRules.Clear();

            var token = new HoneypotData(HoneypotData.DefaultFieldName);
            var serializer = new HoneypotDataSerializer();
            var form = new NameValueCollection {
                { "FirstName", "Jon" }, {
                    HoneypotData.FormKeyFieldName,
                    serializer.Serialize(token)
                },
                {token.InputNameValue, ""}
            };
            Func<NameValueCollection, bool> failingRule = (f) => true;
            Honeypot.CustomRules.Add(failingRule);

            // Act
            bool isBot = worker.IsBot(MvcHelper.GetHttpContext(form));

            // Assert
            Assert.True(isBot);
        }
        public void IsBot_ShouldBeTrue_IfTokenInputIsNotInForm()
        {
            // Arrang
            var worker = new HoneypotWorker();
            var form = new NameValueCollection { { "FirstName", "Jon" } };

            // Act
            bool isBot = worker.IsBot(MvcHelper.GetHttpContext(form));

            // Assert
            Assert.True(isBot);
        }