public void SetJwtAuthorizationHeaderWithInvalidAddressThrowsArgumentNullException(string address)
        {
            var sut = new HttpClient();

            var ex = Assert.Throws<ArgumentException>(() => sut.SetJwtAuthorizationHeader(this.certificate, address));

            Assert.Equal("appliesToAddress", ex.ParamName);
        }
        public void SetJwtAuthorizationHeaderWithInvalidIssuerThrowsArgumentNullException(string issuer)
        {
            var sut = new HttpClient();

            var ex = Assert.Throws<ArgumentException>(
                () => sut.SetJwtAuthorizationHeader(this.certificate, "http://www.example.com", null, issuer));

            Assert.Equal("tokenIssuerName", ex.ParamName);
        }
        public void SetJwtAuthorizationHeaderWithDurationProperlySetsTokenLifetime()
        {
            var sut = new HttpClient();

            var duration = TimeSpan.FromSeconds(60);

            sut.SetJwtAuthorizationHeader(
                this.certificate, "http://www.example.com", null, "self", duration);

            var token = new JwtSecurityToken(sut.DefaultRequestHeaders.Authorization.Parameter);

            Assert.Equal(duration, token.ValidTo - token.ValidFrom);
        }
        public void SetJwtAuthorizationHeaderCorrectly()
        {
            var sut = new HttpClient();

            var claim = new Claim(ClaimTypes.Name, "User1");

            sut.SetJwtAuthorizationHeader(this.certificate, "http://www.example.com", new Claim[] { claim });

            var principal = this.ValidateToken(
                sut.DefaultRequestHeaders.Authorization.Parameter, "http://www.example.com");

            Assert.Equal("User1", principal.Identity.Name);
        }
        public void SetJwtAuthorizationHeaderWithNullCertifiacteThrowsArgumentNullException()
        {
            var sut = new HttpClient();

            var ex = Assert.Throws<ArgumentNullException>(
                () => sut.SetJwtAuthorizationHeader(null, "http://www.example.com"));

            Assert.Equal("signingCertificate", ex.ParamName);
        }