public void DeactivateShouldDeactivateInitialisedModules() { // initialise module b and d _mainEditorVm.CurrentModuleId = "test_module_b"; _moduleB.Verify(i => i.Initialise(It.IsAny <IServiceGetter>()), Times.Once()); _mainEditorVm.CurrentModuleId = "test_module_d"; _moduleD.Verify(i => i.Initialise(It.IsAny <IServiceGetter>()), Times.Once()); // assert that others arent initialised _moduleA.Verify(i => i.Initialise(It.IsAny <IServiceGetter>()), Times.Never()); _moduleC.Verify(i => i.Initialise(It.IsAny <IServiceGetter>()), Times.Never()); // deactivate _mainEditorVm.Deactivate(); _moduleA.Verify(i => i.Deactivate(), Times.Never()); _moduleC.Verify(i => i.Deactivate(), Times.Never()); _moduleB.Verify(i => i.Deactivate(), Times.Once()); _moduleD.Verify(i => i.Deactivate(), Times.Once()); }