public void testSyncObjectsViewModel_HasEntries_IsUpdatedOnFilterChange()
        {
            var filterModel = new FilterModel();
            filterModel.Filter = XeRandom.RandomString();
            this.InitializeTargetViaMef( filterModel );
            bool isCalled = false;
            ((INotifyPropertyChanged)this._target).PropertyChanged += ( s, e ) => isCalled = true;

            filterModel.Filter = XeRandom.RandomString();

            Assert.IsTrue( isCalled );
        }
        public void testSyncObjectsViewModel_HasEntries_IsUpdatedOnFilterChange_RaisesCorrectEvent()
        {
            var filterModel = new FilterModel();
            filterModel.Filter = XeRandom.RandomString();
            this.InitializeTargetViaMef( filterModel );
            string eventName = null;
            ((INotifyPropertyChanged)this._target).PropertyChanged +=
                ( s, e ) => eventName = e.PropertyName;

            filterModel.Filter = XeRandom.RandomString();

            Assert.AreEqual( nameof( this._target.HasEntries ), eventName );
        }
        private void InitializeTargetViaMef( FilterModel filterModel )
        {
            var container = this.CreateMefContainer();
            container.ComposeExportedValue( filterModel );

            container.ComposeParts( this );
        }