package com.gzzm.lobster.llm;

import com.gzzm.lobster.common.MessageRole;
import org.junit.Test;

import java.util.Arrays;

import static org.junit.Assert.*;

public class LobsterMessageTest {

    @Test
    public void userMessageHasNoToolCalls() {
        LobsterMessage u = LobsterMessage.user("你好");
        assertEquals(MessageRole.user, u.getRole());
        assertFalse(u.hasToolCalls());
    }

    @Test
    public void assistantWithToolCalls() {
        ToolCall tc = new ToolCall("id1", "read_file", "{}");
        LobsterMessage a = LobsterMessage.assistantWithToolCalls("", Arrays.asList(tc));
        assertEquals(MessageRole.assistant, a.getRole());
        assertTrue(a.hasToolCalls());
        assertEquals(1, a.getToolCalls().size());
    }

    @Test
    public void toolMessageBindsCallId() {
        LobsterMessage t = LobsterMessage.tool("id1", "read_file", "{\"ok\":true}");
        assertEquals(MessageRole.tool, t.getRole());
        assertEquals("id1", t.getToolCallId());
        assertEquals("read_file", t.getToolName());
    }
}
