public void organisation_get_json_with_multi_link_linkrel() { // arrange var mediaFormatter = new JsonHalMediaTypeOutputFormatter( new JsonSerializerSettings { Formatting = Formatting.Indented }, ArrayPool <char> .Shared); var resourceWithAppPath = new OrganisationWithLinkTitleRepresentation(1, "Org Name"); resourceWithAppPath.Links.Add(new Link("multi-rel-with-single-link", "~/api/organisations/test") { IsMultiLink = true }); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links", "~/api/organisations/test1") { IsMultiLink = true }); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links", "~/api/organisations/test2") { IsMultiLink = true }); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links-with-is-multilink-false", "~/api/organisations/test-f1")); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links-with-is-multilink-false", "~/api/organisations/test-f2")); // act using (var stream = new StringWriter()) { mediaFormatter.WriteObject(stream, resourceWithAppPath); string serialisedResult = stream.ToString(); // assert this.Assent(serialisedResult); } }
public void organisation_parse_json_with_multi_link_linkrel() { // arrange var mediaFormatter = new JsonHalMediaTypeOutputFormatter( new JsonSerializerSettings { Formatting = Formatting.Indented }, ArrayPool <char> .Shared); var resourceWithAppPath = new OrganisationWithLinkTitleRepresentation(1, "Org Name"); resourceWithAppPath.Links.Add(new Link("multi-rel-with-single-link", "~/api/organisations/test") { IsMultiLink = true }); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links", "~/api/organisations/test1") { IsMultiLink = true }); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links", "~/api/organisations/test2") { IsMultiLink = true }); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links-with-is-multilink-false", "~/api/organisations/test1")); resourceWithAppPath.Links.Add(new Link("multi-rel-with-multiple-links-with-is-multilink-false", "~/api/organisations/test2")); string serialisedResource; // serialize using (var stream = new StringWriter()) { mediaFormatter.WriteObject(stream, resourceWithAppPath); serialisedResource = stream.ToString(); } // parse again var inputFormatter = new JsonHalMediaTypeInputFormatterWithCreateSerializer( NullLogger.Instance, new JsonSerializerSettings { Formatting = Formatting.Indented }, ArrayPool <char> .Shared, new DefaultObjectPoolProvider(), new MvcOptions(), new MvcJsonOptions()); var inputSerializer = inputFormatter.CreateJsonSerializer(); using (var stream = new StringReader(serialisedResource)) { using (var jsonReader = new JsonTextReader(stream)) { var parsedResource = inputSerializer.Deserialize <OrganisationWithLinkTitleRepresentation>(jsonReader); Assert.True(parsedResource.Links.Where(l => l.Rel == "multi-rel-with-single-link").All(l => l.IsMultiLink)); Assert.True(parsedResource.Links.Where(l => l.Rel == "multi-rel-with-multiple-links").All(l => l.IsMultiLink)); Assert.True(parsedResource.Links.Where(l => l.Rel == "multi-rel-with-multiple-links-with-is-multilink-false").All(l => l.IsMultiLink)); Assert.True(parsedResource.Links.Where(l => l.Rel == "someRel").All(l => !l.IsMultiLink)); } } }
public void organisation_get_json_with_link_title_test() { // arrange var mediaFormatter = new JsonHalMediaTypeOutputFormatter( new JsonSerializerSettings { Formatting = Formatting.Indented }, ArrayPool <char> .Shared); var resourceWithAppPath = new OrganisationWithLinkTitleRepresentation(1, "Org Name"); // act using (var stream = new StringWriter()) { mediaFormatter.WriteObject(stream, resourceWithAppPath); string serialisedResult = stream.ToString(); // assert this.Assent(serialisedResult); } }
public void organisation_get_json_with_link_title_test() { // arrange var mediaFormatter = new JsonHalMediaTypeFormatter { Indent = true }; var content = new StringContent(string.Empty); var resourceWithAppPath = new OrganisationWithLinkTitleRepresentation(1, "Org Name"); var type = resourceWithAppPath.GetType(); // act using (var stream = new MemoryStream()) { mediaFormatter.WriteToStreamAsync(type, resourceWithAppPath, stream, content, null); stream.Seek(0, SeekOrigin.Begin); var serialisedResult = new StreamReader(stream).ReadToEnd(); // assert Approvals.Verify(serialisedResult, s => s.Replace("\r\n", "\n")); } }