aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Timeline.Tests/Services/UserTokenManagerTest.cs32
-rw-r--r--Timeline.Tests/Timeline.Tests.csproj8
-rw-r--r--Timeline/Timeline.csproj8
3 files changed, 40 insertions, 8 deletions
diff --git a/Timeline.Tests/Services/UserTokenManagerTest.cs b/Timeline.Tests/Services/UserTokenManagerTest.cs
index 86ad84b3..a8ace778 100644
--- a/Timeline.Tests/Services/UserTokenManagerTest.cs
+++ b/Timeline.Tests/Services/UserTokenManagerTest.cs
@@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using Timeline.Models;
using Timeline.Services;
using Timeline.Tests.Helpers;
using Xunit;
@@ -48,5 +49,36 @@ namespace Timeline.Tests.Services
_mockUserService.Setup(s => s.VerifyCredential(username, password)).ThrowsAsync((Exception)Activator.CreateInstance(exceptionType));
await _service.Awaiting(s => s.CreateToken(username, password)).Should().ThrowAsync(exceptionType);
}
+
+ [Theory]
+ [InlineData(false)]
+ [InlineData(true)]
+ public async Task CreateToken_Success(bool setExpireTime)
+ {
+ const string username = "uuu";
+ const string password = "ppp";
+ var mockExpireTime = setExpireTime ? (DateTime?)DateTime.Now : null;
+ var mockUserInfo = new UserInfo
+ {
+ Id = 1,
+ Username = username,
+ Administrator = false,
+ Version = 1
+ };
+ const string mockToken = "mocktokenaaaaaaa";
+
+ _mockUserService.Setup(s => s.VerifyCredential(username, password)).ReturnsAsync(mockUserInfo);
+ _mockUserTokenService.Setup(s => s.GenerateToken(
+ It.Is<UserTokenInfo>(userTokenInfo =>
+ userTokenInfo.Id == mockUserInfo.Id &&
+ userTokenInfo.Version == mockUserInfo.Version &&
+ userTokenInfo.ExpireAt == mockExpireTime))).Returns(mockToken);
+ (await _service.CreateToken(username, password, mockExpireTime))
+ .Should().BeEquivalentTo(new UserTokenCreateResult
+ {
+ Token = mockToken,
+ User = mockUserInfo
+ });
+ }
}
}
diff --git a/Timeline.Tests/Timeline.Tests.csproj b/Timeline.Tests/Timeline.Tests.csproj
index 0845d1ab..bde4f430 100644
--- a/Timeline.Tests/Timeline.Tests.csproj
+++ b/Timeline.Tests/Timeline.Tests.csproj
@@ -7,18 +7,18 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="coverlet.collector" Version="1.1.0">
+ <PackageReference Include="coverlet.collector" Version="1.2.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="FluentAssertions" Version="5.9.0" />
+ <PackageReference Include="FluentAssertions" Version="5.10.0" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
- <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.0" />
+ <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.1" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="xunit" Version="2.4.1" />
diff --git a/Timeline/Timeline.csproj b/Timeline/Timeline.csproj
index 27897177..90588f70 100644
--- a/Timeline/Timeline.csproj
+++ b/Timeline/Timeline.csproj
@@ -19,10 +19,10 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.1.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.0">
+ <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.1" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.1.1" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.1" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>