Пример #1
0
        public void IdentifyFileType_FileInspector_WhenMatchCriteriaAreVaried_ReturnsTypeIfMatchedOrUnknownOtherwise(string fileNameRegex, string contentsRegex, bool recognizerResult,
                                                                                                                     bool expectedMatch)
        {
            var inspector = new FakeFileInspector()
            {
                FileInfo = new FileInfo(@"C:\file.txt"),
                Contents = "contents"
            };
            var recognizer = MockRepository.GenerateStub <IFileTypeRecognizer>();

            recognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(recognizerResult);
            var handles = CreateRecognizerHandles(
                new RecognizerInfo
            {
                Traits = new FileTypeRecognizerTraits("TypeA", "A")
                {
                    FileNameRegex = fileNameRegex,
                    ContentsRegex = contentsRegex
                },
                Recognizer = recognizer
            });
            var fileTypeManager = new FileTypeManager(handles);

            FileType fileType = fileTypeManager.IdentifyFileType(inspector);

            Assert.AreEqual(expectedMatch ? "TypeA" : "Unknown", fileType.Id);
        }
Пример #2
0
        public void IdentifyFileType_FileInspectorWithCandidates_WhenMatchCriteriaAndCandidatesAreVaried_ReturnsTypeIfMatchedOrUnknownOtherwise(
            bool includeSupertypeAsCandidate, bool includeSubtypeAsCandidate,
            bool superRecognizerResult, bool subRecognizerResult,
            string expectedMatchType)
        {
            var inspector = new FakeFileInspector()
            {
                FileInfo = new FileInfo(@"C:\file.txt"),
                Contents = "contents"
            };
            var superRecognizer = MockRepository.GenerateStub <IFileTypeRecognizer>();

            superRecognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(superRecognizerResult);
            var subRecognizer = MockRepository.GenerateStub <IFileTypeRecognizer>();

            subRecognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(subRecognizerResult);
            var handles = CreateRecognizerHandles(
                new RecognizerInfo
            {
                Traits     = new FileTypeRecognizerTraits("SuperType", "Super"),
                Recognizer = superRecognizer
            },
                new RecognizerInfo
            {
                Traits = new FileTypeRecognizerTraits("SubType", "Sub")
                {
                    SuperTypeId = "SuperType"
                },
                Recognizer = subRecognizer
            });
            var fileTypeManager = new FileTypeManager(handles);
            var candidates      = new List <FileType>();

            if (includeSupertypeAsCandidate)
            {
                candidates.Add(fileTypeManager.GetFileTypeById("SuperType"));
            }
            if (includeSubtypeAsCandidate)
            {
                candidates.Add(fileTypeManager.GetFileTypeById("SubType"));
            }

            FileType fileType = fileTypeManager.IdentifyFileType(inspector, candidates);

            Assert.AreEqual(expectedMatchType, fileType.Id);
        }
Пример #3
0
        public void IdentifyFileType_FileInspector_WhenContentsNotAvailable_ReturnsTypeOnlyIfNoContentCriteriaAndRecognizerMatches(
            bool contentCriteria, bool recognizerResult, bool expectedMatch)
        {
            var inspector = new FakeFileInspector();
            var recognizer = MockRepository.GenerateStub<IFileTypeRecognizer>();
            recognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(recognizerResult);
            var handles = CreateRecognizerHandles(
                new RecognizerInfo
                {
                    Traits = new FileTypeRecognizerTraits("TypeA", "A")
                    {
                        ContentsRegex = contentCriteria ? ".*" : null
                    },
                    Recognizer = recognizer
                });
            var fileTypeManager = new FileTypeManager(handles);

            FileType fileType = fileTypeManager.IdentifyFileType(inspector);

            Assert.AreEqual(expectedMatch ? "TypeA" : "Unknown", fileType.Id);
        }
Пример #4
0
        public void IdentifyFileType_FileInspectorWithCandidates_WhenMatchCriteriaAndCandidatesAreVaried_ReturnsTypeIfMatchedOrUnknownOtherwise(
            bool includeSupertypeAsCandidate, bool includeSubtypeAsCandidate,
            bool superRecognizerResult, bool subRecognizerResult,
            string expectedMatchType)
        {
            var inspector = new FakeFileInspector()
            {
                FileInfo = new FileInfo(@"C:\file.txt"),
                Contents = "contents"
            };
            var superRecognizer = MockRepository.GenerateStub<IFileTypeRecognizer>();
            superRecognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(superRecognizerResult);
            var subRecognizer = MockRepository.GenerateStub<IFileTypeRecognizer>();
            subRecognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(subRecognizerResult);
            var handles = CreateRecognizerHandles(
                new RecognizerInfo
                {
                    Traits = new FileTypeRecognizerTraits("SuperType", "Super"),
                    Recognizer = superRecognizer
                },
                new RecognizerInfo
                {
                    Traits = new FileTypeRecognizerTraits("SubType", "Sub") { SuperTypeId = "SuperType" },
                    Recognizer = subRecognizer
                });
            var fileTypeManager = new FileTypeManager(handles);
            var candidates = new List<FileType>();
            if (includeSupertypeAsCandidate)
                candidates.Add(fileTypeManager.GetFileTypeById("SuperType"));
            if (includeSubtypeAsCandidate)
                candidates.Add(fileTypeManager.GetFileTypeById("SubType"));

            FileType fileType = fileTypeManager.IdentifyFileType(inspector, candidates);

            Assert.AreEqual(expectedMatchType, fileType.Id);
        }
Пример #5
0
        public void IdentifyFileType_FileInspector_WhenMatchCriteriaAreVaried_ReturnsTypeIfMatchedOrUnknownOtherwise(string fileNameRegex, string contentsRegex, bool recognizerResult,
            bool expectedMatch)
        {
            var inspector = new FakeFileInspector()
            {
                FileInfo = new FileInfo(@"C:\file.txt"),
                Contents = "contents"
            };                
            var recognizer = MockRepository.GenerateStub<IFileTypeRecognizer>();
            recognizer.Stub(x => x.IsRecognizedFile(inspector)).Return(recognizerResult);
            var handles = CreateRecognizerHandles(
                new RecognizerInfo
                {
                    Traits = new FileTypeRecognizerTraits("TypeA", "A")
                        {
                            FileNameRegex = fileNameRegex,
                            ContentsRegex = contentsRegex
                        },
                    Recognizer = recognizer
                });
            var fileTypeManager = new FileTypeManager(handles);

            FileType fileType = fileTypeManager.IdentifyFileType(inspector);

            Assert.AreEqual(expectedMatch ? "TypeA" : "Unknown", fileType.Id);
        }