diff --git a/3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py b/3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py index fac3ae12..e12cb437 100644 --- a/3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py +++ b/3 - PB/MVP/tests/backend/domain/adapter/_in/web/ask_chatbot_controller_test.py @@ -1,8 +1,56 @@ from adapter._in.web.ask_chatbot_controller import AskChatbotController from domain.chat.message import MessageSender +from domain.chat.message_response import MessageResponse +from domain.chat.message import Message +from domain.chat.chat_id import ChatId +from domain.document.document_id import DocumentId +import unittest + def test_askChatbot_with_existent_chat(mocker): - pass + useCaseMock = mocker.Mock() + useCaseMock.askChatbot.return_value = MessageResponse(True, Message("response", unittest.mock.ANY, None, MessageSender.CHATBOT), ChatId(1)) + + askChatbotController = AskChatbotController(useCaseMock) + + with unittest.mock.patch('adapter._in.web.ask_chatbot_controller.ChatId') as MockChatId, \ + unittest.mock.patch('adapter._in.web.ask_chatbot_controller.Message') as MockMessage: + + MockChatId.return_value = ChatId(1) + MockMessage.return_value = Message("response", unittest.mock.ANY, None, MessageSender.CHATBOT) + + response = askChatbotController.askChatbot("message", 1) + + MockChatId.assert_called_once_with(1) + MockMessage.assert_called_once_with( + "message", + unittest.mock.ANY, + None, + MessageSender.USER + ) + + assert isinstance(response, MessageResponse) def test_askChatbot_without_chat(mocker): - pass \ No newline at end of file + useCaseMock = mocker.Mock() + useCaseMock.askChatbot.return_value = MessageResponse(True, Message("response", unittest.mock.ANY, None, MessageSender.CHATBOT), ChatId(1)) + + askChatbotController = AskChatbotController(useCaseMock) + + with unittest.mock.patch('adapter._in.web.ask_chatbot_controller.ChatId') as MockChatId, \ + unittest.mock.patch('adapter._in.web.ask_chatbot_controller.Message') as MockMessage: + + MockChatId.return_value = ChatId(1) + MockMessage.return_value = Message("response", unittest.mock.ANY, [DocumentId("example.pdf")], MessageSender.CHATBOT) + + response = askChatbotController.askChatbot("message") + + MockChatId.assert_not_called() + MockMessage.assert_called_once_with( + "message", + unittest.mock.ANY, + None, + MessageSender.USER + ) + + assert isinstance(response, MessageResponse) \ No newline at end of file