示例#1
0
        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
        }