Ejemplo n.º 1
0
        public void Expand_ReturnsListContaining3ElementsOfLength4_WhenOneExpandableExpressionWith3PossibleSubexpressionsIsContained()
        {
            var mockA = new StringBuilderMock(ToCharacterClassList("a"));
            var mock1 = new StringBuilderMock(ToCharacterClassList("1"));
            var mock2 = new StringBuilderMock(ToCharacterClassList("2"));
            var mock3 = new StringBuilderMock(ToCharacterClassList("3"));

            var simpleExpression = Substitute.For <IExpression>();

            simpleExpression.RepeatRange = new IntegerInterval(1);

            simpleExpression.Expand().Returns(new List <IStringBuilder> {
                mockA
            });

            var expandableExpression = Substitute.For <IExpression>();

            expandableExpression.RepeatRange = new IntegerInterval(1);
            expandableExpression.Expand().Returns(new List <IStringBuilder> {
                mock1, mock2, mock3
            });

            var concat = new ConcatenationExpression(_random);

            concat.SetExpansionLength(4);
            concat.Append(simpleExpression).Append(expandableExpression).Append(simpleExpression).Append(simpleExpression);

            var result = concat.Expand();

            Assert.AreEqual(3, result.Count);
            Assert.AreEqual("a1aa", result[0].GenerateString());
            Assert.AreEqual("a2aa", result[1].GenerateString());
            Assert.AreEqual("a3aa", result[2].GenerateString());
        }
Ejemplo n.º 2
0
        public void ToSingleRegexString_ReturnsUlrike_WhenConcatExpressionContainsOneElementReturningFranziska()
        {
            var mock = new StringBuilderMock(ToCharacterClassList("Ulrike"));

            _expression.ToStringBuilder().Returns(mock);
            var concatExpression = new ConcatenationExpressionTest(_randomGenerator);

            concatExpression.Append(_expression);

            var result = concatExpression.ToSingleStringBuilder().GenerateString();

            Assert.AreEqual("Ulrike", result);
        }
Ejemplo n.º 3
0
        public void ConcatWith_ReturnsBuilderGeneratingLength2Strings_WhenEachbuilderGeneratesLength1Strings()
        {
            var builder1 = new StringBuilder(new List <CharacterClassExpression> {
                _charClass1
            });
            var builder2 = new StringBuilderMock(new List <CharacterClassExpression> {
                _charClass2
            });

            var result = builder1.ConcatWith(builder2).GenerateString();

            Assert.AreEqual(2, result.Length);
            Assert.AreEqual("ab", result);
        }
Ejemplo n.º 4
0
        public void IntersectWith_ReturnsLetterC_WhenIntersectionIsBCAndRandomReturns1()
        {
            _random.GetNextInteger(Arg.Any <int>(), Arg.Any <int>()).Returns(1);
            var builder1 = new StringBuilder(new List <CharacterClassExpression> {
                _charClass1
            });
            var builder2 = new StringBuilderMock(new List <CharacterClassExpression> {
                _charClass2
            });

            var stringBuilder = builder1.IntersectWith(builder2);
            var result        = stringBuilder.GenerateString();

            Assert.AreEqual(1, result.Length);
            Assert.AreEqual("c", result);
        }
Ejemplo n.º 5
0
        public void ToSingleRegexString_ReturnsJaFran_WhenConcatExpressionContainsTwoElementReturningFranziskaAndJ()
        {
            var mock1            = new StringBuilderMock(ToCharacterClassList("Fran"));
            var mock2            = new StringBuilderMock(ToCharacterClassList("Ja"));
            var secondExpression = Substitute.For <IExpression>();

            secondExpression.ToStringBuilder().Returns(mock1);
            _expression.ToStringBuilder().Returns(mock2);
            var concatExpression = new ConcatenationExpressionTest(_randomGenerator);

            concatExpression.Append(_expression).Append(secondExpression);

            var result = concatExpression.ToSingleStringBuilder().GenerateString();

            Assert.AreEqual("JaFran", result);
        }