diff options
Diffstat (limited to 'Timeline.Tests')
-rw-r--r-- | Timeline.Tests/Helpers/TestUsers.cs | 4 | ||||
-rw-r--r-- | Timeline.Tests/Helpers/UserInfoComparers.cs | 49 | ||||
-rw-r--r-- | Timeline.Tests/JwtTokenUnitTest.cs | 2 | ||||
-rw-r--r-- | Timeline.Tests/UserUnitTest.cs | 4 |
4 files changed, 54 insertions, 5 deletions
diff --git a/Timeline.Tests/Helpers/TestUsers.cs b/Timeline.Tests/Helpers/TestUsers.cs index 89ddf218..dd00e38d 100644 --- a/Timeline.Tests/Helpers/TestUsers.cs +++ b/Timeline.Tests/Helpers/TestUsers.cs @@ -28,8 +28,8 @@ namespace Timeline.Tests.Helpers MockUsers = mockUsers; - var mockUserInfos = mockUsers.Select(u => UserInfo.Create(u)).ToList(); - mockUserInfos.Sort(UserInfo.Comparer); + var mockUserInfos = mockUsers.Select(u => UserUtility.CreateUserInfo(u)).ToList(); + mockUserInfos.Sort(UserInfoComparers.Comparer); MockUserInfos = mockUserInfos; } diff --git a/Timeline.Tests/Helpers/UserInfoComparers.cs b/Timeline.Tests/Helpers/UserInfoComparers.cs new file mode 100644 index 00000000..d88b6622 --- /dev/null +++ b/Timeline.Tests/Helpers/UserInfoComparers.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Timeline.Entities; + +namespace Timeline.Tests.Helpers +{ + public static class UserInfoComparers + { + public static IEqualityComparer<UserInfo> EqualityComparer { get; } = new EqualityComparerImpl(); + public static IComparer<UserInfo> Comparer { get; } = Comparer<UserInfo>.Create(Compare); + + + private class EqualityComparerImpl : IEqualityComparer<UserInfo> + { + bool IEqualityComparer<UserInfo>.Equals(UserInfo x, UserInfo y) + { + return Compare(x, y) == 0; + } + + int IEqualityComparer<UserInfo>.GetHashCode(UserInfo obj) + { + return obj.Username.GetHashCode() ^ obj.IsAdmin.GetHashCode(); + } + } + + public static int Compare(UserInfo left, UserInfo right) + { + if (left == null) + { + if (right == null) + return 0; + return -1; + } + + if (right == null) + return 1; + + var uc = string.Compare(left.Username, right.Username); + if (uc != 0) + return uc; + + if (left.IsAdmin == right.IsAdmin) + return 0; + + return left.IsAdmin ? -1 : 1; + } + } +} diff --git a/Timeline.Tests/JwtTokenUnitTest.cs b/Timeline.Tests/JwtTokenUnitTest.cs index 8a503bd7..a4e5432f 100644 --- a/Timeline.Tests/JwtTokenUnitTest.cs +++ b/Timeline.Tests/JwtTokenUnitTest.cs @@ -78,7 +78,7 @@ namespace Timeline.Tests 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.Equal(createTokenResult.UserInfo.IsAdmin, result.UserInfo.IsAdmin); } } } diff --git a/Timeline.Tests/UserUnitTest.cs b/Timeline.Tests/UserUnitTest.cs index 7d8cc824..a4b4dace 100644 --- a/Timeline.Tests/UserUnitTest.cs +++ b/Timeline.Tests/UserUnitTest.cs @@ -28,8 +28,8 @@ namespace Timeline.Tests var res1 = await client.GetAsync("users"); Assert.Equal(HttpStatusCode.OK, res1.StatusCode); var users = JsonConvert.DeserializeObject<UserInfo[]>(await res1.Content.ReadAsStringAsync()).ToList(); - users.Sort(UserInfo.Comparer); - Assert.Equal(TestMockUsers.MockUserInfos, users, UserInfo.EqualityComparer); + users.Sort(UserInfoComparers.Comparer); + Assert.Equal(TestMockUsers.MockUserInfos, users, UserInfoComparers.EqualityComparer); } } } |