private static void AssertTable(ISymbolTable table, string name, int version, IReadOnlyList <string> symbols) { Assert.IsTrue(table.IsShared); Assert.IsFalse(table.IsSystem); Assert.IsNull(table.GetSystemTable()); Assert.IsTrue(table.IsReadOnly); Assert.AreEqual(name, table.Name); Assert.AreEqual(version, table.Version); Assert.AreEqual(0, table.GetImportedMaxId()); Assert.AreEqual(symbols.Count, table.MaxId); var foundSymbols = new HashSet <string>(); using (var iter = table.GetDeclaredSymbolNames().GetEnumerator()) { for (var i = 0; i < symbols.Count; i++) { var sid = i + 1; var text = symbols[i]; Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(text, iter.Current); var duplicate = text != null && !foundSymbols.Add(text); SymTabUtils.AssertSymbolInTable(text, sid, duplicate, table); } Assert.IsFalse(iter.MoveNext()); } }
public void WriteSymbolWithSymbolTableOutOfRange() { var datagram = SymTabUtils.DatagramWithOutOfRangeSymbolsInSymbolTable(); var memStream = new MemoryStream(); var binaryWriter = IonBinaryWriterBuilder.Build(memStream); // Should throw exception as sid 12 in datagram exceeds the max ID of the symbol table currently in scope datagram.WriteTo(binaryWriter); binaryWriter.Finish(); }
public void WriteSymbolWithSymbolTableOutOfRange() { var datagram = SymTabUtils.DatagramWithOutOfRangeSymbolsInSymbolTable(); var sw = new StringWriter(); var textWriter = IonTextWriterBuilder.Build(sw); // Should throw exception as sid 12 in datagram exceeds the max ID of the symbol table currently in scope datagram.WriteTo(textWriter); textWriter.Finish(); }