@@ -13,7 +13,11 @@ import io.github.freya022.botcommands.api.parameters.resolvers.ModalParameterRes
1313import io.github.freya022.botcommands.internal.modals.resolvers.*
1414import io.github.freya022.botcommands.internal.parameters.ResolverContainer
1515import io.mockk.every
16+ import io.mockk.just
1617import io.mockk.mockk
18+ import io.mockk.runs
19+ import net.dv8tion.jda.api.components.Component
20+ import net.dv8tion.jda.api.components.Component.Type.*
1721import net.dv8tion.jda.api.entities.*
1822import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel
1923import net.dv8tion.jda.api.interactions.modals.ModalMapping
@@ -50,27 +54,32 @@ object ModalInputResolverTests {
5054 every { channels } returns this @ModalInputResolverTests.channels
5155 every { getMentions() } returns this @ModalInputResolverTests.roles
5256 }
53- private val attachments = listOf<Message .Attachment >(mockk())
57+ private val attachments = listOf<Message .Attachment >(mockk {
58+ every { close() } just runs
59+ })
5460
5561 @MethodSource(" modalInputs" )
5662 @ParameterizedTest
57- suspend fun `Modal input parameter can be resolved` (index : Int , expected : Any? ) {
63+ suspend fun `Modal input parameter can be resolved` (index : Int , type : Component . Type , expected : Any? ) {
5864 val serviceContainer = mockk<ServiceContainer > {
5965 every { getServiceNamesForAnnotation(Resolver ::class ) } returns listOf (
6066 " modalMentionsResolver" ,
6167 " modalStringResolver" ,
6268 " modalStringListResolver" ,
69+ " modalAttachmentResolver" ,
6370 " modalAttachmentListResolver" ,
6471 )
6572
6673 every { findAnnotationOnService(" modalMentionsResolver" , Resolver ::class ) } returns Resolver (0 )
6774 every { findAnnotationOnService(" modalStringResolver" , Resolver ::class ) } returns Resolver (0 )
6875 every { findAnnotationOnService(" modalStringListResolver" , Resolver ::class ) } returns Resolver (0 )
76+ every { findAnnotationOnService(" modalAttachmentResolver" , Resolver ::class ) } returns Resolver (0 )
6977 every { findAnnotationOnService(" modalAttachmentListResolver" , Resolver ::class ) } returns Resolver (0 )
7078
7179 every { getService(" modalMentionsResolver" , ParameterResolver ::class ) } returns ModalMentionsResolver
7280 every { getService(" modalStringResolver" , ParameterResolver ::class ) } returns ModalStringResolver
7381 every { getService(" modalStringListResolver" , ParameterResolver ::class ) } returns ModalStringListResolver
82+ every { getService(" modalAttachmentResolver" , ParameterResolver ::class ) } returns ModalAttachmentResolver
7483 every { getService(" modalAttachmentListResolver" , ParameterResolver ::class ) } returns ModalAttachmentListResolver
7584 }
7685 val resolvers = ResolverContainer (serviceContainer, listOf (ModalIMentionableResolverFactory ))
@@ -83,6 +92,7 @@ object ModalInputResolverTests {
8392 every { asStringList } returns strings
8493 every { asMentions } returns mentions
8594 every { asAttachmentList } returns attachments
95+ every { this @mockk.type } returns type
8696 }
8797
8898 val value = resolver.resolveSuspend(
@@ -97,28 +107,30 @@ object ModalInputResolverTests {
97107 @JvmStatic
98108 fun modalInputs (): List <Arguments > {
99109 val listOf = listOf (
100- arguments(" TextInput String" , 0 , STRING ),
101- arguments(" Select menu strings" , 1 , strings),
102- arguments(" Select menu mentionable" , 2 , role),
103- arguments(" Select menu mentionables" , 3 , roles),
104- arguments(" Select menu role" , 4 , role),
105- arguments(" Select menu roles" , 5 , roles),
106- arguments(" Select menu user" , 6 , user),
107- arguments(" Select menu users" , 7 , users),
108- arguments(" Select menu input user" , 8 , inputUser),
109- arguments(" Select menu input users" , 9 , inputUsers),
110- arguments(" Select menu member" , 10 , member),
111- arguments(" Select menu members" , 11 , members),
112- arguments(" Select menu channel" , 12 , channel),
113- arguments(" Select menu channels" , 13 , channels),
114- arguments(" Select menu mentions" , 14 , mentions),
115- arguments(" Attachments" , 15 , attachments),
110+ arguments(" TextInput String" , 0 , TEXT_INPUT , STRING ),
111+ arguments(" Select menu string" , 16 , STRING_SELECT , STRING ),
112+ arguments(" Select menu strings" , 1 , STRING_SELECT , strings),
113+ arguments(" Select menu mentionable" , 2 , MENTIONABLE_SELECT , role),
114+ arguments(" Select menu mentionables" , 3 , MENTIONABLE_SELECT , roles),
115+ arguments(" Select menu role" , 4 , ROLE_SELECT , role),
116+ arguments(" Select menu roles" , 5 , ROLE_SELECT , roles),
117+ arguments(" Select menu user" , 6 , USER_SELECT , user),
118+ arguments(" Select menu users" , 7 , USER_SELECT , users),
119+ arguments(" Select menu input user" , 8 , USER_SELECT , inputUser),
120+ arguments(" Select menu input users" , 9 , USER_SELECT , inputUsers),
121+ arguments(" Select menu member" , 10 , USER_SELECT , member),
122+ arguments(" Select menu members" , 11 , USER_SELECT , members),
123+ arguments(" Select menu channel" , 12 , CHANNEL_SELECT , channel),
124+ arguments(" Select menu channels" , 13 , CHANNEL_SELECT , channels),
125+ arguments(" Select menu mentions" , 14 , MENTIONABLE_SELECT , mentions),
126+ arguments(" Attachment" , 17 , FILE_UPLOAD , attachments.first()),
127+ arguments(" Attachments" , 15 , FILE_UPLOAD , attachments),
116128 )
117129 return listOf
118130 }
119131
120- private fun arguments (name : String , index : Int , expected : Any? ) =
121- argumentSet(name, index, expected)
132+ private fun arguments (name : String , index : Int , type : Component . Type , expected : Any? ) =
133+ argumentSet(name, index, type, expected)
122134
123135 private fun userFunc (
124136 @Suppress(" unused" ) textInput : String ,
@@ -137,5 +149,7 @@ object ModalInputResolverTests {
137149 @Suppress(" unused" ) selectedChannels : List <GuildChannel >,
138150 @Suppress(" unused" ) selectedMentions : Mentions ,
139151 @Suppress(" unused" ) attachments : List <Message .Attachment >,
152+ @Suppress(" unused" ) selectedString : String ,
153+ @Suppress(" unused" ) attachment : Message .Attachment ,
140154 ) {}
141155}
0 commit comments