private static void Recurse(EBMLReader reader, bool readValues) { ElementInfo elemInfo; while((elemInfo = reader.Next()) != null) { if(elemInfo.DocElement.Type == EBMLElementType.Master) { using(reader.EnterElement(elemInfo)) { Recurse(reader, readValues); } } else if(readValues) { var obj = reader.RetrieveValue(elemInfo); } } }
public void RetrieveValue_WrongPosition() { var dataSrc = new EBMLBlockDataSource(new byte[][] { new byte[0] }, 0); var docType = new EBMLDocType(); var reader = new EBMLReader(dataSrc, docType); reader.RetrieveValue(new ElementInfo(EBMLDocElement.Unknown, 1, 2, 3, 1)); }
public void RetrieveValue_ZeroLength() { var dataSrc = new EBMLBlockDataSource(new byte[][] { new byte[0] }, 0); var docType = new EBMLDocType(); var reader = new EBMLReader(dataSrc, docType); reader.RetrieveValue(new ElementInfo(EBMLDocElement.Unknown, 0, 0, 0, 0)); reader.RetrieveValue(new ElementInfo(EBMLDocElement.Unknown, 1, 1, 1, 0)); }
public void RetrieveValue_NullArgument() { var dataSrc = new EBMLBlockDataSource(new byte[][] { new byte[0] }, 0); var docType = new EBMLDocType(); var reader = new EBMLReader(dataSrc, docType); reader.RetrieveValue(null); }