public void ItDetectsPDFs()
            {
                var fileTypes = checker.GetFileTypes(pdf);

                CollectionAssert.AreEquivalent(
                    new[] { "Portable Document Format" },
                    fileTypes.Select(fileType => fileType.Name));
            }
            public void ItDetectsPDFs()
            {
                var pdf       = LoadFile("Resources/pdf.pdf");
                var fileTypes = checker.GetFileTypes(pdf);

                CollectionAssert.AreEquivalent(
                    new[] { "Portable Document Format" },
                    fileTypes.Select(fileType => fileType.Name).ToArray());
            }
            public void ItDoesntDetectBMPs()
            {
                checker = new FileTypeChecker(new List <FileType>
                {
                    new FileType("Portable Network Graphic", ".png",
                                 new ExactFileTypeMatcher(new byte[] { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A })),
                    new FileType("JPEG", ".jpg",
                                 new FuzzyFileTypeMatcher(new byte?[] { 0xFF, 0xD, 0xFF, 0xE0, null, null, 0x4A, 0x46, 0x49, 0x46, 0x00 })),
                    new FileType("Graphics Interchange Format 87a", ".gif",
                                 new ExactFileTypeMatcher(new byte[] { 0x47, 0x49, 0x46, 0x38, 0x37, 0x61 })),
                    new FileType("Graphics Interchange Format 89a", ".gif",
                                 new ExactFileTypeMatcher(new byte[] { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61 })),
                    new FileType("Portable Document Format", ".pdf", new RangeFileTypeMatcher(new ExactFileTypeMatcher(new byte[] { 0x25, 0x50, 0x44, 0x46 }), 1019))
                    // ... Potentially more in future
                });
                var fileTypes = checker.GetFileTypes(bitmap);

                Assert.AreEqual(0, fileTypes.Count());
            }
            public void ItDoesntDetectPDFs()
            {
                var pdf = LoadFile("Resources/pdf.pdf");

                checker = new FileTypeChecker(new List <FileType>
                {
                    new FileType("Bitmap", ".bmp", new ExactFileTypeMatcher(new byte[] { 0x42, 0x4d })),
                    new FileType("Portable Network Graphic", ".png",
                                 new ExactFileTypeMatcher(new byte[] { 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A })),
                    new FileType("JPEG", ".jpg",
                                 new FuzzyFileTypeMatcher(new byte?[] { 0xFF, 0xD, 0xFF, 0xE0, null, null, 0x4A, 0x46, 0x49, 0x46, 0x00 })),
                    new FileType("Graphics Interchange Format 87a", ".gif",
                                 new ExactFileTypeMatcher(new byte[] { 0x47, 0x49, 0x46, 0x38, 0x37, 0x61 })),
                    new FileType("Graphics Interchange Format 89a", ".gif",
                                 new ExactFileTypeMatcher(new byte[] { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61 }))
                    // ... Potentially more in future
                });
                var fileTypes = checker.GetFileTypes(pdf);

                Assert.AreEqual(0, fileTypes.Count());
            }