I am writing UnitTest for my ViewModels. In my ViewModel I have:
private IEventAggregator _eventAggregator;
public MyViewModel( IEventAggregator eventAggregator ) {
_eventAggregator = eventAggregator;
_eventAggregator.GetEvent<ResponseParameters>( ).Subscribe( OnResponseParametersSave );
}
private void OnResponseParametersSave (ResponseParameters item ){
var x = item
}
Now in my UnitTest I do the Following:
private IUnityContainer _unityContainer;
private IEventAggregator _eventAggregator;
[TestInitialize]
public async void TestInitialize( ) {
_unityContainer = new UnityContainer( );
_unityContainer.RegisterType<IEventAggregator, EventAggregator>( );
_eventAggregator = _unityContainer.Resolve<EventAggregator>( );
_vm = _unityContainer.Resolve<MyViewModel>( );
await _vm.Load( );
}
[TestMethod]
public void AddingItemDataObjectsShouldThenBeLoaded( ) {
var _item = new MyObject{
Description = "ArticleOne",
Id = 2,
Comment = "Testing event and adding of item to list",
};
_eventAggregator.Publish( new ResponseParameters ( ) { item = _item } );
Assert.IsNotNull(_vm.Data, "The Data object is still null after adding an item" );
}
I have put a breakpoint on the Method OnResponseParametersSave() but it is not triggering when I debug the test.
Does anyone have an Idea what I am doing wrong oe how to publish an event in a UnitTest