ai-robot-channel/src/test/java/com/wecom/robot/dto/ai/ChatRequestTest.java

75 lines
2.6 KiB
Java

package com.wecom.robot.dto.ai;
import com.wecom.robot.dto.InboundMessage;
import com.wecom.robot.dto.SignatureInfo;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
class ChatRequestTest {
@Test
void testChatRequestBuilder() {
ChatMessage msg1 = ChatMessage.userMessage("Hello");
ChatMessage msg2 = ChatMessage.assistantMessage("Hi there!");
Map<String, Object> metadata = new HashMap<>();
metadata.put("key", "value");
ChatRequest request = ChatRequest.builder()
.sessionId("session-123")
.currentMessage("How are you?")
.channelType(InboundMessage.CHANNEL_WECHAT)
.history(Arrays.asList(msg1, msg2))
.metadata(metadata)
.build();
assertEquals("session-123", request.getSessionId());
assertEquals("How are you?", request.getCurrentMessage());
assertEquals(InboundMessage.CHANNEL_WECHAT, request.getChannelType());
assertEquals(2, request.getHistory().size());
assertEquals("value", request.getMetadata().get("key"));
}
@Test
void testFromInboundMessage() {
InboundMessage inbound = InboundMessage.builder()
.channelType(InboundMessage.CHANNEL_WECHAT)
.channelMessageId("msg-123")
.sessionKey("session-key-001")
.customerId("customer-001")
.kfId("kf-001")
.content("Hello AI")
.build();
ChatRequest request = ChatRequest.fromInboundMessage(inbound);
assertEquals("session-key-001", request.getSessionId());
assertEquals("Hello AI", request.getCurrentMessage());
assertEquals(InboundMessage.CHANNEL_WECHAT, request.getChannelType());
}
@Test
void testFromInboundMessageWithHistory() {
InboundMessage inbound = InboundMessage.builder()
.sessionKey("session-002")
.content("New message")
.channelType(InboundMessage.CHANNEL_DOUYIN)
.build();
ChatMessage history1 = ChatMessage.userMessage("Previous");
ChatMessage history2 = ChatMessage.assistantMessage("Response");
ChatRequest request = ChatRequest.fromInboundMessage(inbound, Arrays.asList(history1, history2));
assertEquals("session-002", request.getSessionId());
assertEquals("New message", request.getCurrentMessage());
assertEquals(InboundMessage.CHANNEL_DOUYIN, request.getChannelType());
assertEquals(2, request.getHistory().size());
}
}