50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
from django.test import TestCase
|
|
from django.contrib.auth import get_user_model
|
|
|
|
from chat.repositories.message_repository import MessageRepository
|
|
from helpdesk.models import Ticket # จำเป็นต้องสร้าง Ticket ก่อนสร้าง Message
|
|
from chat.models import Message
|
|
|
|
UserModel = get_user_model()
|
|
|
|
class MessageRepositoryTest(TestCase):
|
|
|
|
def setUp(self):
|
|
self.repo = MessageRepository()
|
|
self.user = UserModel.objects.create_user(
|
|
username='msg_user',
|
|
email='msg_user@test.com',
|
|
password='p'
|
|
)
|
|
self.ticket = Ticket.objects.create(
|
|
creator=self.user,
|
|
title="Test Ticket for Message",
|
|
)
|
|
|
|
def test_create_message_saves_data_correctly(self):
|
|
"""
|
|
WHEN: เรียก create_message ด้วย data ที่ถูกต้อง
|
|
THEN: Message ต้องถูกบันทึกใน DB และมี content ตรงตามที่ส่ง
|
|
"""
|
|
content = "Testing message content storage."
|
|
message_type = 'P' # Private Note
|
|
|
|
data = {
|
|
'ticket': self.ticket,
|
|
'sender': self.user,
|
|
'content': content,
|
|
'message_type': message_type
|
|
}
|
|
|
|
# ACT
|
|
new_message = self.repo.create_message(**data)
|
|
|
|
# ASSERT 1 ตรวจสอบว่า Message ถูกสร้างใน DB
|
|
self.assertIsNotNone(new_message.id)
|
|
self.assertEqual(Message.objects.count(), 1)
|
|
|
|
# ASSERT 2 ตรวจสอบความถูกต้องของข้อมูลที่ถูกบันทึก
|
|
retrieved_message = Message.objects.get(pk=new_message.id)
|
|
self.assertEqual(retrieved_message.content, content)
|
|
self.assertEqual(retrieved_message.message_type, message_type)
|
|
self.assertEqual(retrieved_message.ticket_id, self.ticket.id) |