public void DialogManagerViewModelHelper_Direct_Property_Injection_Without_View_Does_Nothing() { var view = (FrameworkElement)null; var viewModel = new DialogManagerViewModelWithSetableProperty(); var dialogAssemblyViewProvider = Mock.Of <DialogAssemblyViewProvider>(); var viewProvider = Mock.Of <IViewProvider>(); _ = new DialogManager(dialogAssemblyViewProvider, viewProvider); // Act Mock.Get(viewProvider).Raise(provider => provider.ViewLoaded += null, new ViewLoadedEventArgs(viewModel, view)); // Assert Assert.Null(viewModel.DialogManager); }
public void DialogManagerViewModelHelper_Direct_Property_Injection_Succeeds() { // Arrange var view = new Window(); var viewModel = new DialogManagerViewModelWithSetableProperty(); var dialogAssemblyViewProvider = Mock.Of <DialogAssemblyViewProvider>(); var viewProvider = Mock.Of <IViewProvider>(); _ = new DialogManager(dialogAssemblyViewProvider, viewProvider); // Act Mock.Get(viewProvider).Raise(provider => provider.ViewLoaded += null, new ViewLoadedEventArgs(viewModel, view)); // Assert Assert.NotNull(viewModel.DialogManager); Assert.That(viewModel.DialogManager.IsInitialized, Is.False); view.RaiseEvent(new RoutedEventArgs(FrameworkElement.LoadedEvent)); Assert.That(viewModel.DialogManager.IsInitialized, Is.True); }
public void DialogManagerViewModelHelper_Just_Initializes_Existing_DialogManager() { var view = new Window(); var viewModel = new DialogManagerViewModelWithSetableProperty(); var dialogAssemblyViewProvider = Mock.Of <DialogAssemblyViewProvider>(); var viewProvider = Mock.Of <IViewProvider>(); var dialogManager = new DialogManager(dialogAssemblyViewProvider, viewProvider); viewModel.DialogManager = dialogManager; //! Pre-Initialize the property. // Act Mock.Get(viewProvider).Raise(provider => provider.ViewLoaded += null, new ViewLoadedEventArgs(viewModel, view)); // Assert Assert.NotNull(viewModel.DialogManager); Assert.That(viewModel.DialogManager, Is.EqualTo(dialogManager)); // The DialogManager property must still be the same instance, since the helper should only initialize it. Assert.That(viewModel.DialogManager.IsInitialized, Is.False); view.RaiseEvent(new RoutedEventArgs(FrameworkElement.LoadedEvent)); // Make this view already loaded. Assert.That(viewModel.DialogManager.IsInitialized, Is.True); }