Example #1
0
        public void CanGenerateJwtToken()
        {
            var jwtRequest = ValidateJwtTokenHelper.GenerateJwtRequestObject();
            var result     = _classUnderTest.GenerateJwtToken(jwtRequest);

            result.Should().NotBeNullOrWhiteSpace();
        }
Example #2
0
        public void CanGenerateJwtTokenWithExpiryDate()
        {
            var jwtRequest = ValidateJwtTokenHelper.GenerateJwtRequestObject(_faker.Date.Future());
            var result     = _classUnderTest.GenerateJwtToken(jwtRequest);
            var token      = ValidateJwtTokenHelper.GetToken(result);

            result.Should().NotBeNullOrWhiteSpace();
            token.ValidTo.Date.Should().Be((DateTime)jwtRequest.ExpiresAt.Value.Date);
        }
Example #3
0
        public void CanGenerateJwtTokenWithoutExpiryDate()
        {
            var jwtRequest = ValidateJwtTokenHelper.GenerateJwtRequestObject();
            var result     = _classUnderTest.GenerateJwtToken(jwtRequest);
            var token      = ValidateJwtTokenHelper.GetToken(result);

            result.Should().NotBeNullOrWhiteSpace();
            token.ValidTo.Date.Should().BeSameDateAs(DateTime.Now.AddYears(10).Date);
        }
Example #4
0
        public void CanGenerateValidJwtTokenWithClaims()
        {
            var jwtRequest = ValidateJwtTokenHelper.GenerateJwtRequestObject();
            var token      = _classUnderTest.GenerateJwtToken(jwtRequest);

            var claimsDecrypted = ValidateJwtTokenHelper.GetJwtClaims(token, _jwtSecret);

            claimsDecrypted.Find(x => x.Type == "id").Value.Should().Be(jwtRequest.Id.ToString(CultureInfo.InvariantCulture));
            claimsDecrypted.Find(x => x.Type == "consumerName").Value.Should().Be(jwtRequest.ConsumerName);
            claimsDecrypted.Find(x => x.Type == "consumerType").Value.Should()
            .Be(jwtRequest.ConsumerType.ToString(CultureInfo.InvariantCulture));
        }
Example #5
0
        public async Task CanGenerateAnAuthTokenAsync()
        {
            var(apiLookup, apiEndpointLookup, consumerTypeLookup) = AddLookupsToDatabase();
            var tokenRequest = new TokenRequestObject
            {
                Consumer       = _faker.Random.AlphaNumeric(10),
                ConsumerType   = consumerTypeLookup.Id,
                ExpiresAt      = _faker.Date.Future(),
                ApiEndpoint    = apiEndpointLookup.Id,
                ApiName        = apiLookup.Id,
                HttpMethodType = "GET",
                AuthorizedBy   = _faker.Person.Email,
                Environment    = _faker.Random.AlphaNumeric(5),
                RequestedBy    = _faker.Person.Email
            };

            Environment.SetEnvironmentVariable("jwtSecret", _faker.Random.String());
            var jwtSecret = Environment.GetEnvironmentVariable("jwtSecret");

            var url      = new Uri($"/api/v1/tokens", UriKind.Relative);
            var content  = new StringContent(JsonConvert.SerializeObject(tokenRequest), Encoding.UTF8, "application/json");
            var response = await Client.PostAsync(url, content).ConfigureAwait(true);

            content.Dispose();

            var data = await response.Content.ReadAsStringAsync().ConfigureAwait(true);

            var apiResponse = JsonConvert.DeserializeObject <GenerateTokenResponse>(data);

            var claimsDecrypted = ValidateJwtTokenHelper.GetJwtClaims(apiResponse.Token, jwtSecret);

            response.StatusCode.Should().Be(201);

            claimsDecrypted.Find(x => x.Type == "id").Value.Should().Be(apiResponse.Id.ToString(CultureInfo.InvariantCulture));
            claimsDecrypted.Find(x => x.Type == "consumerName").Value.Should().Be(tokenRequest.Consumer);
            claimsDecrypted.Find(x => x.Type == "consumerType").Value.Should()
            .Be(tokenRequest.ConsumerType.ToString(CultureInfo.InvariantCulture));
            apiResponse.Should().BeOfType <GenerateTokenResponse>();
            apiResponse.GeneratedAt.Date.Should().Be(DateTime.Now.Date);
            apiResponse.ExpiresAt.Value.Should().BeSameDateAs(tokenRequest.ExpiresAt.Value);
        }