コード例 #1
0
        public void Setup()
        {
            _mocker = new AutoMoqer();

            var mockFileSystem = new MockFileSystem();
            _mocker.SetInstance<IFileSystem>(mockFileSystem);

            // GetMock of the abstract class before create to prevent automoq bugs
            _mocker.GetMock<FileSystemWatcherBase>();

            _instance = _mocker.Create<DirectoryWatcher>();

            // Mocked files
            var content = new byte[] {1, 1, 1};
            _expectedFileLength = content.Length;
            _expectedWriteDate = DateTime.Now.ToUniversalTime();

            var nameWithPath = mockFileSystem.Path.Combine(Path, FileName);
            mockFileSystem.AddFile(nameWithPath, new MockFileData(content)
            {
                LastWriteTime = _expectedWriteDate
            });

            _trackedFile = new TrackedFile();
            _mocker.GetMock<ITrackedFileStore>()
                   .Setup(x => x.GetTrackedFileByFullPath(nameWithPath))
                   .Returns(_trackedFile);
        }
コード例 #2
0
        public void AddFileActionToTrackedFile(TrackedFile file, TrackedFileAction action)
        {
            if (file == null)
            {
                file = new TrackedFile();
                _trackedFiles.Add(file);
            }

            file.Actions.Add(action);
        }
コード例 #3
0
        public void Action_Added_When_File_Modified_Date_Is_Newer()
        {
            DateTime writeTime = DateTime.Now.ToUniversalTime();
            var filePath = Path.Combine(BaseDirectory, "abc.def");
            var content = new byte[] { 1, 1, 1 };
            _fileSystem.AddFile(filePath, new MockFileData(content)
            {
                LastWriteTime = writeTime
            });

            var instance = _mocker.Create<DirectoryCrawler>();

            var trackedFile = new TrackedFile
            {
                Actions = new List<TrackedFileAction>(new[]
                {
                    new TrackedFileAction
                    {
                        Path = BaseDirectory,
                        FileName = Path.GetFileName(filePath),
                        Action = FileActions.Added,
                        FileLength = content.Length,
                        FileLastModifiedDateUtc = writeTime.AddDays(-1),
                        EffectiveDateUtc = DateTime.Now.ToUniversalTime()
                    }
                })
            };

            _mocker.GetMock<ITrackedFileStore>()
                   .Setup(x => x.GetTrackedFilesInPath(BaseDirectory))
                   .Returns(new[] { trackedFile });

            instance.CheckDirectoryContents(BaseDirectory);

            _mocker.GetMock<ITrackedFileStore>()
                   .Verify(x => x.AddFileActionToTrackedFile(trackedFile, It.Is<TrackedFileAction>(y => y.Action == FileActions.Modified)),
                            Times.Once);

            _mocker.GetMock<ITrackedFileStore>()
                   .Verify(x => x.AddFileActionToTrackedFile(trackedFile, It.Is<TrackedFileAction>(y => y.FileLastModifiedDateUtc == writeTime)),
                            Times.Once);
        }
コード例 #4
0
        public void No_Action_Added_When_Existing_File_Not_Changed()
        {
            DateTime writeTime = DateTime.Now.ToUniversalTime();
            var filePath = Path.Combine(BaseDirectory, "abc.def");
            var content = new byte[] {1, 1, 1};
            _fileSystem.AddFile(filePath,new MockFileData(content)
            {
                LastWriteTime = writeTime
            });

            var instance = _mocker.Create<DirectoryCrawler>();
            var trackedFile = new TrackedFile
            {
                Actions = new List<TrackedFileAction>(new[]
                {
                    new TrackedFileAction
                    {
                        Path = BaseDirectory,
                        FileName = Path.GetFileName(filePath),
                        Action = FileActions.Added,
                        FileLength = content.Length,
                        FileLastModifiedDateUtc = writeTime,
                        EffectiveDateUtc = DateTime.Now.ToUniversalTime()
                    }
                })
            };

            _mocker.GetMock<ITrackedFileStore>()
                   .Setup(x => x.GetTrackedFilesInPath(BaseDirectory))
                   .Returns(new[] { trackedFile });

            instance.CheckDirectoryContents(BaseDirectory);

            _mocker.GetMock<ITrackedFileStore>()
                   .Verify(x => x.AddFileActionToTrackedFile(It.IsAny<TrackedFile>(), It.IsAny<TrackedFileAction>()), Times.Never);
        }