From 4b0fe657762119a95cc59d75b8d73b9f0a00ac4a Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Thu, 4 Feb 2021 00:06:19 -0500 Subject: [PATCH] added tests for RegexParser --- .../Tools/ModerationRegexParserTests.cs | 72 ++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/src/Tests/BirdsiteLive.Domain.Tests/Tools/ModerationRegexParserTests.cs b/src/Tests/BirdsiteLive.Domain.Tests/Tools/ModerationRegexParserTests.cs index fce5d71..2d780cf 100644 --- a/src/Tests/BirdsiteLive.Domain.Tests/Tools/ModerationRegexParserTests.cs +++ b/src/Tests/BirdsiteLive.Domain.Tests/Tools/ModerationRegexParserTests.cs @@ -1,10 +1,78 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; +using BirdsiteLive.Domain.Repository; +using BirdsiteLive.Domain.Tools; +using Microsoft.VisualStudio.TestTools.UnitTesting; namespace BirdsiteLive.Domain.Tests.Tools { [TestClass] public class ModerationRegexParserTests { - + [TestMethod] + public void Parse_TwitterAccount_Simple_Test() + { + #region Stubs + var pattern = "handle"; + #endregion + + var regex = ModerationRegexParser.Parse(ModerationEntityTypeEnum.TwitterAccount, pattern); + + #region Validations + Assert.IsTrue(regex.IsMatch(pattern)); + Assert.IsFalse(regex.IsMatch("handles")); + Assert.IsFalse(regex.IsMatch("andle")); + #endregion + } + + [TestMethod] + public void Parse_Follower_Handle_Test() + { + #region Stubs + var pattern = "@handle@domain.ext"; + #endregion + + var regex = ModerationRegexParser.Parse(ModerationEntityTypeEnum.Follower, pattern); + + #region Validations + Assert.IsTrue(regex.IsMatch(pattern)); + Assert.IsFalse(regex.IsMatch("@handle2@domain.ext")); + Assert.IsFalse(regex.IsMatch("@handle@seb.domain.ext")); + #endregion + } + + [TestMethod] + public void Parse_Follower_Domain_Test() + { + #region Stubs + var pattern = "domain.ext"; + #endregion + + var regex = ModerationRegexParser.Parse(ModerationEntityTypeEnum.Follower, pattern); + + #region Validations + Assert.IsTrue(regex.IsMatch("@handle@domain.ext")); + Assert.IsTrue(regex.IsMatch("@handle2@domain.ext")); + Assert.IsFalse(regex.IsMatch("@handle2@domain2.ext")); + Assert.IsFalse(regex.IsMatch("@handle@seb.domain.ext")); + #endregion + } + + [TestMethod] + public void Parse_Follower_SubDomains_Test() + { + #region Stubs + var pattern = "*.domain.ext"; + #endregion + + var regex = ModerationRegexParser.Parse(ModerationEntityTypeEnum.Follower, pattern); + + #region Validations + Assert.IsTrue(regex.IsMatch("@handle2@sub.domain.ext")); + Assert.IsTrue(regex.IsMatch("@han@sub3.domain.ext")); + Assert.IsFalse(regex.IsMatch("@handle@domain.ext")); + Assert.IsFalse(regex.IsMatch("@handle2@.domain.ext")); + Assert.IsFalse(regex.IsMatch("@handle2@domain2.ext")); + Assert.IsFalse(regex.IsMatch("@handle@seb.domain2.ext")); + #endregion + } } } \ No newline at end of file