public void SelectingViewInOutlookBarControlPublishOutlookBarEvent()
        {
            var control = new OutlookBarControl();
            DependencyObject model = new DependencyObject();
            MockEventAggregator eventAggregator = new MockEventAggregator();
            MockOutlookBarEvent outlookBarEvent = new MockOutlookBarEvent();
            eventAggregator.AddMapping<OutlookBarEvent>(outlookBarEvent);
            IRegionAdapter adapter = new OutlookBarControlRegionAdapter(eventAggregator);

            var region = adapter.Initialize(control);
            region.Add(model);

            Assert.IsFalse(outlookBarEvent.PublishCalled);
            control.SelectedItem = model;

            Assert.IsTrue(outlookBarEvent.PublishCalled);
            Assert.IsNull(outlookBarEvent.PublishArgumentPayload);
        }
        public void IfOutlookBarMetadataIsSetSelectingViewInOutlookBarControlPublishOutlookBarEventWithCorrectPayload()
        {
            var control = new OutlookBarControl();
            DependencyObject model = new DependencyObject();
            MockEventAggregator eventAggregator = new MockEventAggregator();
            MockOutlookBarEvent outlookBarEvent = new MockOutlookBarEvent();
            eventAggregator.AddMapping<OutlookBarEvent>(outlookBarEvent);
            IRegionAdapter adapter = new OutlookBarControlRegionAdapter(eventAggregator);

            var region = adapter.Initialize(control);
            OutlookBarControl.SetOutlookBarMetadata(model, new OutlookBarMetadata { Payload = "MyPayload" });
            region.Add(model);

            Assert.IsFalse(outlookBarEvent.PublishCalled);
            Assert.IsNull(outlookBarEvent.PublishArgumentPayload);
            control.SelectedItem = model;

            Assert.IsTrue(outlookBarEvent.PublishCalled);
            Assert.IsNotNull(outlookBarEvent.PublishArgumentPayload);
            Assert.AreEqual("MyPayload", outlookBarEvent.PublishArgumentPayload);
        }