public void ReadInline_ThrowsArgumentNull_Item() { var deserializer = new ODataEntityDeserializer(_deserializerProvider); Assert.ThrowsArgumentNull( () => deserializer.ReadInline(item: null, edmType: _productEdmType, readContext: new ODataDeserializerContext()), "item"); }
public void ReadInline_Throws_ArgumentMustBeOfType() { var deserializer = new ODataEntityDeserializer(_deserializerProvider); Assert.ThrowsArgument( () => deserializer.ReadInline(item: 42, edmType: _productEdmType, readContext: new ODataDeserializerContext()), "item", "The argument must be of type 'ODataEntry'"); }
public override object ReadInline(ODataEntry entry, ODataDeserializerContext readContext) { if (entry == null) { throw Error.Argument("entry", SRResources.ItemMustBeOfType, typeof(ODataEntry).Name); } if (EdmEntityType.FullName() != entry.TypeName) { // received a derived type in a base type deserializer. // delegate it to the appropriate derived type deserializer. IEdmEntityType entityType = EdmModel.FindType(entry.TypeName) as IEdmEntityType; Contract.Assert(entityType != null, "edmlib should have already validated that it knows the edm type and is the same as or derives from EdmEntityType"); if (entityType.IsAbstract) { throw Error.InvalidOperation(SRResources.CannotInstantiateAbstractEntityType, entry.TypeName); } ODataEntityDeserializer deserializer = DeserializerProvider.GetODataDeserializer(new EdmEntityTypeReference(entityType, isNullable: false)) as ODataEntityDeserializer; return(deserializer.ReadInline(entry, readContext)); } else { ODataEntryAnnotation entryAnnotation = entry.GetAnnotation <ODataEntryAnnotation>(); Contract.Assert(entryAnnotation != null); CreateEntityResource(entryAnnotation, EdmEntityType, readContext); RecurseEnter(readContext); ApplyEntityProperties(entry, entryAnnotation, readContext); RecurseLeave(readContext); return(entryAnnotation.EntityResource); } }
public void ReadInline_Throws_ArgumentMustBeOfType() { var deserializer = new ODataEntityDeserializer(_productEdmType, _deserializerProvider); Assert.ThrowsArgument( () => deserializer.ReadInline(item: 42, readContext: new ODataDeserializerContext()), "item", "The argument must be of type 'ODataEntry'"); }
public void ReadInline_ThrowsArgumentNull_Item() { var deserializer = new ODataEntityDeserializer(_productEdmType, _deserializerProvider); Assert.ThrowsArgumentNull( () => deserializer.ReadInline(item: null, readContext: new ODataDeserializerContext()), "item"); }