Ejemplo n.º 1
0
        public void HateoasResponse_Empty_ThrowsException()
        {
            IEnumerable <HateoasLink> links = new HateoasLink[0];

            _ = Assert.Throws <ArgumentException>(
                () => new HateoasResponse(links));
        }
Ejemplo n.º 2
0
        public void HateoasLink_UriSelf_NullHref_ThrowsException()
        {
            Uri href = null;

            _ = Assert.Throws <ArgumentNullException>(
                () => HateoasLink.Self(href));
        }
Ejemplo n.º 3
0
        public void HateoasLink_StringSelf_SetsHref()
        {
            string href = "https://www.example.com/";

            var link = HateoasLink.Self(href);

            Assert.Equal(href, link.Href.AbsoluteUri);
        }
Ejemplo n.º 4
0
        public void HateoasLink_UriSelf_SetsHref()
        {
            Uri href = new Uri("https://www.example.com/");

            var link = HateoasLink.Self(href);

            Assert.Equal(href, link.Href);
        }
Ejemplo n.º 5
0
        public void HateoasLinkWrapper_EmptyLinks_ThrowsException()
        {
            string content = "string";
            IEnumerable <HateoasLink> links = new HateoasLink[] { };

            _ = Assert.Throws <ArgumentException>(
                () => new HateoasLinkWrapper(content, links));
        }
Ejemplo n.º 6
0
        private HateoasLink ResourceGetLinkBuilder(TId id, string shape = null, string rel = null)
        {
            var s = string.IsNullOrEmpty(shape) ? "" : $"?shape={shape}";

            var link = $"{Url.Link(HateoasConfig.ResourceGetRouteName, new { id })}{s}";

            return(HateoasLink.Get(link, rel));
        }
Ejemplo n.º 7
0
        private HateoasLink ResourcesGetLinkBuilder(object parameters, string rel = null)
        {
            var link = Url.Link(HateoasConfig.ResourcesGetRouteName, parameters);

            link = CollectionConfig.AppendToUrl(link);

            return(HateoasLink.Collection(link, rel));
        }
Ejemplo n.º 8
0
        public void HateoasLink_StringSelf_RelIsSelf()
        {
            string       href = "https://www.example.com/";
            const string self = "self";

            var link = HateoasLink.Self(href);

            Assert.Equal(self, link.Rel);
        }
Ejemplo n.º 9
0
        public void HateoasLink_UriHref_HrefAcceptsUri()
        {
            Uri    href = new Uri("https://www.example.com/");
            string rel  = "rel";

            var link = new HateoasLink(href, rel);

            Assert.Equal(href, link.Href);
        }
Ejemplo n.º 10
0
        public void HateoasLink_UriSelf_RelIsSelf()
        {
            Uri          href = new Uri("https://www.example.com/");
            const string self = "self";

            var link = HateoasLink.Self(href);

            Assert.Equal(self, link.Rel);
        }
Ejemplo n.º 11
0
        public void HateoasLink_StringHref_RelAcceptsString()
        {
            string href = "https://www.example.com/";
            string rel  = "rel";

            var link = new HateoasLink(href, rel);

            Assert.Equal(rel, link.Rel);
        }
Ejemplo n.º 12
0
        public void HateoasLink_StringHref_HrefAcceptsString()
        {
            string href = new Uri("https://www.example.com/").AbsoluteUri;
            string rel  = "rel";

            var link = new HateoasLink(href, rel);

            Assert.Equal(href, link.Href.AbsoluteUri);
        }
Ejemplo n.º 13
0
        public void HateoasLink_Self_SerializedJson_ContainsNecessaryData(
            string href, string contains)
        {
            var link = HateoasLink.Self(href);

            var serialized = link.ToJson();

            Assert.Contains(contains, serialized);
        }
Ejemplo n.º 14
0
        public void SetLinkType_ShouldSet(string data)
        {
            // arrange
            var link = new HateoasLink();

            // act
            link.AddType(data);

            // assert
            Assert.Equal(data, link.Type);
        }
Ejemplo n.º 15
0
        public void SetLinkHreflang_ShouldSet(string data)
        {
            // arrange
            var link = new HateoasLink();

            // act
            link.AddHreflang(data);

            // assert
            Assert.Equal(data, link.Hreflang);
        }
Ejemplo n.º 16
0
        public void SetLinkMedia_ShouldSet(string data)
        {
            // arrange
            var link = new HateoasLink();

            // act
            link.AddMedia(data);

            // assert
            Assert.Equal(data, link.Media);
        }
Ejemplo n.º 17
0
        public void SetLinkRel_ShouldSet(string data)
        {
            // arrange
            var link = new HateoasLink
            {
                // act
                Rel = data
            };

            // assert
            Assert.Equal(data, link.Rel);
        }
Ejemplo n.º 18
0
        public void SetLinkHref_Null_ShouldSetEmpty(string data)
        {
            // arrange
            var link = new HateoasLink
            {
                // act
                Href = data
            };

            // assert
            Assert.Equal("", link.Href);
        }
Ejemplo n.º 19
0
        public void CreateLink_ShouldCreateValidLink()
        {
            // arrange
            var link = new HateoasLink();

            // act

            // assert
            Assert.NotNull(link);
            Assert.Equal("self", link.Rel);
            Assert.Equal("GET", link.Method);
        }
Ejemplo n.º 20
0
        public void HateoasLinkWrapper_LinksContainingNulls_ThrowsException()
        {
            string content = "string";
            IEnumerable <HateoasLink> links = new HateoasLink[]
            {
                new HateoasLink("https://www.example.com/", "rel"),
                null
            };

            _ = Assert.Throws <ArgumentException>(
                () => new HateoasLinkWrapper(content, links));
        }
Ejemplo n.º 21
0
        public void IsApplicable_And_HasConditionalParameterFunction_ReturnsSameValue <T>(T testee, Func <T, bool> function)
            where T : Testee
        {
            // arrange
            var newSut      = new HateoasLink <T>(typeof(T).Name);
            var expected    = function(testee);
            var hateoasLink = newSut.HasConditional(function);

            // act
            var actual = newSut.IsApplicable(testee);

            // assert
            Assert.Same(newSut, hateoasLink);
            Assert.Equal(expected, actual);
        }
Ejemplo n.º 22
0
        public void BuildLink_ShouldBuildLink(string routeUrl, string routeUrlController, string routeUrlAction, string linkRef, HttpMethod linkMethod, int linkId)
        {
            // arrange

            // act
            HateoasLink link = _fixture._linkBuilder.Build(_fixture._mockContext, routeUrl, routeUrlController, routeUrlAction, linkRef, linkMethod, linkId);

            // assert
            // Uri uriResult;
            // bool refIsLink = Uri.TryCreate(link.Href, UriKind.RelativeOrAbsolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp;

            // TODO: Crash in UrlHelper.RouteUrl, presumably because routing is null??
            Assert.True(Uri.IsWellFormedUriString(link.Href, UriKind.RelativeOrAbsolute));
            Assert.Equal(link.Method, linkMethod.Method);
        }
Ejemplo n.º 23
0
        public void Generate_ValidParameters_ReturnsHateoasLinks <T>(T data, string routeName, string url, string method) where T : class
        {
            // arrange
            var expected = new HateoasLink(routeName, url, method);

            BuildSutDependencies(data, routeName, url, method);

            // act
            var links = _sut.Generate(data).ToArray();

            // assert
            links.Should()
            .NotBeEmpty().And
            .BeAssignableTo <IEnumerable <HateoasLink> >().And
            .BeEquivalentTo(new HateoasLink[] { expected });
        }
Ejemplo n.º 24
0
        public void Generate_ValidParameters_ReturnsHateoasLinks(HateoasTestData mockData)
        {
            // arrange
            var expected = new HateoasLink(mockData.RouteName, mockData.ExpectedUrl, mockData.Method);

            MockSutDependencies(mockData);

            // act
            var links = _sut.Generate(mockData.RouteValues).ToArray();

            // assert
            links.Should()
            .NotBeEmpty().And
            .BeAssignableTo <IEnumerable <HateoasLink> >().And
            .BeEquivalentTo(new HateoasLink[] { expected });
        }
 public virtual IHateoasLinksBuilder <TResource, TEntity> AddLink(string reference, HateoasLink link)
 {
     Links.Add(reference, link);
     return(this);
 }
Ejemplo n.º 26
0
 private HateoasLink ResourceUpsertLinkBuilder(TId id) => HateoasLink.Upsert($"{Url.Link(HateoasConfig.ResourceUpsertRouteName, new { id })}");
Ejemplo n.º 27
0
 private HateoasLink ResourcePatchLinkBuilder(TId id) => HateoasLink.Patch($"{Url.Link(HateoasConfig.ResourcePatchRouteName, new { id })}");
Ejemplo n.º 28
0
 private HateoasLink ResourceDeleteLinkBuilder(TId id) => HateoasLink.Delete($"{Url.Link(HateoasConfig.ResourceDeleteRouteName, new { id })}");
Ejemplo n.º 29
0
 public void HateoasLink_StringSelf_NonUriHref_ThrowsException(
     string href)
 {
     _ = Assert.Throws <UriFormatException>(
         () => HateoasLink.Self(href));
 }
Ejemplo n.º 30
0
 public HateoasLinkFixture()
 {
     Sut = new HateoasLink <Testee>("test");
 }