Ejemplo n.º 1
0
        public void AssignAll_FreshlyParsedProject_AssignAllChangesNothing()
        {
            var booksToIncludeInTestProject = Enum.GetValues(typeof(TestProject.TestBook)).Cast <TestProject.TestBook>().ToArray();
            var freshTestProject            = TestProject.CreateTestProject(booksToIncludeInTestProject);
            var testProjectToAssign         = TestProject.CreateTestProject(booksToIncludeInTestProject);

            var characterAssigner = new CharacterAssigner(ControlCharacterVerseData.Singleton);

            characterAssigner.AssignAll(testProjectToAssign.Books.ToList(), false);

            var expected = freshTestProject.Books;
            var actual   = testProjectToAssign.Books;

            Assert.AreEqual(expected.Count, actual.Count);

            for (var i = 0; i < expected.Count; i++)
            {
                var expectedBlocks = expected[i].Blocks;
                var actualBlocks   = actual[i].Blocks;

                // both books contains the same number of blocks
                Assert.AreEqual(expectedBlocks.Count, actualBlocks.Count);

                for (var j = 0; j < expectedBlocks.Count; j++)
                {
                    // both blocks contain the same number of elements
                    Assert.AreEqual(expectedBlocks[j].BlockElements.Count, actualBlocks[j].BlockElements.Count);
                    Assert.AreEqual(expectedBlocks[j].GetText(true), actualBlocks[j].GetText(true));
                }
            }
        }
Ejemplo n.º 2
0
        public void AssignAll_MultiverseQuoteWithTwoCharactersInFirstVerseAndOneCharacterInSecond_AssignedToCharacterRatherThanAmbiguous(ScrVersType vers)
        {
            var versification = new ScrVers(vers);
            var cvInfo        = MockRepository.GenerateMock <ICharacterVerseInfo>();

            StubGetCharactersForSingleVerse(cvInfo, kMATbookNum, 17, 26, versification, new[]
            {
                new CharacterSpeakingMode("Peter (Simon)", null, null, false),
                new CharacterSpeakingMode("Jesus", null, null, false),
            });
            StubGetCharactersForSingleVerse(cvInfo, kMATbookNum, 17, 27, versification, new[]
            {
                new CharacterSpeakingMode("Jesus", null, null, false)
            });

            var bookScript = new BookScript("MAT",
                                            new List <Block>
            {
                new Block
                {
                    ChapterNumber           = 17,
                    InitialStartVerseNumber = 26,
                    BlockElements           = new List <BlockElement>
                    {
                        new ScriptText("This quote starts in verse 26 ")
                    },
                    CharacterId     = "Jesus",
                    MultiBlockQuote = MultiBlockQuote.Start
                },
                new Block
                {
                    ChapterNumber           = 17,
                    InitialStartVerseNumber = 27,
                    BlockElements           = new List <BlockElement>
                    {
                        new Verse("27"),
                        new ScriptText("and continues in verse 27")
                    },
                    CharacterId     = "Jesus",
                    MultiBlockQuote = MultiBlockQuote.Continuation
                }
            },
                                            versification
                                            );

            Assert.AreEqual("Jesus", bookScript.Blocks[0].CharacterId);
            Assert.AreEqual("Jesus", bookScript.Blocks[1].CharacterId);
            Assert.AreEqual(MultiBlockQuote.Start, bookScript.Blocks[0].MultiBlockQuote);
            Assert.AreEqual(MultiBlockQuote.Continuation, bookScript.Blocks[1].MultiBlockQuote);

            var characterAssigner = new CharacterAssigner(cvInfo);

            characterAssigner.AssignAll(new[] { bookScript }, false);

            Assert.AreEqual("Jesus", bookScript.Blocks[0].CharacterId);
            Assert.AreEqual("Jesus", bookScript.Blocks[1].CharacterId);
            Assert.AreEqual(MultiBlockQuote.Start, bookScript.Blocks[0].MultiBlockQuote);
            Assert.AreEqual(MultiBlockQuote.Continuation, bookScript.Blocks[1].MultiBlockQuote);
        }
Ejemplo n.º 3
0
        public void AssignAll_MultiverseQuoteWithTwoCharactersInFirstVerseAndOneCharacterInSecond_AssignedToCharacterRatherThanAmbiguous()
        {
            var cvInfo = MockRepository.GenerateMock <ICharacterVerseInfo>();

            cvInfo.Stub(x => x.GetCharacters("MAT", 17, 26, 0, 26, ScrVers.English)).Return(new[]
            {
                new CharacterVerse(new BCVRef(40, 17, 26), "Peter (Simon)", null, null, false),
                new CharacterVerse(new BCVRef(40, 17, 26), "Jesus", null, null, false),
            });
            cvInfo.Stub(x => x.GetCharacters("MAT", 17, 27, 0, 27, ScrVers.English)).Return(new[]
            {
                new CharacterVerse(new BCVRef(40, 17, 27), "Jesus", null, null, false)
            });

            var bookScript = new BookScript
            {
                BookId = "MAT",
                Blocks = new List <Block>
                {
                    new Block
                    {
                        ChapterNumber           = 17,
                        InitialStartVerseNumber = 26,
                        BlockElements           = new List <BlockElement>
                        {
                            new ScriptText("This quote starts in verse 26 ")
                        },
                        CharacterId     = "Jesus",
                        MultiBlockQuote = MultiBlockQuote.Start
                    },
                    new Block
                    {
                        ChapterNumber           = 17,
                        InitialStartVerseNumber = 27,
                        BlockElements           = new List <BlockElement>
                        {
                            new Verse("27"),
                            new ScriptText("and continues in verse 27")
                        },
                        CharacterId     = "Jesus",
                        MultiBlockQuote = MultiBlockQuote.Continuation
                    }
                }
            };

            Assert.AreEqual("Jesus", bookScript.Blocks[0].CharacterId);
            Assert.AreEqual("Jesus", bookScript.Blocks[1].CharacterId);
            Assert.AreEqual(MultiBlockQuote.Start, bookScript.Blocks[0].MultiBlockQuote);
            Assert.AreEqual(MultiBlockQuote.Continuation, bookScript.Blocks[1].MultiBlockQuote);

            var characterAssigner = new CharacterAssigner(cvInfo);

            characterAssigner.AssignAll(new[] { bookScript }, ScrVers.English, false);

            Assert.AreEqual("Jesus", bookScript.Blocks[0].CharacterId);
            Assert.AreEqual("Jesus", bookScript.Blocks[1].CharacterId);
            Assert.AreEqual(MultiBlockQuote.Start, bookScript.Blocks[0].MultiBlockQuote);
            Assert.AreEqual(MultiBlockQuote.Continuation, bookScript.Blocks[1].MultiBlockQuote);
        }