public void WriteObjectWithAnnotations(int annotationCount) { using (var writer = new ManagedBinaryWriter(_memoryStream, Symbols.EmptySymbolTablesArray)) { writer.StepIn(IonType.Struct); writer.SetFieldName("FieldName"); for (var i = 0; i < annotationCount; i++) { writer.AddTypeAnnotation($"annot_{i}"); } writer.WriteString("FieldValue"); writer.StepOut(); writer.Flush(); } var reader = new UserBinaryReader(new MemoryStream(_memoryStream.GetWrittenBuffer())); reader.MoveNext(); reader.StepIn(); reader.MoveNext(); //load the value reader.StringValue(); var annotations = reader.GetTypeAnnotations().ToList(); for (var i = 0; i < annotationCount; i++) { Assert.IsTrue(annotations.Any(s => s.Text == $"annot_{i}")); } }
public void WriteObjectWithAnnotations(int annotationCount) { using (var stream = new MemoryStream()) { IIonWriter writer; using (writer = new ManagedBinaryWriter(BinaryConstants.EmptySymbolTablesArray)) { writer.StepIn(IonType.Struct); writer.SetFieldName("FieldName"); for (var i = 0; i < annotationCount; i++) { writer.AddTypeAnnotation($"annot_{i}"); } writer.WriteString("FieldValue"); writer.StepOut(); writer.Flush(stream); } var annotReader = new SaveAnnotationsReaderRoutine(); var reader = new UserBinaryReader(new MemoryStream(stream.ToArray()), annotReader); reader.MoveNext(); reader.StepIn(); reader.MoveNext(); //load the value reader.StringValue(); for (var i = 0; i < annotationCount; i++) { Assert.IsTrue(annotReader.Symbols.Contains($"annot_{i}")); } } }