Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
                }
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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"));
            }
        }