public void TableContinuationTokenVerifyXmlFunctions() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List <CloudTable> totalResults = new List <CloudTable>(); TableContinuationToken token = null; do { segment = tableClient.ListTablesSegmented("prefixtable", 5, segment != null ? segment.ContinuationToken : null); totalResults.AddRange(segment); token = segment.ContinuationToken; if (token != null) { Assert.AreEqual(null, token.GetSchema()); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; StringBuilder sb = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(sb, settings)) { token.WriteXml(writer); } using (XmlReader reader = XmlReader.Create(new StringReader(sb.ToString()))) { token = new TableContinuationToken(); token.ReadXml(reader); } } }while (token != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables("prefixtable").Count()); }
public static TableContinuationToken DeserializeToken(string token) { if (!string.IsNullOrWhiteSpace(token)) { var raw = DecodeBase64(token); TableContinuationToken contToken = null; using (var stringReader = new StringReader(raw)) { contToken = new TableContinuationToken(); using (var xmlReader = XmlReader.Create(stringReader)) { contToken.ReadXml(xmlReader); } } return contToken; } return null; }
public void TableContinuationTokenVerifySerializer() { XmlSerializer serializer = new XmlSerializer(typeof(TableContinuationToken)); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; StringReader reader; string tokenxml; TableContinuationToken writeToken = new TableContinuationToken { NextPartitionKey = Guid.NewGuid().ToString(), NextRowKey = Guid.NewGuid().ToString(), NextTableName = Guid.NewGuid().ToString(), TargetLocation = StorageLocation.Primary }; TableContinuationToken readToken = null; // Write with XmlSerializer using (StringWriter writer = new StringWriter()) { serializer.Serialize(writer, writeToken); tokenxml = writer.ToString(); } // Read with XmlSerializer reader = new StringReader(tokenxml); readToken = (TableContinuationToken)serializer.Deserialize(reader); Assert.AreEqual(writeToken.NextTableName, readToken.NextTableName); // Read with token.ReadXml() using (XmlReader xmlReader = XmlReader.Create(new StringReader(tokenxml))) { readToken = new TableContinuationToken(); readToken.ReadXml(xmlReader); } Assert.AreEqual(writeToken.NextTableName, readToken.NextTableName); // Read with token.ReadXml() using (XmlReader xmlReader = XmlReader.Create(new StringReader(tokenxml))) { readToken = new TableContinuationToken(); readToken.ReadXml(xmlReader); } // Write with token.WriteXml StringBuilder sb = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(sb, settings)) { writeToken.WriteXml(writer); } // Read with XmlSerializer reader = new StringReader(sb.ToString()); readToken = (TableContinuationToken)serializer.Deserialize(reader); Assert.AreEqual(writeToken.NextTableName, readToken.NextTableName); // Read with token.ReadXml() using (XmlReader xmlReader = XmlReader.Create(new StringReader(sb.ToString()))) { readToken = new TableContinuationToken(); readToken.ReadXml(xmlReader); } Assert.AreEqual(writeToken.NextTableName, readToken.NextTableName); }
public void TableContinuationTokenVerifyXmlWithinXml() { CloudTableClient tableClient = GenerateCloudTableClient(); TableResultSegment segment = null; List<CloudTable> totalResults = new List<CloudTable>(); TableContinuationToken token = null; do { segment = tableClient.ListTablesSegmented("prefixtable", 5, segment != null ? segment.ContinuationToken : null); totalResults.AddRange(segment); token = segment.ContinuationToken; if (token != null) { Assert.AreEqual(null, token.GetSchema()); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; StringBuilder sb = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(sb, settings)) { writer.WriteStartElement("test1"); writer.WriteStartElement("test2"); token.WriteXml(writer); writer.WriteEndElement(); writer.WriteEndElement(); } using (XmlReader reader = XmlReader.Create(new StringReader(sb.ToString()))) { token = new TableContinuationToken(); reader.ReadStartElement(); reader.ReadStartElement(); token.ReadXml(reader); reader.ReadEndElement(); reader.ReadEndElement(); } } } while (token != null); Assert.AreEqual(totalResults.Count, tableClient.ListTables("prefixtable").Count()); }
public void TableContinuationTokenVerifyEmptyTargetDeserializer() { TableContinuationToken tableContinuationToken = new TableContinuationToken { NextTableName = "tableName", NextPartitionKey = "partitionKey", NextRowKey = "rowKey", TargetLocation = null }; StringBuilder stringBuilder = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(stringBuilder)) { tableContinuationToken.WriteXml(writer); } string stringToken = stringBuilder.ToString(); TableContinuationToken parsedToken = new TableContinuationToken(); parsedToken.ReadXml(XmlReader.Create(new System.IO.StringReader(stringToken))); Assert.AreEqual(parsedToken.NextTableName, "tableName"); Assert.AreEqual(parsedToken.NextPartitionKey, "partitionKey"); Assert.AreEqual(parsedToken.NextRowKey, "rowKey"); Assert.AreEqual(parsedToken.TargetLocation, null); }
public TableContinuationToken Deserialize(string serializedContinuationToken) { if (serializedContinuationToken == null) return null; TableContinuationToken continuationToken = new TableContinuationToken(); using (XmlReader xmlReader = XmlReader.Create(new StringReader(serializedContinuationToken))) { continuationToken.ReadXml(xmlReader); } return continuationToken; }