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); }