예제 #1
0
 static void CompareFilesAndWriteResult(FileInfo x, FileInfo y, FileInfoEqualityComparer comparer, object locker, string outputFilePath)
 {
     if (comparer.Equals(x, y))
     {
         string outputLine = string.Format("{0}\t{1}", x.FullName, y.FullName);
         Console.WriteLine(outputLine);
         lock (locker)
         {
             File.AppendAllLines(outputFilePath, new string[] { outputLine });
         }
     }
 }
예제 #2
0
        private void ReportOrphanedFiles(List <FileInfo> programFiles)
        {
            FileInfoEqualityComparer comparer = new FileInfoEqualityComparer();
            DirectoryInfo            di       = new DirectoryInfo(project.SrcPath);

            foreach (FileInfo fi in di.EnumerateFiles("Prg_*.xml"))
            {
                if (!programFiles.Contains(fi, comparer))
                {
                    log.WarnFormat("\tDiscovered orphaned program file {0}.", fi.Name);
                }
            }
        }
예제 #3
0
        static void CompareFiles(Tuple <FileInfo, FileInfo>[] comparisons, object locker, string outputFilePath)
        {
            FileInfoEqualityComparer comparer = new FileInfoEqualityComparer();

            int period = 10000;

            for (int i = 0; i < comparisons.Length; ++i)
            {
                CompareFilesAndWriteResult(comparisons[i].Item1, comparisons[i].Item2, comparer, locker, outputFilePath);

                if (i % period == 0)
                {
                    Console.WriteLine("{0} of {1} complete", i, comparisons.Length);
                }
            }
        }
예제 #4
0
        static void CompareSector(FileInfo[] files, int sector, object locker, string outputFilePath)
        {
            FileInfoEqualityComparer comparer = new FileInfoEqualityComparer();

            int half      = files.Length / 2;
            int totalWork = half * half / 2;
            int period    = totalWork / 100;

            int processed = 0;
            IIndexEnumerator2D enumerator = new TriangleSectorIndexEnumerator();

            foreach (Tuple <int, int> indices in enumerator.GetIndices(sector, files.Length))
            {
                CompareFilesAndWriteResult(files[indices.Item1], files[indices.Item2], comparer, locker, outputFilePath);

                processed++;

                if (processed % period == 0)
                {
                    Console.WriteLine("{0} of {1} complete", processed, totalWork);
                }
            }
        }
		public async Task SynchronizeFile_ShouldCallAddSynchronization(
		[Frozen]Mock<ISynchronizedFilesRepository> syncFilesRepository,
		[Frozen]Mock<IFileSynchronizer> synchronizer,
		  SynchronizeFileService sut,
		  SourceFilePath sourceFilePath,
		  TargetFilePath mirroredFilePath
		  )
		{
			//arrange			
			syncFilesRepository.Setup(s => s.GetMirroredFilePath(It.IsAny<CancellationToken>(), sourceFilePath.File))
							   .ReturnsTask(mirroredFilePath.File);
			//act			
			await sut.SynchronizeFile(CancellationToken.None, sourceFilePath.File);
			//assert
			var c = new FileInfoEqualityComparer();
			syncFilesRepository.Verify(
				s => s.AddSynchronization(
					It.IsAny<CancellationToken>(),
					It.Is<FileInfo>(f => c.Equals(f, sourceFilePath.File))
					)
				);
		}