@@ -3,7 +3,12 @@ package by.jprof.telegram.bot.pins.utils
33import by.jprof.telegram.bot.pins.model.PinDuration
44import by.jprof.telegram.bot.pins.model.PinRequest
55import dev.inmo.tgbotapi.types.chat.CommonUser
6+ import dev.inmo.tgbotapi.types.chat.ForumChat
67import dev.inmo.tgbotapi.types.chat.GroupChat
8+ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicCreated
9+ import dev.inmo.tgbotapi.types.message.CommonForumContentMessageImpl
10+ import dev.inmo.tgbotapi.types.message.CommonSupergroupEventMessage
11+ import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
712import dev.inmo.tgbotapi.types.message.abstracts.CommonGroupContentMessage
813import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
914import dev.inmo.tgbotapi.types.message.abstracts.Message
@@ -39,7 +44,9 @@ internal class PinRequestFinderTest {
3944 Assertions .assertNull(PinRequestFinder .DEFAULT (update))
4045 } else {
4146 Assertions .assertEquals(
42- expected.copy(request = update.data as Message , message = (update.data as PossiblyReplyMessage ).replyTo),
47+ expected.copy(
48+ request = update.data as Message ,
49+ message = (update.data as PossiblyReplyMessage ).replyTo?.takeUnless { it is ChatEventMessage <* > }),
4350 PinRequestFinder .DEFAULT (update)
4451 )
4552 }
@@ -48,8 +55,10 @@ internal class PinRequestFinderTest {
4855 fun default (): Stream <Arguments >? {
4956 val user = mockk<CommonUser >()
5057 val chat = mockk<GroupChat >()
58+ val forum = mockk<ForumChat >()
5159 val request = mockk<Message >()
5260 val replyTo = mockk<Message >()
61+ val forumTopicCreated = mockk<CommonSupergroupEventMessage <ForumTopicCreated >>()
5362
5463 return Stream .of(
5564 Arguments .of(
@@ -283,6 +292,26 @@ internal class PinRequestFinderTest {
283292 duration = PinDuration .Unrecognized ,
284293 )
285294 ),
295+ Arguments .of(
296+ mockk<MessageUpdate > {
297+ every { data } returns mockk<CommonForumContentMessageImpl <TextContent >> message@{
298+ every { this @message.chat } returns forum
299+ every { this @message.replyTo } returns forumTopicCreated
300+ every { content } returns TextContent (
301+ text = " /pin" ,
302+ textSources = listOf (BotCommandTextSource (" /pin" ))
303+ )
304+ every { this @message.user } returns user
305+ }
306+ },
307+ PinRequest (
308+ message = null ,
309+ user = user,
310+ chat = forum,
311+ request = request,
312+ duration = PinDuration .Recognized (Duration .ofHours(1 )),
313+ )
314+ ),
286315 )
287316 }
288317}
0 commit comments