public void WatchedDirectoryProcessAvailableImagesWhenImageHasNotBeenUploadedAndModeIsUploadOnlyShouldUploadFile()
        {
            // Arrange
            var testBundle = new WatchedDirectoryTestBundle();
            var watchDirectory = new WatchDirectory {FileExtensions = "abc", Mode = OperationMode.UploadOnly};
            var mockWatchedFileRepository = new Mock<IWatchedFileRepository>();
            var mockWatchedFile = new Mock<IWatchedFile>();
            var mockServer = new Mock<ImageServer>();

            testBundle.MockDirectoryScanner.Setup(x => x.GetAvailableImages(mockWatchedFileRepository.Object, null, It.IsAny<IList<string>>(), false, null))
                      .Returns(new List<IWatchedFile> {mockWatchedFile.Object});

            testBundle.WatchedDirectory.Configure(watchDirectory);

            // Act
            testBundle.WatchedDirectory.ProcessAvailableImages(mockWatchedFileRepository.Object, mockServer.Object);

            // Assert
            mockWatchedFileRepository.Verify(x => x.LoadFileForPath(It.IsAny<string>()), Times.Never);
            mockWatchedFileRepository.Verify(x => x.CreateNew(), Times.Never);
            mockWatchedFileRepository.Verify(x => x.Save(mockWatchedFile.Object), Times.Once);
            mockWatchedFile.VerifySet(x => x.UploadSuccessful = false, Times.Never);
            mockWatchedFile.Verify(x => x.SendToServer(mockServer.Object), Times.Once);
            mockWatchedFile.Verify(x => x.SortFile(), Times.Never);
            mockWatchedFile.Verify(x => x.RemoveFromDisk(), Times.Never);
        }
 public WatchDirectoryTestBundle()
 {
     MockEnvironment = new Mock<IEnvironment>();
     WatchDirectory = new WatchDirectory(MockEnvironment.Object);
 }
        public void WatchedDirectoryProcessAvailableImagesWhenImageIsInBaseDirectoryAndModeIsUploadAndClearShouldThrowNotImplementedException()
        {
            // Arrange
            var testBundle = new WatchedDirectoryTestBundle();
            var watchDirectory = new WatchDirectory {FileExtensions = "abc", Mode = OperationMode.UploadAndClear};
            var mockWatchedFileRepository = new Mock<IWatchedFileRepository>();
            var mockWatchedFile = new Mock<IWatchedFile>();
            var mockLog = new Mock<ILog>();
            NotImplementedException thrownException = null;
            var mockServer = new Mock<ImageServer>();

            testBundle.MockDirectoryScanner.Setup(x => x.GetAvailableImages(mockWatchedFileRepository.Object, null, It.IsAny<IList<string>>(), false, null))
                                           .Returns(new List<IWatchedFile> {mockWatchedFile.Object});

            testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object);

            mockWatchedFile.Setup(x => x.IsInBaseDirectory(null)).Returns(true);

            testBundle.WatchedDirectory.Configure(watchDirectory);

            // Act
            try
            {
                testBundle.WatchedDirectory.ProcessAvailableImages(mockWatchedFileRepository.Object, mockServer.Object);
            }
            catch (NotImplementedException ex)
            {
                thrownException = ex;
            }

            // Assert
            mockWatchedFileRepository.Verify(x => x.LoadFileForPath(It.IsAny<string>()), Times.Never);
            mockWatchedFileRepository.Verify(x => x.CreateNew(), Times.Never);
            mockWatchedFileRepository.Verify(x => x.Save(mockWatchedFile.Object), Times.Never);
            mockWatchedFile.VerifySet(x => x.UploadSuccessful = false, Times.Never);
            mockWatchedFile.Verify(x => x.SendToServer(mockServer.Object), Times.Never);
            mockWatchedFile.Verify(x => x.SortFile(), Times.Never);
            mockWatchedFile.Verify(x => x.RemoveFromDisk(), Times.Never);
            Assert.IsNotNull(thrownException);
        }
 public WatchDirectory ProvideDefaultWatchDirectory()
 {
     var wd = new WatchDirectory(_environment);
     wd.PopulateWithDefaults();
     return wd;
 }