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 string Serialize(TableContinuationToken continuationToken)
 {
     if (continuationToken == null) return null;
     StringBuilder sb = new StringBuilder();
     using (XmlWriter xmlWriter = XmlWriter.Create(new StringWriter(sb)))
     {
         continuationToken.WriteXml(xmlWriter);
     }
     return sb.ToString();
 }
        public string Serialize(TableContinuationToken continuationToken)
        {
            if (continuationToken == null) return null;

            using (StringWriter stringWriter = new StringWriter())
            {
                using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter))
                {
                    continuationToken.WriteXml(xmlWriter);
                }
                return stringWriter.ToString();
            }
        }
        public static string SerializeToken(TableContinuationToken token)
        {
            if (token == null)
            {
                return null;
            }

            using (var writer = new StringWriter(CultureInfo.InvariantCulture))
            {
                using (var xmlWriter = XmlWriter.Create(writer))
                {
                    token.WriteXml(xmlWriter);
                }
                string serialized = writer.ToString();
                var val = EncodeBase64(serialized);
                return val;
            }

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