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()); }
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); }
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); }
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); }
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); }