public void SetNarratorOption_CallbackPublishesValues()
        {
            // Setup
            var testProject = TestProject.CreateTestProject(TestProject.TestBook.GAL, TestProject.TestBook.IIIJN);
            var model       = CreateModelWithInitialCustomValues(testProject, 1, 1);
            var dlg         = new MockCastSizePlanningDialog(model);

            // Test - Part 1
            model.NarratorOption = NarratorsOption.NarrationByAuthor;
            // Verify results
            Assert.AreEqual(2, dlg.MaleNarratorsValue);
            Assert.AreEqual(0, dlg.FemaleNarratorsValue);
            VerifyThatModelAndDlgAreInSync(model, dlg);

            // Test - Part 2
            model.NarratorOption = NarratorsOption.SingleNarrator;
            // Verify results
            Assert.AreEqual(1, dlg.MaleNarratorsValue);
            Assert.AreEqual(0, dlg.FemaleNarratorsValue);
            VerifyThatModelAndDlgAreInSync(model, dlg);

            // Test - Part 3
            model.NarratorOption = NarratorsOption.Custom;
            // Verify results
            Assert.AreEqual(2, dlg.MaleNarratorsValue);
            Assert.AreEqual(1, dlg.FemaleNarratorsValue);
            VerifyThatModelAndDlgAreInSync(model, dlg);
        }
        public void SetNarratorOption_NarrationByAuthorForTwoBooksWrittenBySameAuthor_DefaultsToOneNarrator()
        {
            // Setup
            var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV, TestProject.TestBook.IIIJN);
            var model       = CreateModelWithInitialCustomValues(testProject, 2, 0);
            var dlg         = new MockCastSizePlanningDialog(model);

            // Test
            model.NarratorOption = NarratorsOption.NarrationByAuthor;
            // Verify results
            Assert.AreEqual(1, dlg.MaleNarratorsValue);
            Assert.That(dlg.FemaleNarratorsValueChangedEventNeverFired);
        }
        public void SetNarratorOption_NarrationByAuthorForThreeBooksWrittenByNonSpeakingAuthors_DefaultsToOneNarrator()
        {
            // Setup
            var testProject = TestProject.CreateTestProject(TestProject.TestBook.RUT, TestProject.TestBook.ACT, TestProject.TestBook.HEB);
            var model       = CreateModelWithInitialCustomValues(testProject, 2, 1);
            var dlg         = new MockCastSizePlanningDialog(model);

            // Test
            model.NarratorOption = NarratorsOption.NarrationByAuthor;
            // Verify results
            Assert.AreEqual(1, dlg.MaleNarratorsValue);
            Assert.AreEqual(0, dlg.FemaleNarratorsValue);
            VerifyThatModelAndDlgAreInSync(model, dlg);
        }
 private void VerifyThatModelAndDlgAreInSync(CastSizePlanningViewModel model, MockCastSizePlanningDialog dlg)
 {
     Assert.AreEqual(model.MaleNarrators, dlg.MaleNarratorsValue);
     Assert.AreEqual(model.FemaleNarrators, dlg.FemaleNarratorsValue);
 }