示例#1
0
        public void Import_CancelWhileAddingDataToModel_ContinuesImportAndLogs()
        {
            // Setup
            string    validFilePath = Path.Combine(testDataPath, "complete.soil");
            const int expectedNrOfStochasticSoilModels = 6;

            var stochasticSoilModelCollection = new TestStochasticSoilModelCollection();

            const string expectedAddDataProgressText = "Adding data...";
            var          messageProvider             = mocks.StrictMock <IImporterMessageProvider>();

            messageProvider.Expect(mp => mp.GetAddDataToModelProgressText())
            .Return(expectedAddDataProgressText);
            var updateStrategy = mocks.StrictMock <IStochasticSoilModelUpdateModelStrategy <IMechanismStochasticSoilModel> >();

            updateStrategy.Expect(u => u.UpdateModelWithImportedData(Arg <IMechanismStochasticSoilModel[]> .List.ContainsAll(stochasticSoilModelCollection),
                                                                     Arg <string> .Is.Equal(validFilePath)));
            var filter = mocks.StrictMock <IStochasticSoilModelMechanismFilter>();

            filter.Expect(f => f.IsValidForFailureMechanism(null))
            .IgnoreArguments()
            .Return(true)
            .Repeat
            .Times(expectedNrOfStochasticSoilModels);
            mocks.ReplayAll();

            var importer = new StochasticSoilModelImporter <IMechanismStochasticSoilModel>(
                stochasticSoilModelCollection,
                validFilePath,
                messageProvider,
                new StochasticSoilModelImporterConfiguration <IMechanismStochasticSoilModel>(
                    transformer,
                    filter,
                    updateStrategy));

            importer.SetProgressChanged((description, step, steps) =>
            {
                if (description.Contains(expectedAddDataProgressText))
                {
                    importer.Cancel();
                }
            });

            var importResult = false;

            // Call
            Action call = () => importResult = importer.Import();

            // Assert
            const string expectedMessage = "Huidige actie was niet meer te annuleren en is daarom voortgezet.";
            Tuple <string, LogLevelConstant> expectedLogMessageAndLevel = Tuple.Create(expectedMessage, LogLevelConstant.Warn);

            TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedLogMessageAndLevel, 2);
            Assert.IsTrue(importResult);
        }
示例#2
0
        public void Import_CancelWhenTransformingSoilModels_CancelsImportAndLogs()
        {
            // Setup
            const string cancelledLogMessage = "Operation Cancelled";
            var          messageProvider     = mocks.StrictMock <IImporterMessageProvider>();

            messageProvider.Expect(mp => mp.GetCancelledLogMessageText("Stochastische ondergrondmodellen"))
            .Return(cancelledLogMessage);
            var updateStrategy = mocks.StrictMock <IStochasticSoilModelUpdateModelStrategy <IMechanismStochasticSoilModel> >();
            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.SetProgressChanged((description, step, steps) =>
            {
                if (description.Contains("Valideren van ingelezen data."))
                {
                    importer.Cancel();
                }
            });

            var importResult = true;

            // Call
            Action call = () => importResult = importer.Import();

            // Assert
            Tuple <string, LogLevelConstant> expectedLogMessage = Tuple.Create(cancelledLogMessage, LogLevelConstant.Info);

            TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedLogMessage, 1);
            Assert.IsFalse(importResult);
        }