Skip to content

Commit 3803fb4

Browse files
test: add QueryFutureChannelBans test with target_user_id filter
Test the new targetUserId parameter for filtering future channel bans. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 1fb134d commit 3803fb4

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

src/test/java/io/getstream/chat/java/UserTest.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,4 +506,64 @@ void whenGeneratingUserToken_thenNoException() {
506506

507507
Assertions.assertEquals(197, token.length());
508508
}
509+
510+
@DisplayName("Can query future channel bans with target_user_id filter")
511+
@Test
512+
void whenQueryingFutureChannelBansWithTargetUserId_thenFiltersCorrectly() {
513+
String creatorId = RandomStringUtils.randomAlphabetic(10);
514+
String targetId1 = RandomStringUtils.randomAlphabetic(10);
515+
String targetId2 = RandomStringUtils.randomAlphabetic(10);
516+
517+
// Create users
518+
UserUpsertRequest usersUpsertRequest = User.upsert();
519+
usersUpsertRequest.user(UserRequestObject.builder().id(creatorId).name("Creator").build());
520+
usersUpsertRequest.user(UserRequestObject.builder().id(targetId1).name("Target 1").build());
521+
usersUpsertRequest.user(UserRequestObject.builder().id(targetId2).name("Target 2").build());
522+
Assertions.assertDoesNotThrow(() -> usersUpsertRequest.request());
523+
524+
// Ban both targets from future channels created by creator
525+
Assertions.assertDoesNotThrow(
526+
() ->
527+
User.ban()
528+
.userId(creatorId)
529+
.targetUserId(targetId1)
530+
.banFromFutureChannels(true)
531+
.reason("test ban 1")
532+
.request());
533+
534+
Assertions.assertDoesNotThrow(
535+
() ->
536+
User.ban()
537+
.userId(creatorId)
538+
.targetUserId(targetId2)
539+
.banFromFutureChannels(true)
540+
.reason("test ban 2")
541+
.request());
542+
543+
// Query with target_user_id filter - should only return the specific target
544+
var response =
545+
Assertions.assertDoesNotThrow(
546+
() -> User.queryFutureChannelBans().userId(creatorId).targetUserId(targetId1).request());
547+
Assertions.assertEquals(1, response.getBans().size());
548+
Assertions.assertEquals(targetId1, response.getBans().get(0).getUser().getId());
549+
550+
// Query for the other target
551+
response =
552+
Assertions.assertDoesNotThrow(
553+
() -> User.queryFutureChannelBans().userId(creatorId).targetUserId(targetId2).request());
554+
Assertions.assertEquals(1, response.getBans().size());
555+
Assertions.assertEquals(targetId2, response.getBans().get(0).getUser().getId());
556+
557+
// Query all future channel bans by creator (without target filter)
558+
response =
559+
Assertions.assertDoesNotThrow(
560+
() -> User.queryFutureChannelBans().userId(creatorId).request());
561+
Assertions.assertTrue(response.getBans().size() >= 2);
562+
563+
// Cleanup - unban both users
564+
Assertions.assertDoesNotThrow(
565+
() -> User.unban(targetId1).removeFutureChannelsBan(true).request());
566+
Assertions.assertDoesNotThrow(
567+
() -> User.unban(targetId2).removeFutureChannelsBan(true).request());
568+
}
509569
}

0 commit comments

Comments
 (0)