public void Test_MoveRight()
        {
            int columnCount = 10;
            int rowCount = 4;
            int numControls = columnCount * rowCount + 1;
            bool hasSpaceBar = true;
            CharGetterViewModel viewModel = new CharGetterViewModel(columnCount, rowCount, numControls, hasSpaceBar);

            for (int i=1; i <= columnCount + 1; i++)
            {
                this.eventAggregator.GetEvent<PubSubEvent<CharGetterEventArgs>>().Publish(new CharGetterEventArgs("CHAR_MOVE_RIGHT"));

                int expected = i % columnCount;
                int actual = viewModel.SelectedControlIndex;
                Assert.IsTrue(expected == actual, "Move Right failed. Expected: " + expected + " Actual: " + actual);
            }
        }
        public void Init()
        {
            iEventAggregator = Event.EventInstance.EventAggregator;

            CharGetterViewModel = new CharGetterViewModel(10, 4, 31, true);

            controls = new Label[] {  char00, char01, char02, char03, char04, char05, char06, char07, char08, char09,
                                      char10, char11, char12, char13, char14, char15, char16, char17, char18, char19,
                                      char20, char21, char22, char23, char24, char25, char26, char27, char28, char29,
                                      char30 };

            SetChars();
            for (int i = 0; i < (controls.Length); i++)
            {
                bool isSelected = (i == selectedControlIndex);
                SetControlSelected(controls[i], isSelected);
            }
        }
        public void Test_MoveDown()
        {
            int columnCount = 10;
            int rowCount = 4;
            int numControls = columnCount * (rowCount - 1) + 1;
            bool hasSpaceBar = true;
            CharGetterViewModel viewModel = new CharGetterViewModel(columnCount, rowCount, numControls, hasSpaceBar);

            this.eventAggregator.GetEvent<PubSubEvent<CharGetterEventArgs>>().Publish(new CharGetterEventArgs("CHAR_MOVE_DOWN"));
            int expected = columnCount;
            int actual = viewModel.SelectedControlIndex;
            Assert.IsTrue(expected == actual, "Move Down failed. Expected: " + expected + " Actual: " + actual);

            //moves to spacebar after 2 downs bc of empty strings in CharSets.charsetABC row 3, col 0
            this.eventAggregator.GetEvent<PubSubEvent<CharGetterEventArgs>>().Publish(new CharGetterEventArgs("CHAR_MOVE_DOWN"));
            expected = numControls - 1;
            actual = viewModel.SelectedControlIndex;
            Assert.IsTrue(expected == actual, "Move Down failed. Expected: " + expected + " Actual: " + actual);
        }
        public void Test_SwitchCharSetRight()
        {
            int columnCount = 10;
            int rowCount = 4;
            int numControls = columnCount * (rowCount - 1) + 1;
            bool hasSpaceBar = true;
            CharGetterViewModel viewModel = new CharGetterViewModel(columnCount, rowCount, numControls, hasSpaceBar);

            for (int i = 1; i <= CharSets.charSets.Length; i++)
            {
                this.eventAggregator.GetEvent<PubSubEvent<CharGetterEventArgs>>().Publish(new CharGetterEventArgs("CHAR_SWITCHCHARSET_RIGHT"));
                int expected = i % CharSets.charSets.Length;
                int actual = viewModel.CurrCharSetIndex;
                Assert.IsTrue(expected == actual, "Switch CharSet Right failed. Expected: " + expected + " Actual: " + actual);
            }
        }