Skip to content

Commit fd8e812

Browse files
committed
finish MockPuppet and add test method for say with mention list
1 parent 0f81ae0 commit fd8e812

File tree

3 files changed

+10
-32
lines changed
  • wechaty-puppet-mock/src/main/kotlin/io/github/wechaty
  • wechaty/src

3 files changed

+10
-32
lines changed

wechaty-puppet-mock/src/main/kotlin/io/github/wechaty/MockPuppet.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class MockPuppet(puppetOptions: PuppetOptions) : Puppet(puppetOptions) {
250250
override fun messageSendText(conversationId: String, text: String, mentionList: List<String>?): Future<String?> {
251251
log.info("MockPuppet messageSendText($conversationId,$text,${JsonUtils.write(mentionList ?: "")})")
252252

253-
return CompletableFuture.completedFuture(null)
253+
return CompletableFuture.completedFuture("mock-msg-$conversationId")
254254
}
255255

256256
override fun messageSendUrl(conversationId: String, urlLinkPayload: UrlLinkPayload): Future<String?> {

wechaty/src/main/kotlin/io/github/wechaty/user/Room.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,7 @@ class Room(wechaty: Wechaty, val id: String) : Accessory(wechaty), Sayable {
7575
is String -> {
7676
var mentionList = listOf<Any>()
7777
if (varList.isNotEmpty()) {
78-
val list = varList[0]
79-
if (list !is List<*>){
80-
throw Exception("room say contact args not valid")
81-
}
78+
val list = varList[0] as? List<*> ?: throw Exception("room say contact args not valid")
8279
list.forEach {
8380
if (it !is Contact) {
8481
throw Exception("mentionList must be contact when not using String array function call.")

wechaty/src/test/kotlin/io/github/wechaty/user/RoomTest.kt

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,12 @@ import io.github.wechaty.Puppet
55
import io.github.wechaty.Wechaty
66
import io.github.wechaty.WechatyOptions
77
import io.github.wechaty.schemas.PuppetOptions
8-
import io.github.wechaty.user.manager.MessageManager
9-
import io.github.wechaty.utils.MockitoHelper
108
import org.junit.After
9+
import org.junit.Assert
1110
import org.junit.Before
12-
import org.junit.Ignore
1311
import org.junit.Test
14-
import org.mockito.ArgumentMatchers
15-
import org.mockito.Mock
16-
import org.mockito.Mockito
17-
import org.mockito.Mockito.*
18-
import org.mockito.Spy
19-
import java.util.concurrent.CompletableFuture
20-
import java.util.concurrent.Future
12+
import org.mockito.Mockito.`when`
13+
import org.mockito.Mockito.spy
2114

2215
/**
2316
* @author renxiaoya
@@ -29,6 +22,7 @@ const val EXPECTED_CONTACT_1_ID = "contact1"
2922
const val EXPECTED_CONTACT_1_ALIAS = "little1"
3023
const val EXPECTED_CONTACT_2_ID = "contact2"
3124
const val EXPECTED_CONTACT_2_ALIAS = "big2"
25+
3226
class RoomTest {
3327

3428
lateinit var wechaty: Wechaty
@@ -45,7 +39,6 @@ class RoomTest {
4539
wechatyOptions.puppet = "wechaty-puppet-mock"
4640
wechatyOptions.puppetOptions = PuppetOptions()
4741
wechaty = Wechaty.instance(wechatyOptions)
48-
// wechaty = spy(wechaty)
4942
wechaty.start()
5043

5144
room = wechaty.roomManager.load(EXPECTED_ROOM_ID)
@@ -58,31 +51,19 @@ class RoomTest {
5851
}
5952

6053
@Test
61-
// ignore temporary because it doesn't work for now
62-
@Ignore
63-
fun say() {
54+
fun sayStringWithMentionList() {
6455
val contact1 = wechaty.contactManager.load(EXPECTED_CONTACT_1_ID)
6556
val contact2 = wechaty.contactManager.load(EXPECTED_CONTACT_2_ID)
6657
contact1.sync()
6758
contact2.sync()
6859

69-
val spyWechaty: Wechaty = spy(wechaty)
70-
val spyRoom:Room = spy(room)
71-
val spyPuppet:Puppet = spy(puppet)
60+
val spyRoom: Room = spy(room)
7261
`when`(spyRoom.alias(contact1)).thenReturn("test-contact1-alias")
7362
`when`(spyRoom.alias(contact2)).thenReturn("test-contact2-alias")
7463

75-
val msgId = "test_msgId"
76-
`when`(spyWechaty.getPuppet()).thenReturn(spyPuppet)
77-
`when`(spyPuppet.messageSendText("test-conversation-id"
78-
, "contact1 contact2"
79-
, listOf("test-mentioned"))).thenReturn(CompletableFuture.completedFuture(msgId))
80-
val msg = mock(Message::class.java)
81-
val spyMessageManager:MessageManager = spy(wechaty.messageManager)
82-
`when`(spyMessageManager.load(msgId)).thenReturn(msg)
83-
8464
val text = "test-text"
85-
spyRoom.say(text, listOf(contact1, contact2))
65+
val resMsg = spyRoom.say(text, listOf(contact1, contact2)).get()
8666

67+
Assert.assertEquals((resMsg as Message).id, "mock-msg-$EXPECTED_ROOM_ID")
8768
}
8869
}

0 commit comments

Comments
 (0)