private static IEnumerable <T> GetResourcesHelper <T>( IReadOnlyList <CosmosElement> cosmosArray, CosmosSerializerCore serializerCore) { List <T> result = new List <T>(); foreach (CosmosElement element in cosmosArray) { MemoryStream memory = CosmosElementSerializer.ElementToMemoryStream(element, null); result.Add(serializerCore.FromStream <T>(memory)); } return(result); }
private void TestProperty <T>( CosmosSerializerCore serializerCore, string id, string defaultJson) { dynamic property = serializerCore.FromStream <T>(new MemoryStream(Encoding.UTF8.GetBytes(defaultJson))); Assert.AreEqual(id, property.Id); using (Stream stream = serializerCore.ToStream <T>(property)) { using (StreamReader sr = new StreamReader(stream)) { string propertyJson = sr.ReadToEnd(); Assert.AreEqual(defaultJson, propertyJson); } } }
public void ValidateSqlQuerySpecSerialization() { int toCount = 0; int fromCount = 0; CosmosSerializerHelper serializerHelper = new CosmosSerializerHelper( null, (input) => fromCount++, (input) => toCount++); CosmosSerializerCore serializerCore = new CosmosSerializerCore(serializerHelper); SqlQuerySpec querySpec = new SqlQuerySpec("select * from T where T.id = @id"); querySpec.Parameters = new SqlParameterCollection() { new SqlParameter("@id", "testValue") }; try { serializerCore.ToStream <SqlQuerySpec>(querySpec); Assert.Fail("ToStream should throw exception"); } catch (ArgumentException e) { Assert.IsNotNull(e); } try { serializerCore.FromStream <SqlQuerySpec>(new MemoryStream()); Assert.Fail("FromStream should throw exception"); } catch (ArgumentException e) { Assert.IsNotNull(e); } Assert.AreEqual(0, toCount); Assert.AreEqual(0, fromCount); using (Stream stream = serializerCore.ToStreamSqlQuerySpec(querySpec, ResourceType.Offer)) { } Assert.AreEqual(0, toCount); Assert.AreEqual(0, fromCount); List <ResourceType> publicQuerySupportedTypes = new List <ResourceType>() { ResourceType.Database, ResourceType.Collection, ResourceType.Document, ResourceType.Trigger, ResourceType.UserDefinedFunction, ResourceType.StoredProcedure, ResourceType.Permission, ResourceType.User, ResourceType.Conflict }; foreach (ResourceType resourceType in publicQuerySupportedTypes) { toCount = 0; using (Stream stream = serializerCore.ToStreamSqlQuerySpec(querySpec, resourceType)) { Assert.AreEqual(1, toCount); Assert.AreEqual(0, fromCount); } } }