public void VerifyChecksumsDirectoryDoesNotExist()
        {
            Engine engine = CreateEngine("foo");

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, false);

            Assert.IsFalse(result.Success);
        }
        public void VerifyChecksumsSHA256()
        {
            Engine engine = CreateEngine("sha256", checksumType: ChecksumType.SHA256);

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, false);

            Assert.IsTrue(result.Success);
            Assert.AreEqual(0, result.BadFiles.Count);
        }
        public void VerifyChecksumsSimpleFailWrongChecksumType()
        {
            Engine engine = CreateEngine("simple", checksumType: ChecksumType.SHA1);

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, false);

            Assert.IsFalse(result.Success);
            Assert.AreEqual(2, result.BadFiles.Count);
        }
        public void VerifyChecksumsSimple()
        {
            Engine engine = CreateEngine("simple");

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, false);

            Assert.IsTrue(result.Success);
            Assert.AreEqual(0, result.BadFiles.Count);
        }
        public void VerifyChecksumsMatchPattern()
        {
            Engine engine = CreateEngine("match", matchPattern: "*.foo");

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, true);

            Assert.IsTrue(result.Success);
            Assert.AreEqual(0, result.BadFiles.Count);
        }
        public void VerifyChecksumsRecursive()
        {
            Engine engine = CreateEngine("subdirs", matchType: MatchType.Directory);

            engine.ScanFiles(true);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, true);

            Assert.IsTrue(result.Success);
            Assert.AreEqual(0, result.BadFiles.Count);
        }
        public void VerifyChecksumsNewFiles()
        {
            Engine engine = CreateEngine("newfiles");

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, true);

            Assert.IsFalse(result.Success);
            Assert.AreEqual(3, result.BadFiles.Count);
            Assert.AreEqual("1", result.BadFiles[0].FileName);
            Assert.AreEqual("2", result.BadFiles[1].FileName);
            Assert.AreEqual("3", result.BadFiles[2].FileName);
        }
        public void VerifyChecksumsMissing()
        {
            Engine engine = CreateEngine("missing");

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, false);

            Assert.IsFalse(result.Success);
            Assert.AreEqual(1, result.BadFiles.Count);

            Assert.AreEqual("2", result.BadFiles[0].FileName);
            Assert.AreEqual(BadFileType.Missing, result.BadFiles[0].BadFileType);
        }
        public void VerifyChecksumsBadChecksum()
        {
            Engine engine = CreateEngine("badchecksum");

            engine.ScanFiles(false);

            VerifyChecksumsResult result = engine.VerifyChecksums(false, false, false);

            Assert.IsFalse(result.Success);
            Assert.AreEqual(2, result.BadFiles.Count);

            Assert.AreEqual("1", result.BadFiles[0].FileName);
            Assert.AreEqual(BadFileType.DifferentChecksum, result.BadFiles[0].BadFileType);
            Assert.AreEqual("X", result.BadFiles[0].ChecksumDatabase);
            Assert.AreEqual(TestConstants.Corpus1MD5Checksum, result.BadFiles[0].ChecksumDisk);

            Assert.AreEqual("2", result.BadFiles[1].FileName);
            Assert.AreEqual(BadFileType.DifferentChecksum, result.BadFiles[1].BadFileType);
            Assert.AreEqual("X", result.BadFiles[1].ChecksumDatabase);
            Assert.AreEqual(TestConstants.Corpus2MD5Checksum, result.BadFiles[1].ChecksumDisk);
        }