Exemplo n.º 1
0
        public void GeneratePoemLineInvalidTypeTest()
        {
            //Arrange
            document.Setup(d => d.GetNextElements(PartOfSpeech.Noun.ToString())).Returns(new List <string>()
            {
                "InvalidEnumTypeWord"
            });

            PoemGen poemGenerator = new PoemGen(
                dictionaryRepository.Object,
                config.Object,
                converter.Object,
                footRandomGenerator.Object,
                nodeRandomGenerator.Object,
                wordRandomGenerator.Object);

            //Act
            poemGenerator.GeneratePoemLine("x-x-x", document.Object);

            //Assert
            dictionaryRepository.Verify(mock => mock.GetWords("x,-", PartOfSpeech.Noun), Times.Exactly(1));
            dictionaryRepository.Verify(mock => mock.GetWords("x,-", PartOfSpeech.Verb), Times.Never);
            footRandomGenerator.Verify(mock => mock.Generate(1, 2), Times.Exactly(1));
            wordRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Never);
            nodeRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(1));
            config.Verify(mock => mock.MaxSyllablesCount, Times.AtLeast(1));
        }
Exemplo n.º 2
0
        public void GeneratePoemLineBreakTest()
        {
            //Arrage
            config.Setup(m => m.MaxSyllablesCount).Returns(3);
            footRandomGenerator.Setup(m => m.Generate(1, 4)).Returns(3);

            string  expectedLine  = "x-xNoun -xVerb";
            PoemGen poemGenerator = new PoemGen(
                dictionaryRepository.Object,
                config.Object,
                converter.Object,
                footRandomGenerator.Object,
                nodeRandomGenerator.Object,
                wordRandomGenerator.Object);

            //Act
            string actualLine = poemGenerator.GeneratePoemLine("x-x-x", document.Object);

            //Assert
            Assert.AreEqual(expectedLine, actualLine);

            dictionaryRepository.Verify(mock => mock.GetWords("x-x", PartOfSpeech.Noun), Times.Exactly(1));
            dictionaryRepository.Verify(mock => mock.GetWords("-x", PartOfSpeech.Verb), Times.Exactly(1));
            footRandomGenerator.Verify(mock => mock.Generate(1, 4), Times.Exactly(2));
            wordRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(2));
            nodeRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(2));
            config.Verify(mock => mock.MaxSyllablesCount, Times.AtLeast(1));
        }
Exemplo n.º 3
0
        public void GeneratePoemLineIntersectWithEndNodesTest()
        {
            //Arrange
            document.Setup(d => d.GetRootElements()).Returns(new List <string>()
            {
                PartOfSpeech.Noun.ToString(), PartOfSpeech.Adjective.ToString()
            });
            document.Setup(d => d.GetAllEndElements()).Returns(new List <string>()
            {
                PartOfSpeech.Noun.ToString()
            });

            string  expectedLine  = "oneSyllableNoun";
            PoemGen poemGenerator = new PoemGen(
                dictionaryRepository.Object,
                config.Object,
                converter.Object,
                footRandomGenerator.Object,
                nodeRandomGenerator.Object,
                wordRandomGenerator.Object);

            //Act
            string actualLine = poemGenerator.GeneratePoemLine("x", document.Object);

            //Assert
            Assert.AreEqual(expectedLine, actualLine);

            dictionaryRepository.Verify(mock => mock.GetWords("x,-", PartOfSpeech.Noun), Times.Exactly(1));
            dictionaryRepository.Verify(mock => mock.GetWords("x,-", PartOfSpeech.Verb), Times.Never);
            footRandomGenerator.Verify(mock => mock.Generate(1, 2), Times.Exactly(1));
            wordRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(1));
            nodeRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(1));
            config.Verify(mock => mock.MaxSyllablesCount, Times.AtLeast(1));
        }
Exemplo n.º 4
0
        public void GeneratePoemLineOneSyllableTest()
        {
            //Arrange
            string  expectedLine  = "oneSyllableNoun oneSyllableVerb oneSyllableNoun oneSyllableVerb oneSyllableNoun";
            PoemGen poemGenerator = new PoemGen(
                dictionaryRepository.Object,
                config.Object,
                converter.Object,
                footRandomGenerator.Object,
                nodeRandomGenerator.Object,
                wordRandomGenerator.Object);

            //Act
            string actualLine = poemGenerator.GeneratePoemLine("x-x-x", document.Object);

            //Assert
            Assert.AreEqual(expectedLine, actualLine);

            dictionaryRepository.Verify(mock => mock.GetWords("x,-", PartOfSpeech.Noun), Times.Exactly(3));
            dictionaryRepository.Verify(mock => mock.GetWords("x,-", PartOfSpeech.Verb), Times.Exactly(2));
            footRandomGenerator.Verify(mock => mock.Generate(1, 2), Times.Exactly(5));
            wordRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(5));
            nodeRandomGenerator.Verify(mock => mock.Generate(0, 1), Times.Exactly(5));
            config.Verify(mock => mock.MaxSyllablesCount, Times.AtLeast(1));
        }
Exemplo n.º 5
0
        public void GeneratePoemLineArgumentNullTest()
        {
            //Arrange
            string expectedLine = String.Empty;

            PoemGen poemGenerator = new PoemGen(
                dictionaryRepository.Object,
                config.Object,
                converter.Object,
                footRandomGenerator.Object,
                nodeRandomGenerator.Object,
                wordRandomGenerator.Object);

            //Act
            string actualLine = poemGenerator.GeneratePoemLine("", null);

            //Assert
            Assert.AreEqual(expectedLine, actualLine);

            config.Verify(mock => mock.MaxSyllablesCount, Times.Never);
            dictionaryRepository.Verify(mock => mock.GetWords(It.IsAny <string>(), It.IsAny <PartOfSpeech>()), Times.Never);
            dictionaryRepository.Verify(mock => mock.GetWords(It.IsAny <string>(), It.IsAny <PartOfSpeech>()), Times.Never);
            footRandomGenerator.Verify(mock => mock.Generate(It.IsAny <int>(), It.IsAny <int>()), Times.Never);
            wordRandomGenerator.Verify(mock => mock.Generate(It.IsAny <int>(), It.IsAny <int>()), Times.Never);
            nodeRandomGenerator.Verify(mock => mock.Generate(It.IsAny <int>(), It.IsAny <int>()), Times.Never);
        }