public void ToSingleStringBuilder_DoesNotCallRandomGenerator_WhenCharacterClassEmpty()
        {
            var expression = new CharacterClassExpressionTest(_alphabet, _randomGenerator, _maxInverseLength);

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

            Assert.AreEqual(string.Empty, result);
        }
        public void ToSingleStringBuilder_ReturnsEmptyString_WhenCharacterClassContainsOneCharacter()
        {
            var expression = new CharacterClassExpressionTest(_alphabet, _randomGenerator, _maxInverseLength);

            expression.AddCharacters(new List <string> {
                "U"
            });

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

            Assert.AreEqual("U", result);
            _randomGenerator.Received(0).GetNextInteger(Arg.Any <int>(), Arg.Any <int>());
        }
        public void ToSingleStringBuilder_ReturnsL_WhenRandomGeneratorReturns2AndSecondLetterInListIsL()
        {
            _randomGenerator.GetNextInteger(Arg.Any <int>(), Arg.Any <int>()).Returns(1);
            var expression = new CharacterClassExpressionTest(_alphabet, _randomGenerator, _maxInverseLength);

            expression.AddCharacters(new List <string> {
                "U", "L"
            });

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

            Assert.AreEqual("L", result);
            _randomGenerator.Received(1).GetNextInteger(Arg.Any <int>(), Arg.Any <int>());
        }