public void ParseValue() { // arrange var type = new AnyType(); var objectValueNode = new ObjectValueNode( new ObjectFieldNode( AnyType.TypeNameField, "test" ), new ObjectFieldNode( "foo", "bar" ) ); var representation = new Representation { TypeName = "test", Data = objectValueNode }; // act IValueNode valueSyntax = type.ParseValue(representation); // assert Assert.Equal( objectValueNode, Assert.IsType <ObjectValueNode>(valueSyntax)); }
public void ParseValue_InvalidValue() { // arrange var type = new AnyType(); // act void Action() => type.ParseValue(1); // assert Assert.Throws <SerializationException>(Action); }
public void ParseValue_Null() { // arrange var type = new AnyType(); // act IValueNode valueSyntax = type.ParseValue(null); // assert Assert.IsType <NullValueNode>(valueSyntax); }
public override IValueNode ParseValue(object value) { if (value == null) { return(new NullValueNode(null)); } if (value is Geometry) { var writer = new GeoJsonWriter(); var objStr = writer.Write(value); // turn json back into object var obj = JsonSerializer.Deserialize <object>(objStr); // convert it to graphql node tree var nodeTree = _anyType.ParseValue(obj); return(nodeTree); } throw new ArgumentException("The specified value has to be a Geometry Type"); }