public void CheckDeltaHash()
        {
            DeltaHashProvider hash = new DeltaHashProvider(DeltaRunnerFactory.CreateDeltaRunner(null, null));

            hash.AddDeltaHash("1", "hash001");
            hash.AddDeltaHash("2", "hash002");
            hash.AddDeltaHash("3", "hash003");
            hash.AddDeltaHash("4", "hash004");
            hash.AddDeltaHash("5", "hash005");

            Assert.AreEqual(true, hash.CheckDeltaHash("1", "hash001"));
            Assert.AreEqual(true, hash.CheckDeltaHash("2", "hash002"));
            Assert.AreEqual(true, hash.CheckDeltaHash("3", "hash003"));
            Assert.AreEqual(true, hash.CheckDeltaHash("4", "hash004"));
            Assert.AreEqual(true, hash.CheckDeltaHash("5", "hash005"));
        }
        public void GetMD5Hash_CheckForMOdifications()
        {
            FileInfo tempFile001 = new FileInfo(Path.Combine(Path.GetTempPath(), "001.sql"));
            StreamWriter sw = new StreamWriter(tempFile001.OpenWrite());
            sw.WriteLine("test test 111");
            sw.Close();

            FileInfo tempFile002 = new FileInfo(Path.Combine(Path.GetTempPath(), "002.sql"));
            StreamWriter sw2 = new StreamWriter(tempFile002.OpenWrite());
            sw2.WriteLine("test test 222");
            sw2.Close();

            DeltaHashProvider hashProvider = new DeltaHashProvider(DeltaRunnerFactory.CreateDeltaRunner(null, null));
            hashProvider.AddDeltaHash(tempFile001.Name, DeltaHashProvider.GetMD5Hash(tempFile001));
            hashProvider.AddDeltaHash(tempFile002.Name, DeltaHashProvider.GetMD5Hash(tempFile002));

            Assert.AreEqual(null, hashProvider.CheckForModifications(new FileInfo[]{tempFile001, tempFile002}));
        }
        public void GetMD5Hash_CheckForMOdifications_WithModificationsToRandomFile()
        {
            DeltaHashProvider hashProvider = new DeltaHashProvider(DeltaRunnerFactory.CreateDeltaRunner(null, null));

            FileInfo[] files = new FileInfo[100];

            Console.Out.WriteLine("Creating [{0}] Temp Deltas", files.Length);

            for (int i = 0; i < files.Length; i++)
            {
                FileInfo tempFile = new FileInfo(Path.Combine(Path.GetTempPath(), string.Format("00{0}.sql", i)));
                using(StreamWriter sw = new StreamWriter(tempFile.OpenWrite()))
                {
                    sw.WriteLine("test test {0}", i);
                    sw.Close();
                    hashProvider.AddDeltaHash(tempFile.Name, DeltaHashProvider.GetMD5Hash(tempFile));
                    files[i] = tempFile;
                }
            }

            Random r = new Random(DateTime.Now.Millisecond);
            int randomFileIndex = r.Next(1,files.Length-1);
            FileInfo randomTempFile = files[randomFileIndex];

            Console.Out.WriteLine("Random Temp File = {0} : {1}", randomFileIndex, randomTempFile.FullName);

            using(StreamWriter sw2 = new StreamWriter(randomTempFile.Open(FileMode.OpenOrCreate, FileAccess.Write)))
            {
                Console.Out.WriteLine("Modifying Delta");
                sw2.WriteLine("changes to this delta!!");
                sw2.Close();
            }

            Assert.AreEqual(randomTempFile, hashProvider.CheckForModifications(files));
        }
        public void GetMD5Hash_CheckForMOdifications_WithModificationsToSecondFile()
        {
            FileInfo tempFile001 = new FileInfo(Path.Combine(Path.GetTempPath(), "001.sql"));
            using(StreamWriter sw = new StreamWriter(tempFile001.OpenWrite()))
            {
                sw.WriteLine("test test 111");
                sw.Close();
            }

            FileInfo tempFile002 = new FileInfo(Path.Combine(Path.GetTempPath(), "002.sql"));
            using(StreamWriter sw2 = new StreamWriter(tempFile002.OpenWrite()))
            {
                sw2.WriteLine("test test 222");
                sw2.Close();
            }

            DeltaHashProvider hashProvider = new DeltaHashProvider(DeltaRunnerFactory.CreateDeltaRunner(null, null));
            hashProvider.AddDeltaHash(tempFile001.Name, DeltaHashProvider.GetMD5Hash(tempFile001));
            hashProvider.AddDeltaHash(tempFile002.Name, DeltaHashProvider.GetMD5Hash(tempFile002));

            using(StreamWriter sw3 = new StreamWriter(tempFile002.Open(FileMode.OpenOrCreate, FileAccess.Write)))
            {
                sw3.WriteLine("test test changes to 222");
                sw3.Close();
            }

            Assert.AreEqual(tempFile002, hashProvider.CheckForModifications(new FileInfo[]{tempFile001, tempFile002}));
        }
        public void GetMD5Hash_CheckForModifications_TimeTracker()
        {
            FileInfo[] files = new FileInfo[3];

            DeltaHashProvider hashProvider = new DeltaHashProvider(DeltaRunnerFactory.CreateDeltaRunner(null, null));

            int i = 0;
            foreach (FileInfo file in new DirectoryInfo("../../TestFiles/FullTest3_TimeTracker/").GetFiles())
            {
                files[i++] = file;
                string hashCode = DeltaHashProvider.GetMD5Hash(file);
                Console.Out.WriteLine("hashCode = {0}", hashCode);
                hashProvider.AddDeltaHash(file.Name, hashCode);
            }

            Assert.AreEqual(null, hashProvider.CheckForModifications(files));
        }