aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests/JwtTokenUnitTest.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-04-11 20:11:23 +0800
committercrupest <crupest@outlook.com>2019-04-11 20:11:23 +0800
commit63573d7c988e0bc1b7e82eeea53ecc3678b0a2f5 (patch)
tree34118752ae3015a26c0f6f3a02b3043806ce895a /Timeline.Tests/JwtTokenUnitTest.cs
parent5b5ca3acb1b9decb5ad13798dc79ba2d58f2ce95 (diff)
downloadtimeline-63573d7c988e0bc1b7e82eeea53ecc3678b0a2f5.tar.gz
timeline-63573d7c988e0bc1b7e82eeea53ecc3678b0a2f5.tar.bz2
timeline-63573d7c988e0bc1b7e82eeea53ecc3678b0a2f5.zip
Change create token api.
Diffstat (limited to 'Timeline.Tests/JwtTokenUnitTest.cs')
-rw-r--r--Timeline.Tests/JwtTokenUnitTest.cs57
1 files changed, 29 insertions, 28 deletions
diff --git a/Timeline.Tests/JwtTokenUnitTest.cs b/Timeline.Tests/JwtTokenUnitTest.cs
index e55bc82c..7e881895 100644
--- a/Timeline.Tests/JwtTokenUnitTest.cs
+++ b/Timeline.Tests/JwtTokenUnitTest.cs
@@ -1,14 +1,8 @@
using Microsoft.AspNetCore.Mvc.Testing;
using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Net;
using System.Net.Http;
-using System.Text;
-using System.Threading.Tasks;
-using Timeline.Controllers;
-using Timeline.Services;
+using Timeline.Entities;
using Timeline.Tests.Helpers;
using Timeline.Tests.Helpers.Authentication;
using Xunit;
@@ -18,6 +12,7 @@ namespace Timeline.Tests
{
public class JwtTokenUnitTest : IClassFixture<WebApplicationFactory<Startup>>
{
+ private const string CreateTokenUrl = "/api/User/CreateToken";
private const string ValidateTokenUrl = "/api/User/ValidateToken";
private readonly WebApplicationFactory<Startup> _factory;
@@ -28,53 +23,59 @@ namespace Timeline.Tests
}
[Fact]
- public async void ValidateToken_BadTokenTest()
+ public async void CreateTokenTest_BadCredential()
{
using (var client = _factory.CreateDefaultClient())
{
- var response = await client.PostAsync(ValidateTokenUrl, new StringContent("bad token hahaha", Encoding.UTF8, "text/plain"));
-
+ var response = await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest { Username = "???", Password = "???" });
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-
- var validationInfo = JsonConvert.DeserializeObject<TokenValidationResult>(await response.Content.ReadAsStringAsync());
-
- Assert.False(validationInfo.IsValid);
- Assert.Null(validationInfo.UserInfo);
+ var result = JsonConvert.DeserializeObject<CreateTokenResponse>(await response.Content.ReadAsStringAsync());
+ Assert.False(result.Success);
+ Assert.Null(result.Token);
+ Assert.Null(result.UserInfo);
}
}
[Fact]
- public async void ValidateToken_PlainTextGoodTokenTest()
+ public async void CreateTokenTest_GoodCredential()
{
using (var client = _factory.CreateDefaultClient())
{
- var createTokenResult = await client.CreateUserTokenAsync("admin", "admin");
+ var response = await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest { Username = "user", Password = "user" });
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ var result = JsonConvert.DeserializeObject<CreateTokenResponse>(await response.Content.ReadAsStringAsync());
+ Assert.True(result.Success);
+ Assert.NotNull(result.Token);
+ Assert.NotNull(result.UserInfo);
+ }
+ }
- var response = await client.PostAsync(ValidateTokenUrl, new StringContent(createTokenResult.Token, Encoding.UTF8, "text/plain"));
+ [Fact]
+ public async void ValidateTokenTest_BadToken()
+ {
+ using (var client = _factory.CreateDefaultClient())
+ {
+ var response = await client.PostAsJsonAsync(ValidateTokenUrl, new TokenValidationRequest { Token = "bad token hahaha" });
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
- var result = JsonConvert.DeserializeObject<TokenValidationResult>(await response.Content.ReadAsStringAsync());
+ var validationInfo = JsonConvert.DeserializeObject<TokenValidationResponse>(await response.Content.ReadAsStringAsync());
- Assert.True(result.IsValid);
- Assert.NotNull(result.UserInfo);
- Assert.Equal(createTokenResult.UserInfo.Username, result.UserInfo.Username);
- Assert.Equal(createTokenResult.UserInfo.Roles, result.UserInfo.Roles);
+ Assert.False(validationInfo.IsValid);
+ Assert.Null(validationInfo.UserInfo);
}
}
[Fact]
- public async void ValidateToken_JsonGoodTokenTest()
+ public async void ValidateTokenTest_GoodToken()
{
using (var client = _factory.CreateDefaultClient())
{
var createTokenResult = await client.CreateUserTokenAsync("admin", "admin");
- var response = await client.PostAsJsonAsync(ValidateTokenUrl, new UserController.TokenValidationRequest { Token = createTokenResult.Token });
-
+ var response = await client.PostAsJsonAsync(ValidateTokenUrl, new TokenValidationRequest { Token = createTokenResult.Token });
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-
- var result = JsonConvert.DeserializeObject<TokenValidationResult>(await response.Content.ReadAsStringAsync());
+ var result = JsonConvert.DeserializeObject<TokenValidationResponse>(await response.Content.ReadAsStringAsync());
Assert.True(result.IsValid);
Assert.NotNull(result.UserInfo);