public async Task ODataEntityReferenceLinkSerializer_Serializes_UrisAndEntityReferenceLinks(object uris) { // Arrange ODataEntityReferenceLinksSerializer serializer = new ODataEntityReferenceLinksSerializer(); ODataSerializerContext writeContext = new ODataSerializerContext(); MemoryStream stream = new MemoryStream(); IODataResponseMessage message = new ODataMessageWrapper(stream); ODataMessageWriterSettings settings = new ODataMessageWriterSettings { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; settings.SetContentType(ODataFormat.Json); ODataMessageWriter writer = new ODataMessageWriter(message, settings); // Act await serializer.WriteObjectAsync(uris, typeof(ODataEntityReferenceLinks), writer, writeContext); stream.Seek(0, SeekOrigin.Begin); string result = await new StreamReader(stream).ReadToEndAsync(); // Assert Assert.Equal("{\"@odata.context\":\"http://any/$metadata#Collection($ref)\"," + "\"value\":[{\"@odata.id\":\"http://uri1/\"},{\"@odata.id\":\"http://uri2/\"}]}", result); }
public void ODataEntityReferenceLinkSerializer_Serializes_UrisAndEntityReferenceLinks_WithCount(object uris) { // Arrange //var config = RoutingConfigurationFactory.CreateWithRootContainer("OData"); var request = RequestFactory.Create(/*config, "OData"*/); ODataEntityReferenceLinksSerializer serializer = new ODataEntityReferenceLinksSerializer(); ODataSerializerContext writeContext = new ODataSerializerContext(); writeContext.Request = request; writeContext.Request.ODataFeature().TotalCount = 1; MemoryStream stream = new MemoryStream(); IODataResponseMessage message = new ODataMessageWrapper(stream); ODataMessageWriterSettings settings = new ODataMessageWriterSettings { ODataUri = new ODataUri { ServiceRoot = new Uri("http://any/") } }; settings.SetContentType(ODataFormat.Json); ODataMessageWriter writer = new ODataMessageWriter(message, settings); // Act serializer.WriteObject(uris, typeof(ODataEntityReferenceLinks), writer, writeContext); stream.Seek(0, SeekOrigin.Begin); string result = new StreamReader(stream).ReadToEnd(); Assert.Equal( string.Format("{0},{1},{2}", "{\"@odata.context\":\"http://any/$metadata#Collection($ref)\"", "\"@odata.count\":1", "\"value\":[{\"@odata.id\":\"http://uri1/\"}]}"), result); }
public async Task WriteObjectAsync_Throws_ObjectCannotBeWritten_IfGraphIsNotUri() { // Arrange ODataEntityReferenceLinksSerializer serializer = new ODataEntityReferenceLinksSerializer(); // Act & Assert await ExceptionAssert.ThrowsAsync <SerializationException>( () => serializer.WriteObjectAsync(graph: "not uri", type: typeof(ODataEntityReferenceLinks), messageWriter: ODataTestUtil.GetMockODataMessageWriter(), writeContext: new ODataSerializerContext()), "ODataEntityReferenceLinksSerializer cannot write an object of type 'System.String'."); }
public async Task WriteObjectAsync_ThrowsArgumentNull_WriteContext() { // Arrange ODataEntityReferenceLinksSerializer serializer = new ODataEntityReferenceLinksSerializer(); // Act & Assert await ExceptionAssert.ThrowsArgumentNullAsync( () => serializer.WriteObjectAsync(graph: null, type: typeof(ODataEntityReferenceLinks), messageWriter: ODataTestUtil.GetMockODataMessageWriter(), writeContext: null), "writeContext"); }
public void WriteObject_ThrowsArgumentNull_MessageWriter() { // Arrange ODataEntityReferenceLinksSerializer serializer = new ODataEntityReferenceLinksSerializer(); // Act & Assert ExceptionAssert.ThrowsArgumentNull( () => serializer.WriteObject(graph: null, type: typeof(ODataEntityReferenceLinks), messageWriter: null, writeContext: new ODataSerializerContext()), "messageWriter"); }