Index: Core/Common/test/Core.Common.Base.Test/Service/FileImportActivityTest.cs =================================================================== diff -u -r42caf089349c503f7f5ac23aabb0dc048cb131bf -rf71387a0c8af15b877238f711d8e9acffa1b625f --- Core/Common/test/Core.Common.Base.Test/Service/FileImportActivityTest.cs (.../FileImportActivityTest.cs) (revision 42caf089349c503f7f5ac23aabb0dc048cb131bf) +++ Core/Common/test/Core.Common.Base.Test/Service/FileImportActivityTest.cs (.../FileImportActivityTest.cs) (revision f71387a0c8af15b877238f711d8e9acffa1b625f) @@ -13,6 +13,7 @@ [ExpectedException(typeof(ArgumentException), ExpectedMessage = "fileImporter")] public void Constructor_ImporterEqualsNull_ArgumentExceptionIsThrown() { + // Setup / Call / Assert new FileImportActivity(null, new object(), new[] { "" @@ -23,11 +24,13 @@ [ExpectedException(typeof(ArgumentException), ExpectedMessage = "target")] public void Constructor_TargetEqualsNull_ArgumentExceptionIsThrown() { + // Setup var mocks = new MockRepository(); var fileImporter = mocks.Stub(); mocks.ReplayAll(); + // Call / Assert new FileImportActivity(fileImporter, null, new[] { "" @@ -38,24 +41,161 @@ [ExpectedException(typeof(ArgumentException), ExpectedMessage = "files")] public void Constructor_FilesEqualsNull_ArgumentExceptionIsThrown() { + // Setup var mocks = new MockRepository(); var fileImporter = mocks.Stub(); mocks.ReplayAll(); + // Call / Assert new FileImportActivity(fileImporter, new object(), null); } [Test] [ExpectedException(typeof(ArgumentException), ExpectedMessage = "files")] public void Constructor_FilesEmpty_ArgumentExceptionIsThrown() { + // Setup var mocks = new MockRepository(); var fileImporter = mocks.Stub(); mocks.ReplayAll(); + // Call / Assert new FileImportActivity(fileImporter, new object(), new string[0]); } + + [Test] + public void Name_FileImportActivity_NameShouldBeSameAsImporterName() + { + // Setup + var mocks = new MockRepository(); + var fileImporter = mocks.Stub(); + + fileImporter.Expect(i => i.Name).Return("Importer name").Repeat.Any(); + + mocks.ReplayAll(); + + // Call + var fileImportActivity = new FileImportActivity(fileImporter, new object(), new[] + { + "" + }); + + // Assert + Assert.AreEqual(fileImporter.Name, fileImportActivity.Name); + } + + [Test] + public void Run_FileImportActivityForTwoFiles_AllProvidedFilesShouldBeImported() + { + // Setup + var mocks = new MockRepository(); + var fileImporter = mocks.Stub(); + var target = new object(); + + fileImporter.Expect(x => x.ProgressChanged = null).IgnoreArguments().Repeat.Any(); + fileImporter.Expect(i => i.Import(target, "file1")).Return(true).Repeat.Once(); + fileImporter.Expect(i => i.Import(target, "file2")).Return(true).Repeat.Once(); + + mocks.ReplayAll(); + + var fileImportActivity = new FileImportActivity(fileImporter, target, new[] + { + "file1", + "file2" + }); + + // Call + fileImportActivity.Run(); + + // Assert + mocks.VerifyAll(); + } + + [Test] + public void Cancel_FileImportActivity_CancelsImporter() + { + // Setup + var mocks = new MockRepository(); + var fileImporter = mocks.Stub(); + var target = new object(); + + fileImporter.Expect(x => x.ProgressChanged = null).IgnoreArguments().Repeat.Any(); + fileImporter.Expect(x => x.Cancel()).IgnoreArguments().Repeat.Any(); + + mocks.ReplayAll(); + + var fileImportActivity = new FileImportActivity(fileImporter, target, new[] + { + "file1", + "file2" + }); + + // Call + fileImportActivity.Cancel(); + + // Assert + mocks.VerifyAll(); + } + + [Test] + public void Run_CancelledFileImportActivityForTwoFiles_NoImportsShouldBePerformed() + { + // Setup + var mocks = new MockRepository(); + var fileImporter = mocks.Stub(); + var target = new object(); + + fileImporter.Expect(x => x.ProgressChanged = null).IgnoreArguments().Repeat.Any(); + fileImporter.Expect(x => x.Cancel()).IgnoreArguments().Repeat.Any(); + + mocks.ReplayAll(); + + var fileImportActivity = new FileImportActivity(fileImporter, target, new[] + { + "file1", + "file2" + }); + + fileImportActivity.Cancel(); + + // Call + fileImportActivity.Run(); + + // Assert + mocks.VerifyAll(); + } + + [Test] + public void Run_CancelledAndRanFileImportActivityForTwoFiles_AllProvidedFilesShouldBeImported() + { + // Setup + var mocks = new MockRepository(); + var fileImporter = mocks.Stub(); + var target = new object(); + + fileImporter.Expect(x => x.ProgressChanged = null).IgnoreArguments().Repeat.Any(); + fileImporter.Expect(i => i.Import(target, "file1")).Return(true).Repeat.Once(); + fileImporter.Expect(i => i.Import(target, "file2")).Return(true).Repeat.Once(); + fileImporter.Expect(x => x.Cancel()).IgnoreArguments().Repeat.Any(); + + mocks.ReplayAll(); + + var fileImportActivity = new FileImportActivity(fileImporter, target, new[] + { + "file1", + "file2" + }); + + fileImportActivity.Cancel(); + fileImportActivity.Run(); + + // Call + fileImportActivity.Run(); // Reuse the activity + + // Assert + mocks.VerifyAll(); + } } }