11package org .togetherjava .tjbot .features .tags ;
22
3- import net .dv8tion .jda .api .Permission ;
4- import net .dv8tion .jda .api .entities .Member ;
53import net .dv8tion .jda .api .entities .MessageEmbed ;
64import net .dv8tion .jda .api .events .interaction .command .SlashCommandInteractionEvent ;
7- import net .dv8tion .jda .api .events .interaction .component .ButtonInteractionEvent ;
85import org .junit .jupiter .api .BeforeEach ;
96import org .junit .jupiter .api .DisplayName ;
107import org .junit .jupiter .api .Test ;
1714
1815import javax .annotation .Nullable ;
1916
20- import java .util .List ;
21-
2217import static org .junit .jupiter .api .Assertions .assertEquals ;
2318import static org .junit .jupiter .api .Assertions .assertNull ;
2419import static org .mockito .Mockito .*;
@@ -42,15 +37,6 @@ private SlashCommandInteractionEvent triggerSlashCommand() {
4237 return event ;
4338 }
4439
45- private ButtonInteractionEvent triggerButtonClick (Member userWhoClicked , long idOfAuthor ) {
46- ButtonInteractionEvent event = jdaTester .createButtonInteractionEvent ()
47- .setUserWhoClicked (userWhoClicked )
48- .setActionRow (TagSystem .createDeleteButton ("foo" ))
49- .buildWithSingleButton ();
50- command .onButtonClick (event , List .of (Long .toString (idOfAuthor )));
51- return event ;
52- }
53-
5440 @ BeforeEach
5541 void setUp () {
5642 system = spy (new TagSystem (Database .createMemoryDatabase (Tags .TAGS )));
@@ -100,49 +86,4 @@ void multipleElementListForMultipleTag() {
10086 • third""" ;
10187 assertEquals (expectedDescription , getResponseDescription (event ));
10288 }
103-
104- @ Test
105- @ DisplayName ("The list of tags can be deleted by the original author" )
106- void authorCanDeleteList () {
107- // GIVEN a '/tags' message send by an author
108- long idOfAuthor = 1 ;
109- Member messageAuthor = jdaTester .createMemberSpy (idOfAuthor );
110-
111- // WHEN the original author clicks the delete button
112- ButtonInteractionEvent event = triggerButtonClick (messageAuthor , idOfAuthor );
113-
114- // THEN the '/tags' message is deleted
115- verify (event .getMessage ()).delete ();
116- }
117-
118- @ Test
119- @ DisplayName ("The list of tags can be deleted by a moderator" )
120- void moderatorCanDeleteList () {
121- // GIVEN a '/tags' message send by an author and a moderator
122- long idOfAuthor = 1 ;
123- Member moderator = jdaTester .createMemberSpy (2 );
124- doReturn (true ).when (moderator ).hasPermission (any (Permission .class ));
125-
126- // WHEN the moderator clicks the delete button
127- ButtonInteractionEvent event = triggerButtonClick (moderator , idOfAuthor );
128-
129- // THEN the '/tags' message is deleted
130- verify (event .getMessage ()).delete ();
131- }
132-
133- @ Test
134- @ DisplayName ("The list of tags cannot be deleted by other users" )
135- void othersCanNotDeleteList () {
136- // GIVEN a '/tags' message send by an author and another user
137- long idOfAuthor = 1 ;
138- Member otherUser = jdaTester .createMemberSpy (3 );
139- doReturn (false ).when (otherUser ).hasPermission (any (Permission .class ));
140-
141- // WHEN the other clicks the delete button
142- ButtonInteractionEvent event = triggerButtonClick (otherUser , idOfAuthor );
143-
144- // THEN the '/tags' message is not deleted
145- verify (event .getMessage (), never ()).delete ();
146- verify (event ).reply (anyString ());
147- }
14889}
0 commit comments