Merge "Guest user is last." into tm-qpr-dev
This commit is contained in:
@@ -220,7 +220,12 @@ constructor(
|
|||||||
val result = withContext(backgroundDispatcher) { manager.aliveUsers }
|
val result = withContext(backgroundDispatcher) { manager.aliveUsers }
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
_userInfos.value = result.sortedBy { it.creationTime }
|
_userInfos.value =
|
||||||
|
result
|
||||||
|
// Users should be sorted by ascending creation time.
|
||||||
|
.sortedBy { it.creationTime }
|
||||||
|
// The guest user is always last, regardless of creation time.
|
||||||
|
.sortedBy { it.isGuest }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class UserRepositoryImplRefactoredTest : UserRepositoryImplTest() {
|
|||||||
val thirdExpectedValue =
|
val thirdExpectedValue =
|
||||||
setUpUsers(
|
setUpUsers(
|
||||||
count = 2,
|
count = 2,
|
||||||
hasGuest = true,
|
isLastGuestUser = true,
|
||||||
selectedIndex = 1,
|
selectedIndex = 1,
|
||||||
)
|
)
|
||||||
underTest.refreshUsers()
|
underTest.refreshUsers()
|
||||||
@@ -121,21 +121,25 @@ class UserRepositoryImplRefactoredTest : UserRepositoryImplTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `refreshUsers - sorts by creation time`() = runSelfCancelingTest {
|
fun `refreshUsers - sorts by creation time - guest user last`() = runSelfCancelingTest {
|
||||||
underTest = create(this)
|
underTest = create(this)
|
||||||
val unsortedUsers =
|
val unsortedUsers =
|
||||||
setUpUsers(
|
setUpUsers(
|
||||||
count = 3,
|
count = 3,
|
||||||
selectedIndex = 0,
|
selectedIndex = 0,
|
||||||
|
isLastGuestUser = true,
|
||||||
|
)
|
||||||
|
unsortedUsers[0].creationTime = 999
|
||||||
|
unsortedUsers[1].creationTime = 900
|
||||||
|
unsortedUsers[2].creationTime = 950
|
||||||
|
val expectedUsers =
|
||||||
|
listOf(
|
||||||
|
unsortedUsers[1],
|
||||||
|
unsortedUsers[0],
|
||||||
|
unsortedUsers[2], // last because this is the guest
|
||||||
)
|
)
|
||||||
unsortedUsers[0].creationTime = 900
|
|
||||||
unsortedUsers[1].creationTime = 700
|
|
||||||
unsortedUsers[2].creationTime = 999
|
|
||||||
val expectedUsers = listOf(unsortedUsers[1], unsortedUsers[0], unsortedUsers[2])
|
|
||||||
var userInfos: List<UserInfo>? = null
|
var userInfos: List<UserInfo>? = null
|
||||||
var selectedUserInfo: UserInfo? = null
|
|
||||||
underTest.userInfos.onEach { userInfos = it }.launchIn(this)
|
underTest.userInfos.onEach { userInfos = it }.launchIn(this)
|
||||||
underTest.selectedUserInfo.onEach { selectedUserInfo = it }.launchIn(this)
|
|
||||||
|
|
||||||
underTest.refreshUsers()
|
underTest.refreshUsers()
|
||||||
assertThat(userInfos).isEqualTo(expectedUsers)
|
assertThat(userInfos).isEqualTo(expectedUsers)
|
||||||
@@ -143,14 +147,14 @@ class UserRepositoryImplRefactoredTest : UserRepositoryImplTest() {
|
|||||||
|
|
||||||
private fun setUpUsers(
|
private fun setUpUsers(
|
||||||
count: Int,
|
count: Int,
|
||||||
hasGuest: Boolean = false,
|
isLastGuestUser: Boolean = false,
|
||||||
selectedIndex: Int = 0,
|
selectedIndex: Int = 0,
|
||||||
): List<UserInfo> {
|
): List<UserInfo> {
|
||||||
val userInfos =
|
val userInfos =
|
||||||
(0 until count).map { index ->
|
(0 until count).map { index ->
|
||||||
createUserInfo(
|
createUserInfo(
|
||||||
index,
|
index,
|
||||||
isGuest = hasGuest && index == count - 1,
|
isGuest = isLastGuestUser && index == count - 1,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
whenever(manager.aliveUsers).thenReturn(userInfos)
|
whenever(manager.aliveUsers).thenReturn(userInfos)
|
||||||
|
|||||||
Reference in New Issue
Block a user