public void SimpleMaybeTest()
        {
            dynamic se = new SimpleExpression();
            SimpleExpression result = se
                .Text("http")
                .Maybe("s")
                .Text("://")
                .Generate();

            Assert.AreEqual(@"http(s)?://", result.Expression);
        }
        public void SimpleWordTest()
        {
            dynamic se = new SimpleExpression();
            SimpleExpression result = se
                .Text("ponys")
                .Alphanumerics.And(" ")
                .Text("rainbows")
                .Generate();

            Assert.AreEqual(@"ponys[a-zA-Z0-9 ]*rainbows", result.Expression);
        }
        public void SimpleOr()
        {
            dynamic se = new SimpleExpression();
            SimpleExpression result = se
                .Text("http")
                .Or
                .Text("ftp")
                .Generate();

            Assert.AreEqual("(http|ftp)", result.Expression);
        }
        public void GroupTogetherAsStructuralChecksTest()
        {
            dynamic se = new SimpleExpression();

            SimpleExpression result = se
                .Text("Group").Anything
                .Text("Together").Maybe(".As")
                .Generate();

            Assert.AreEqual(@"Group.*Together(.As)?", result.Expression);

            var regex = new Regex(result.Expression);
            Assert.IsTrue(regex.IsMatch("Group.http.Together.As(\"Something\")"));
        }
        public void SimpleSubExpression()
        {
            dynamic subSe = new SimpleExpression();
            SimpleExpression subResult = subSe
                .Text("DEF")
                .Generate();

            Assert.AreEqual("DEF", subResult.Expression);

            dynamic se = new SimpleExpression();
            SimpleExpression result = se
                .Text("ABC")
                .SubExpression(subSe)
                .Text("GHI")
                .Generate();

            Assert.AreEqual("ABCDEFGHI", result.Expression);
            Assert.IsTrue(result.IsMatch("ABCDEFGHI"));
        }