Ejemplo n.º 1
0
        private IDataBlockBuilder CreateBuilder(IInputFile file)
        {
            IDataBlockBuilder builder = TestFramework.CreateDataBlockBuilder();

            builder.Detectors = new[] { _detector };
            builder.InputFile = file;
            return(builder);
        }
        private IDataBlockBuilder CreateDataBlockBuilder2()
        {
            IDataBlockBuilder dataBlockBuilder2 = TestFramework.CreateDataBlockBuilder();

            dataBlockBuilder2.DataFormat  = CodecID.Avi;
            dataBlockBuilder2.Detectors   = new[] { _detector2 };
            dataBlockBuilder2.InputFile   = _inputFile2;
            dataBlockBuilder2.StartOffset = StartOffset2;
            dataBlockBuilder2.EndOffset   = EndOffset2;
            dataBlockBuilder2.IsFullFile  = true;
            return(dataBlockBuilder2);
        }
        private IDataBlockBuilder CreateDataBlockBuilder1()
        {
            IDataBlockBuilder dataBlockBuilder1 = TestFramework.CreateDataBlockBuilder();

            dataBlockBuilder1.DataFormat  = CodecID.Mpeg2System;
            dataBlockBuilder1.Detectors   = new[] { _detector1 };
            dataBlockBuilder1.InputFile   = _inputFile1;
            dataBlockBuilder1.StartOffset = StartOffset1;
            dataBlockBuilder1.EndOffset   = EndOffset1;
            dataBlockBuilder1.IsFullFile  = false;
            return(dataBlockBuilder1);
        }
 public void TestConstructorDefaultFormat()
 {
     using (IDataReader dataReader = new MockDataReader(new byte[DataFileLength], _inputFile))
     {
         IDetector    detector    = new UnknownFormatDetector();
         IScanContext scanContext = TestFramework.CreateScanContext(_project);
         scanContext.Detectors = new[] { detector };
         IDataBlockBuilder builder = TestFramework.CreateDataBlockBuilder();
         builder.Detectors = scanContext.Detectors;
         builder.InputFile = _inputFile;
         IDataBlock dataBlock = detector.DetectData(dataReader, builder, scanContext);
         Assert.IsNotNull(dataBlock);
         IResultNode results = scanContext.Results;
         Assert.IsNotNull(results);
         Assert.GreaterOrEqual(results.Children.Count, 1);
         Assert.AreEqual(0, results.Children[0].Attributes.Count);
     }
 }
 public void TestDetectData()
 {
     using (IDataReader dataReader = new MockDataReader(new byte[DataFileLength], _inputFile))
     {
         IScanContext scanContext = TestFramework.CreateScanContext(_project);
         scanContext.Detectors = new[] { _detector };
         IDataBlockBuilder builder = TestFramework.CreateDataBlockBuilder();
         builder.Detectors = scanContext.Detectors;
         builder.InputFile = _inputFile;
         IDataBlock dataBlock = _detector.DetectData(dataReader, builder, scanContext);
         Assert.IsNotNull(dataBlock, "Unknown format detector (DetectData not null)");
         IResultNode results = scanContext.Results;
         Assert.IsNotNull(results, "Unknown format detector (Results not null)");
         Assert.AreEqual(_detector, dataBlock.Detectors.First(), "Detector of data block");
         Assert.AreEqual(1, results.Children.Count, "One child 'Data'");
         IResultNode data = results.Children[0];
         Assert.IsEmpty((ICollection)data.Children, "Data has no children");
         Assert.AreEqual(0, data.StartOffset, "");
         Assert.AreEqual(DataFileLength, data.Length, "");
         Assert.IsFalse(data.IsFragmented(), "Single fragment");
         Assert.AreEqual(_inputFile, data.InputFile, "Input file");
         Assert.IsFalse(dataBlock.IsFullFile, "Does not produce full files");
     }
 }
        public void SerializeProject()
        {
            IProject project = TestFramework.ProjectManager.CreateProject(ProjectPath, ProjectInvestigator, DateTime.Now, ProjectDescription);

            IDetector  systemDetector = TestFramework.DetectorFactory.ContainerDetectors.Single(x => x.Name == "MPEG-1/2 Systems");
            IDetector  videoDetector  = TestFramework.DetectorFactory.CodecDetectors.Single(x => x.Name == Mpeg2VideoDetector.DetectorName);
            IInputFile inputFile1     = project.AddFile(FileName1, new[] { systemDetector, videoDetector });
            IInputFile inputFile2     = project.AddFile(FileName2, new[] { videoDetector });

            IDataBlockBuilder dataBlockBuilder1 = TestFramework.CreateDataBlockBuilder();

            dataBlockBuilder1.DataFormat  = CodecID.Mpeg2System;
            dataBlockBuilder1.Detectors   = new[] { systemDetector };
            dataBlockBuilder1.InputFile   = inputFile1;
            dataBlockBuilder1.StartOffset = 0L;
            dataBlockBuilder1.EndOffset   = 20480L;
            dataBlockBuilder1.IsFullFile  = true;
            ICodecStreamBuilder codecStreamBuilder = dataBlockBuilder1.AddCodecStream();

            codecStreamBuilder.Name       = "Video Stream #1";
            codecStreamBuilder.DataFormat = CodecID.Mpeg2Video;
            codecStreamBuilder.Detector   = videoDetector;
            codecStreamBuilder.Data       = TestFramework.CreateDataPacket(inputFile1, 0L, 3033L);
            IDataBlock dataBlock1 = dataBlockBuilder1.Build();

            IDataBlockBuilder dataBlockBuilder2 = TestFramework.CreateDataBlockBuilder();

            dataBlockBuilder2.DataFormat  = CodecID.Mpeg2Video;
            dataBlockBuilder2.Detectors   = new[] { videoDetector };
            dataBlockBuilder2.InputFile   = inputFile1;
            dataBlockBuilder2.StartOffset = 130303L;
            dataBlockBuilder2.EndOffset   = 130327L;
            dataBlockBuilder2.IsFullFile  = false;
            IDataBlock dataBlock2 = dataBlockBuilder2.Build();

            IDataBlockBuilder dataBlockBuilder3 = TestFramework.CreateDataBlockBuilder();

            dataBlockBuilder3.DataFormat  = CodecID.Mpeg2Video;
            dataBlockBuilder3.Detectors   = new[] { videoDetector };
            dataBlockBuilder3.InputFile   = inputFile2;
            dataBlockBuilder3.StartOffset = 0L;
            dataBlockBuilder3.EndOffset   = FileLength2;
            dataBlockBuilder3.IsFullFile  = true;
            IDataBlock dataBlock3 = dataBlockBuilder3.Build();

            project.AddDataBlock(dataBlock1);
            project.AddDataBlock(dataBlock2);
            project.AddDataBlock(dataBlock3);
            project.SetMetadata(_fullMetadata);
//			project.SetVisibleColumns(systemDetector, TwoColumns);

            IProject deserializedProject;

            using (FileStream fileStream = new FileStream(_project.FileName, FileMode.Create))
            {
                TestFramework.CreateXmlObjectSerializer().WriteObject(fileStream, project);
            }
            using (FileStream fileStream = new FileStream(ProjectPath, FileMode.Open))
            {
                deserializedProject = TestFramework.CreateXmlObjectSerializer().ReadObject(fileStream) as IProject;
            }

            IList <IInputFile> inputFiles = deserializedProject.GetInputFiles();

            Assert.AreEqual(2, inputFiles.Count, "Serialization, input files (2 files)");
            AreEqual(inputFile1, inputFiles[0], "1");
            AreEqual(inputFile2, inputFiles[1], "2");

            IList <IDataBlock> dataBlocks = deserializedProject.GetDataBlocks(inputFiles[0]);

            Assert.AreEqual(2, dataBlocks.Count, "Serialization, data blocks (file 1, 2 blocks)");
            AreEqual(dataBlock1, dataBlocks[0], "1", "1");
            AreEqual(dataBlock2, dataBlocks[1], "1", "2");
            dataBlocks = deserializedProject.GetDataBlocks(inputFiles[1]);
            Assert.AreEqual(1, dataBlocks.Count, "Serialization, data blocks (file 2, 1 block)");
            AreEqual(dataBlock3, dataBlocks[0], "2", "1");

            IDictionary <ProjectMetadataKey, string> metadata = deserializedProject.GetMetadata();

            Assert.AreEqual(5, metadata.Count, "Serialization, metadata (5 entries)");
            Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.FileVersion), "Serialization, metadata (FileVersion)");
            Assert.AreEqual("1.0.0.4", metadata[ProjectMetadataKey.FileVersion], "Serialization, metadata (FileVersion)");
            Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.ProjectDescription), "Serialization, metadata (ProjectDescription)");
            Assert.AreEqual(ProjectDescription, metadata[ProjectMetadataKey.ProjectDescription], "Serialization, metadata (ProjectDescription)");
            Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.InvestigatorName), "Serialization, metadata (InvestigatorName)");
            Assert.AreEqual(ProjectInvestigator, metadata[ProjectMetadataKey.InvestigatorName], "Serialization, metadata (InvestigatorName)");
            Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.DateCreated), "Serialization, metadata (DateCreated)");
            Assert.AreEqual(ProjectCreationDate, metadata[ProjectMetadataKey.DateCreated], "Serialization, metadata (DateCreated)");
            Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.DateLastModified), "Serialization, metadata (DateLastModified)");
            Assert.AreEqual(ProjectModificationDate, metadata[ProjectMetadataKey.DateLastModified], "Serialization, metadata (DateLastModified)");

            //IList<IColumnInfo> visibleColumns = deserializedProject.GetVisibleColumns(systemDetector);
            //Assert.AreEqual(2, visibleColumns.Count, "Serialization, visible columns (2 columns)");
            //Assert.IsTrue(visibleColumns.Contains(_columnInfo1), "Serialization, visible columns (column 1)");
            //Assert.IsTrue(visibleColumns.Contains(_columnInfo2), "Serialization, visible columns (column 2)");

            TestFramework.ProjectManager.CloseProject(project);
        }