aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests/Controllers/TokenControllerTest.cs
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2020-02-01 00:26:35 +0800
committerGitHub <noreply@github.com>2020-02-01 00:26:35 +0800
commit7b962cd876719fb871569ba3c97fb5545721a3f8 (patch)
treef02f8d57440c777d4732bc4439f82e8b25c6732c /Timeline.Tests/Controllers/TokenControllerTest.cs
parent289c7e1fada1f4dae6ce5e421e997ebddd55c2df (diff)
parentbcb0a2361467614531a337282da1fd23996924f1 (diff)
downloadtimeline-7b962cd876719fb871569ba3c97fb5545721a3f8.tar.gz
timeline-7b962cd876719fb871569ba3c97fb5545721a3f8.tar.bz2
timeline-7b962cd876719fb871569ba3c97fb5545721a3f8.zip
Merge pull request #56 from crupest/dev
Refactor API to be RESTful.
Diffstat (limited to 'Timeline.Tests/Controllers/TokenControllerTest.cs')
-rw-r--r--Timeline.Tests/Controllers/TokenControllerTest.cs119
1 files changed, 0 insertions, 119 deletions
diff --git a/Timeline.Tests/Controllers/TokenControllerTest.cs b/Timeline.Tests/Controllers/TokenControllerTest.cs
deleted file mode 100644
index 238fc237..00000000
--- a/Timeline.Tests/Controllers/TokenControllerTest.cs
+++ /dev/null
@@ -1,119 +0,0 @@
-using FluentAssertions;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging.Abstractions;
-using Moq;
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Timeline.Controllers;
-using Timeline.Models.Http;
-using Timeline.Services;
-using Timeline.Tests.Helpers;
-using Xunit;
-using static Timeline.ErrorCodes.Http.Token;
-
-namespace Timeline.Tests.Controllers
-{
- public class TokenControllerTest : IDisposable
- {
- private readonly Mock<IUserService> _mockUserService = new Mock<IUserService>();
- private readonly TestClock _mockClock = new TestClock();
-
-
- private readonly TokenController _controller;
-
- public TokenControllerTest()
- {
- _controller = new TokenController(_mockUserService.Object, NullLogger<TokenController>.Instance, _mockClock);
- }
-
- public void Dispose()
- {
- _controller.Dispose();
- }
-
- [Theory]
- [InlineData(null)]
- [InlineData(100)]
- public async Task Create_Ok(int? expire)
- {
- var mockCurrentTime = DateTime.Now;
- _mockClock.MockCurrentTime = mockCurrentTime;
- var createResult = new CreateTokenResult
- {
- Token = "mocktokenaaaaa",
- User = MockUser.User.Info
- };
- _mockUserService.Setup(s => s.CreateToken("u", "p", expire == null ? null : (DateTime?)mockCurrentTime.AddDays(expire.Value))).ReturnsAsync(createResult);
- var action = await _controller.Create(new CreateTokenRequest
- {
- Username = "u",
- Password = "p",
- Expire = expire
- });
- action.Result.Should().BeAssignableTo<OkObjectResult>()
- .Which.Value.Should().BeEquivalentTo(createResult);
- }
-
- [Fact]
- public async Task Create_UserNotExist()
- {
- _mockUserService.Setup(s => s.CreateToken("u", "p", null)).ThrowsAsync(new UserNotExistException("u"));
- var action = await _controller.Create(new CreateTokenRequest
- {
- Username = "u",
- Password = "p",
- Expire = null
- });
- action.Result.Should().BeAssignableTo<BadRequestObjectResult>()
- .Which.Value.Should().BeAssignableTo<CommonResponse>()
- .Which.Code.Should().Be(Create.BadCredential);
- }
-
- [Fact]
- public async Task Create_BadPassword()
- {
- _mockUserService.Setup(s => s.CreateToken("u", "p", null)).ThrowsAsync(new BadPasswordException("u"));
- var action = await _controller.Create(new CreateTokenRequest
- {
- Username = "u",
- Password = "p",
- Expire = null
- });
- action.Result.Should().BeAssignableTo<BadRequestObjectResult>()
- .Which.Value.Should().BeAssignableTo<CommonResponse>()
- .Which.Code.Should().Be(Create.BadCredential);
- }
-
- [Fact]
- public async Task Verify_Ok()
- {
- const string token = "aaaaaaaaaaaaaa";
- _mockUserService.Setup(s => s.VerifyToken(token)).ReturnsAsync(MockUser.User.Info);
- var action = await _controller.Verify(new VerifyTokenRequest { Token = token });
- action.Result.Should().BeAssignableTo<OkObjectResult>()
- .Which.Value.Should().BeAssignableTo<VerifyTokenResponse>()
- .Which.User.Should().BeEquivalentTo(MockUser.User.Info);
- }
-
- public static IEnumerable<object[]> Verify_BadRequest_Data()
- {
- yield return new object[] { new JwtVerifyException(JwtVerifyException.ErrorCodes.Expired), Verify.Expired };
- yield return new object[] { new JwtVerifyException(JwtVerifyException.ErrorCodes.IdClaimBadFormat), Verify.BadFormat };
- yield return new object[] { new JwtVerifyException(JwtVerifyException.ErrorCodes.OldVersion), Verify.OldVersion };
- yield return new object[] { new UserNotExistException(), Verify.UserNotExist };
- }
-
- [Theory]
- [MemberData(nameof(Verify_BadRequest_Data))]
- public async Task Verify_BadRequest(Exception e, int code)
- {
- const string token = "aaaaaaaaaaaaaa";
- _mockUserService.Setup(s => s.VerifyToken(token)).ThrowsAsync(e);
- var action = await _controller.Verify(new VerifyTokenRequest { Token = token });
- action.Result.Should().BeAssignableTo<BadRequestObjectResult>()
- .Which.Value.Should().BeAssignableTo<CommonResponse>()
- .Which.Code.Should().Be(code);
- }
- }
-}