public void ControlActivatedTest001_FocusOnCorrectElementWhenActivated()
        {
            Dictionary <RewardType, bool> ExpectedQtyFocused = new Dictionary <RewardType, bool>()
            {
                { RewardType.Card, false },
                { RewardType.Gold, true },
                { RewardType.Pack, false },
                { RewardType.SoulGem, true }
            };

            Dictionary <RewardType, bool> ExpectedCommentsFocused = new Dictionary <RewardType, bool>()
            {
                { RewardType.Card, false },
                { RewardType.Gold, false },
                { RewardType.Pack, true },
                { RewardType.SoulGem, false }
            };

            Mock <IRewardSetViewModel> rewardSetModel = new Mock <IRewardSetViewModel>();


            foreach (RewardType type in Enum.GetValues(typeof(RewardType)))
            {
                this.TestContext.WriteLine("Starting test for " + type);

                AddSingleRewardViewModel model = new AddSingleRewardViewModel();
                model.ParentDataContext = rewardSetModel.Object;
                model.Reward.Type       = type;

                model.ControlActivated(null);

                Assert.AreEqual(ExpectedCommentsFocused[type], model.CommentsFocus, "Comments failed for {0}", type);
                Assert.AreEqual(ExpectedQtyFocused[type], model.QtyFocus, "Qty failed for {0}", type);
            }
        }
        public void SetActiveControlTest001_IsSelectionForGuildVisibleOnlyForGoldAndQuest()
        {
            //if not present in expected array, assume false. Add only true conditions!
            Dictionary <RewardReason, Dictionary <RewardType, bool> > expectedVisibilty = new Dictionary <RewardReason, Dictionary <RewardType, bool> >()
            {
                { RewardReason.Quest, new Dictionary <RewardType, bool>()
                  {
                      { RewardType.Card, false },
                      { RewardType.Gold, true },
                      { RewardType.Pack, false },
                      { RewardType.SoulGem, false }
                  } }
            };

            foreach (RewardReason reason in Enum.GetValues(typeof(RewardReason)))
            {
                foreach (RewardType type in Enum.GetValues(typeof(RewardType)))
                {
                    //if not present in expected array, assume false
                    bool expected;
                    if (expectedVisibilty.Keys.Contains(reason) &&
                        expectedVisibilty[reason].Keys.Contains(type))
                    {
                        expected = expectedVisibilty[reason][type];
                    }
                    else
                    {
                        expected = false;
                    }

                    RewardSetViewModel model = new RewardSetViewModel();
                    model.RewardReason = reason;
                    AddSingleRewardViewModel singleRewardModel = new AddSingleRewardViewModel();
                    singleRewardModel.Reward.Type = type;

                    model.SetActiveControl(singleRewardModel);

                    Assert.AreEqual(expected, singleRewardModel.GuildSelectionVisible, "RewardReason={0}; RewardType={1}", model.RewardReason, singleRewardModel.Reward.Type);
                }
            }
        }