Ejemplo n.º 1
0
        public void TestFixtureSetup()
        {
            // Create temporary directory
            Uri           codeBaseUri    = new Uri(Assembly.GetExecutingAssembly().CodeBase);
            DirectoryInfo debugDirectory = (new FileInfo(codeBaseUri.LocalPath)).Directory;

            const string TestFrameworkFiles = "TestFrameworkFiles";

            if (Directory.Exists(debugDirectory + "\\" + TestFrameworkFiles))
            {
                Directory.Delete(debugDirectory + "\\" + TestFrameworkFiles, true);
            }

            _testFilesDirectory = debugDirectory.CreateSubdirectory(TestFrameworkFiles);
            FileInfo testFile        = new FileInfo(_testFilesDirectory.FullName + "/allfiles.dat");
            FileInfo testProjectFile = new FileInfo(_testFilesDirectory.FullName + "/allfiles.dpr");

            // Create input file and project
            _testProject = TestFramework.ProjectManager.CreateProject(testProjectFile.FullName, "S. Holmes", DateTime.Now, "Scan all files");

            // Locate detectors
            TestFramework.DetectorFactory.Initialize(".");
            IDetector[] containerDetectors = new IDetector[] {
                Util.FindDetector(TestFramework.DetectorFactory.ContainerDetectors, "MPEG-1/2 Systems"),
                Util.FindDetector(TestFramework.DetectorFactory.ContainerDetectors, "3GPP/QT/MP4")
            };
            IDetector[] codecDetectors = new IDetector[] {
                Util.FindDetector(TestFramework.DetectorFactory.CodecDetectors, Mpeg2VideoDetector.DetectorName),
                Util.FindDetector(TestFramework.DetectorFactory.CodecDetectors, "MPEG-4")
            };

            // Append test files, create desired data blocks
            DirectoryInfo testDataDirectory = new DirectoryInfo(Util.TestdataPath);

            using (FileStream testFileStream = testFile.OpenWrite())
            {
                long offset = 0;
                DesiredDataBlocks = new List <IDataBlock>();
                for (int i = 0; i < TestFileNames.GetLength(0); i++)
                {
                    // Copy file
                    byte[] b = File.ReadAllBytes(testDataDirectory.FullName + "/" + TestFileNames[i, 1]);
                    testFileStream.Write(b, 0, b.Length);
                    if (TestFileNames[i, 0] != null)
                    {
                        IDetector  detector  = Util.FindDetector(TestFramework.DetectorFactory.Detectors, TestFileNames[i, 0]);
                        IDataBlock dataBlock = TestFramework.CreateDataBlock(detector, TestFramework.CreateDataPacket(_testFile, offset, b.Length), true, null);
                        DesiredDataBlocks.Add(dataBlock);
                    }
                    else if (i == 3)
                    {
                        // Partial detection: File is split in 2 blocks
                        IDetector detector = Util.FindDetector(TestFramework.DetectorFactory.Detectors, "MPEG-1/2 Systems");
                        DesiredDataBlocks.Add(TestFramework.CreateDataBlock(detector, TestFramework.CreateDataPacket(_testFile, offset, 30), false, null));
                        DesiredDataBlocks.Add(TestFramework.CreateDataBlock(detector, TestFramework.CreateDataPacket(_testFile, offset + b.Length - 16, 16), false, null));
                    }
                    offset += b.Length;

                    // Add zero padding
                    testFileStream.Write(new byte[256], 0, 256);
                    offset += 256;
                }
            }

            bool isFullFile = DesiredDataBlocks[0].IsFullFile;

            DesiredDataBlocks[0] = TestFramework.CreateDataBlock(DesiredDataBlocks[0].Detectors.First(), TestFramework.CreateDataPacket(DesiredDataBlocks[0].InputFile, DesiredDataBlocks[0].StartOffset, DesiredDataBlocks[0].Length - 20), isFullFile, null);

            _testFile = TestFramework.DetectData(containerDetectors, codecDetectors, _testProject, testFile.FullName);
        }
 public void TestReaderGetResultsDataBlockUnknown()
 {
     IDataPacket data      = TestFramework.CreateDataPacket(TestFramework.CreateInputFile("ja"), 31337, 1);
     IDataBlock  dataBlock = TestFramework.CreateDataBlock(TestFramework.DetectorFactory.Detectors[0], data, false, null);
     IResultNode results   = TestFramework.GetResults(dataBlock);                // TODO: _project??
 }