public ResourceDeserializerTests() { _person = Get.Person(id: "hello"); _person.Friends = Get.People(1); _people = Get.People(5).ToArray(); var singleSerializer = new ResourceSerializer( _person, new PersonResource(), new Uri("http://example.com/people/1"), new DefaultUrlPathBuilder(), null); var multiSerializer = new ResourceSerializer( _people, new PersonResource(), new Uri("http://example.com/people/"), new DefaultUrlPathBuilder(), null); _singleJson = JToken.Parse(singleSerializer.Serialize().ToString()); _collectionJson = JToken.Parse(multiSerializer.Serialize().ToString()); }
public Person PostPerson(string id, Person person) { person.Identifier = id; return person; }
public void DocumentMustNotContainIncludedForEmptySet() { var people = new Person[0]; var target = new ResourceSerializer(people, DefaultResource, GetUri(), DefaultPathBuilder, null); var result = target.Serialize(); _output.WriteLine(result.ToString()); Assert.Null(result["included"]); }
public void DocumentMustContainAtLeastOneDataOrErrorOrMeta() { var people = new Person[] { }; var target = new ResourceSerializer(people, DefaultResource, GetUri(), DefaultPathBuilder, null); var result = target.Serialize(); _output.WriteLine(result.ToString()); Assert.NotNull(result["data"]); }
public void DocumentMustNotContainIncludedForEmptySet() { var people = new Person[0]; var target = new ResourceSerializer(urlBuilder: new DefaultUrlPathBuilder("/api")); var resourceResult = new ResourceResult { Resource = DefaultResource, Result = people }; var result = JToken.Parse(target.Serialize(resourceResult, GetUri().ToString())); _output.WriteLine(result.ToString()); Assert.Null(result["included"]); }
public void DocumentMustContainAtLeastOneDataOrErrorOrMeta() { var people = new Person[] { }; var target = new ResourceSerializer(urlBuilder: new DefaultUrlPathBuilder("/api")); var resourceResult = new ResourceResult { Resource = DefaultResource, Result = people }; var result = JToken.Parse(target.Serialize(resourceResult, GetUri().ToString())); _output.WriteLine(result.ToString()); Assert.NotNull(result["data"]); }
public void HandlesNullValues() { var person = new Person(id: "45"); var target = new ResourceSerializer(urlBuilder: new DefaultUrlPathBuilder("/api")); var resourceResult = new ResourceResult { Resource = DefaultResource, Result = person }; var result = JToken.Parse(target.Serialize(resourceResult, GetUri(id: "45").ToString())); _output.WriteLine(result.ToString()); var relationships = result["data"]["relationships"]; var attributes = result["data"]["attributes"]; Assert.NotNull(attributes["first-name"]); Assert.NotNull(attributes["last-name"]); Assert.NotNull(attributes["age"]); Assert.Null(relationships["job"]["data"]); Assert.Null(relationships["friends"]["data"]); }
public void UsesCustomIdInCollections() { var person = new Person(id: "abc", prefill: true) { Friends = new List<Person> { new Person(id: "def", prefill: true), new Person(id: "ghi", prefill: true), new Person(id: "jkl", prefill: true), } }; var target = new ResourceSerializer(urlBuilder: new DefaultUrlPathBuilder("/api")); var resourceResult = new ResourceResult { Resource = DefaultResource, Result = person }; var result = JToken.Parse(target.Serialize(resourceResult, GetUri(id: "abc").ToString())); _output.WriteLine(result.ToString()); var ids = result["data"]["relationships"]["friends"]["data"].Select(t => t.Value<string>("id")); var expected = person.Friends.Select(p => p.Identifier); Assert.Equal(expected, ids); }
public void HandlesNullValues() { var person = new Person(id: "45"); var target = new ResourceSerializer(person, DefaultResource, GetUri(id: "45"), DefaultPathBuilder, null); var result = target.Serialize(); _output.WriteLine(result.ToString()); var relationships = result["data"]["relationships"]; var attributes = result["data"]["attributes"]; Assert.NotNull(attributes["first-name"]); Assert.NotNull(attributes["last-name"]); Assert.NotNull(attributes["age"]); Assert.Null(relationships["job"]["data"]); Assert.Null(relationships["friends"]["data"]); }