public void Create()
        {
            // Act
            var result = _target.Create();

            // Assert
            Assert.IsTrue(result != Guid.Empty);
        }
Exemplo n.º 2
0
        public void Create_Valid_Token()
        {
            // Arrange
            const string issuer             = "DietIssuer";
            const string audience           = "DietAudience";
            const string key                = "8bIpdabhJwjOmwa2e6Gzjtpsuk5H0ECk";
            var          securityKey        = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(key));
            var          signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
            var          jwtOptions         = new JwtOptions
            {
                Issuer = issuer, Audience = audience, SigningCredentials = signingCredentials
            };

            var mockJwtOptions = new Mock <IOptions <JwtOptions> >();

            mockJwtOptions.Setup(x => x.Value).Returns(jwtOptions);

            var current   = DateTime.UtcNow;
            var validTo   = current.AddMinutes(300);
            var mockClock = new Mock <IClock>();

            mockClock.Setup(x => x.UtcNow).Returns(current);

            var provider = new TokenProvider(mockJwtOptions.Object, mockClock.Object);
            var id       = Guid.NewGuid();

            // Act
            var rawToken = provider.Create(new Account {
                Id = id, Role = Role.Admin
            });
            var handler       = new JwtSecurityTokenHandler();
            var securityToken = handler.ReadJwtToken(rawToken);

            // Assert
            Assert.Equal(issuer, securityToken.Issuer);
            Assert.Equal(audience, securityToken.Audiences.First());
            Assert.Equal(signingCredentials.Algorithm, securityToken.SignatureAlgorithm);
            Assert.Equal(id.ToString(), securityToken.Claims.First().Value);

            Assert.Equal(current.Date, securityToken.ValidFrom.Date);
            Assert.Equal(current.Hour, securityToken.ValidFrom.Hour);
            Assert.Equal(current.Minute, securityToken.ValidFrom.Minute);
            Assert.Equal(current.Second, securityToken.ValidFrom.Second);

            Assert.Equal(validTo.Date, securityToken.ValidTo.Date);
            Assert.Equal(validTo.Hour, securityToken.ValidTo.Hour);
            Assert.Equal(validTo.Minute, securityToken.ValidTo.Minute);
            Assert.Equal(validTo.Second, securityToken.ValidTo.Second);
        }
Exemplo n.º 3
0
 /// <summary>
 ///     加载Token
 /// </summary>
 /// <param name="creds"></param>
 /// <returns></returns>
 public Token Create(Credentials creds)
 {
     return(_provider == null ? null : _provider.Create(creds));
 }