@@ -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