예제 #1
0
        public void Save_SetsModelContents()
        {
            var testConfig = new DictionaryHomographConfiguration
            {
                HomographNumberBefore = true,
                ShowHwNumInCrossRef   = false,
                ShowSenseNumber       = false,
            };
            var view = new TestHeadwordNumbersView {
                HomographBefore = false, ShowHomograph = true, ShowSenseNumber = true
            };
            var model = new DictionaryConfigurationModel {
                HomographConfiguration = testConfig
            };
            // ReSharper disable once UnusedVariable
            var testController = new HeadwordNumbersController(view, model, Cache);

            view.Show();
            view.HomographBefore         = false;
            view.ShowHomographOnCrossRef = true;
            view.ShowSenseNumber         = true;
            // SUT
            testController.Save();
            // Verify save in Dictionary Config
            Assert.IsFalse(model.HomographConfiguration.HomographNumberBefore);
            Assert.IsTrue(model.HomographConfiguration.ShowHwNumInCrossRef);
            Assert.IsTrue(model.HomographConfiguration.ShowSenseNumber);
        }
예제 #2
0
        public void ConstructorSetsDescriptionTextInView_Reversal()
        {
            var view  = new TestHeadwordNumbersView();
            var model = new DictionaryConfigurationModel {
                WritingSystem = "en", Label = "PrincePauper"
            };
            // ReSharper disable once UnusedVariable
            // SUT
            var testController = new HeadwordNumbersController(view, model, Cache);

            Assert.That(view.Description, Is.StringContaining("Reversal Index"), "Description should say current 'Reversal Index' configuration");
            Assert.That(view.Description, Is.StringContaining("PrincePauper"), "Description should include the current configuration label");
        }
예제 #3
0
        public void ConstructorSetsDefaultWritingSystemInView()
        {
            var view  = new TestHeadwordNumbersView();
            var model = new DictionaryConfigurationModel {
                HomographConfiguration = new DictionaryHomographConfiguration {
                    HomographWritingSystem = "pt"
                }
            };
            // SUT
            var testController = new HeadwordNumbersController(view, model, Cache);

            Assert.That(view.HomographWritingSystem, Is.StringContaining("English"),
                        "The default writing system 'English' should be in the view when given HomographWritingSystem is missing.");
        }
예제 #4
0
        public void Ok_Disabled_WhenNotAllTenNumbersSet()
        {
            // Test enabled on initial setup
            var view       = new TestHeadwordNumbersView();
            var model      = new DictionaryConfigurationModel();
            var controller = new HeadwordNumbersController(view, model, Cache);

            view.OkButtonEnabled = true;
            view.CustomDigits    = new List <string> {
                "1"
            };
            view.TriggerCustomDigitsChanged();
            Assert.IsFalse(view.OkButtonEnabled, "Ok button still enabled after event is fired");
        }
예제 #5
0
        public void ConstructorSetsWritingSystemInView()
        {
            var view  = new TestHeadwordNumbersView();
            var model = new DictionaryConfigurationModel {
                HomographConfiguration = new DictionaryHomographConfiguration {
                    HomographWritingSystem = "fr"
                }
            };
            // ReSharper disable once UnusedVariable
            // SUT
            var testController = new HeadwordNumbersController(view, model, Cache);

            Assert.That(view.HomographWritingSystem, Is.StringContaining("French"),
                        "The writing system in the view should match the model (but show the pretty name).");
        }
예제 #6
0
        public void ConstructorSetsCustomHeadwordNumbersInView()
        {
            var view  = new TestHeadwordNumbersView();
            var model = new DictionaryConfigurationModel
            {
                HomographConfiguration = new DictionaryHomographConfiguration
                {
                    CustomHomographNumbers = "a;b;c;d;e;f;g;h;i;j;k"
                }
            };
            // ReSharper disable once UnusedVariable
            // SUT
            var testController = new HeadwordNumbersController(view, model, Cache);

            CollectionAssert.AreEqual(model.HomographConfiguration.CustomHomographNumberList, view.CustomDigits);
        }
예제 #7
0
        public void Ok_Enabled_WithNoCustomNumbers()
        {
            // Test enabled on initial setup
            var view = new TestHeadwordNumbersView {
                OkButtonEnabled = false
            };
            var model      = new DictionaryConfigurationModel();
            var controller = new HeadwordNumbersController(view, model, Cache);

            // verify ok button enabled on setup with no numbers
            Assert.IsTrue(view.OkButtonEnabled, "Ok not enabled by controller constructor");
            view.OkButtonEnabled = false;
            // verify ok button enabled when event is triggered and there are no custom numbers
            view.TriggerCustomDigitsChanged();
            Assert.IsTrue(view.OkButtonEnabled, "Ok button not enabled when event is fired");
        }
예제 #8
0
        public void SetsViewDataFromDefaultsIfNoHomographConfigurationInConfigurationModel()
        {
            var hc   = new HomographConfiguration();
            var view = new TestHeadwordNumbersView
            {
                HomographBefore = !hc.HomographNumberBefore,
                ShowHomograph   = !hc.ShowHomographNumber(HomographConfiguration.HeadwordVariant.DictionaryCrossRef),
                ShowSenseNumber = !hc.ShowSenseNumberRef
            };
            var model = new DictionaryConfigurationModel();
            // ReSharper disable once UnusedVariable
            var testController = new HeadwordNumbersController(view, model, Cache);

            view.Show();
            Assert.AreEqual(view.HomographBefore, hc.HomographNumberBefore);
            Assert.AreEqual(view.ShowHomographOnCrossRef, hc.ShowHomographNumber(HomographConfiguration.HeadwordVariant.DictionaryCrossRef));
            Assert.AreEqual(view.ShowSenseNumber, hc.ShowSenseNumberRef);
        }
예제 #9
0
        public void ViewReflectsModelContents_Reversal()
        {
            var testConfig = new DictionaryHomographConfiguration
            {
                HomographNumberBefore       = true,
                ShowHwNumInReversalCrossRef = false,
                ShowSenseNumberReversal     = false
            };
            var view  = new TestHeadwordNumbersView();
            var model = new DictionaryConfigurationModel {
                WritingSystem = "en", HomographConfiguration = testConfig
            };
            // ReSharper disable once UnusedVariable
            var testController = new HeadwordNumbersController(view, model, Cache);

            view.Show();
            Assert.IsTrue(view.HomographBefore);
            Assert.IsFalse(view.ShowHomographOnCrossRef);
            Assert.IsFalse(view.ShowSenseNumber);
        }
예제 #10
0
        public void Ok_Enabled_WithAllTenNumbers()
        {
            // Test enabled on initial setup
            var view = new TestHeadwordNumbersView {
                OkButtonEnabled = false
            };
            var model = new DictionaryConfigurationModel
            {
                HomographConfiguration = new DictionaryHomographConfiguration
                {
                    CustomHomographNumbers = "a,b,c,d,e,f,g,h,i,j"
                }
            };
            var controller = new HeadwordNumbersController(view, model, Cache);

            // verify ok button enabled on setup with 10 numbers
            Assert.IsTrue(view.OkButtonEnabled, "Ok not enabled by controller constructor");
            view.OkButtonEnabled = false;
            // verify ok button enabled when event is triggered and there are 10 custom numbers
            view.TriggerCustomDigitsChanged();
            Assert.IsTrue(view.OkButtonEnabled, "Ok button not enabled when event is fired");
        }