public void GuardClauses() { // Arrange var serializer = new HoneypotDataSerializer(); // Act & assert Assert.Throws<ArgumentNullException>(() => serializer.Serialize(null)); Assert.Throws<ArgumentException>(() => serializer.Deserialize(null)); Assert.Throws<ArgumentException>(() => serializer.Deserialize(String.Empty)); Assert.Throws<InvalidOperationException>(() => serializer.Deserialize("Corrupted Base-64 Value")); }
public void CanRoundTripData() { // Arrange var serializer = new HoneypotDataSerializer { Decoder = value => Convert.FromBase64String(value), Encoder = bytes => Convert.ToBase64String(bytes) }; var input = new HoneypotData("input-name"); // Act HoneypotData output = serializer.Deserialize(serializer.Serialize(input)); // Assert Assert.NotNull(output); Assert.Equal(input.InputNameValue, output.InputNameValue); Assert.Equal(input.Key, output.Key); Assert.Equal(input.CreationDate, output.CreationDate); }
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); }