public void DoPostImport_AfterImport_ObserversNotified() { // Setup var observableA = mocks.StrictMock <IObservable>(); observableA.Expect(o => o.NotifyObservers()); var observableB = mocks.StrictMock <IObservable>(); observableB.Expect(o => o.NotifyObservers()); var messageProvider = mocks.StrictMock <IImporterMessageProvider>(); messageProvider.Expect(mp => mp.GetAddDataToModelProgressText()).Return(""); var updateStrategy = mocks.StrictMock <IStochasticSoilModelUpdateModelStrategy <IMechanismStochasticSoilModel> >(); updateStrategy.Expect(u => u.UpdateModelWithImportedData(null, null)) .IgnoreArguments() .Return(new[] { observableA, observableB }); var filter = mocks.StrictMock <IStochasticSoilModelMechanismFilter>(); filter.Expect(f => f.IsValidForFailureMechanism(null)) .IgnoreArguments() .Return(true) .Repeat .AtLeastOnce(); mocks.ReplayAll(); string validFilePath = Path.Combine(testDataPath, "complete.soil"); var importer = new StochasticSoilModelImporter <IMechanismStochasticSoilModel>( new TestStochasticSoilModelCollection(), validFilePath, messageProvider, new StochasticSoilModelImporterConfiguration <IMechanismStochasticSoilModel>( transformer, filter, updateStrategy)); importer.Import(); // Call importer.DoPostImport(); // Asserts done in the TearDown method }