package me.moodcat.backend.rooms; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.when; import me.moodcat.api.models.ChatMessageModel; import me.moodcat.database.controllers.UserDAO; import me.moodcat.database.entities.ChatMessage; import me.moodcat.database.entities.Room; import me.moodcat.database.entities.User; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import com.google.inject.Provider; @RunWith(MockitoJUnitRunner.class) public class ChatMessageFactoryTest { private static final String AUTHOR = "author"; private static final int USER_ID = 1; @Mock private Provider<UserDAO> userDAOProvider; @InjectMocks private ChatMessageFactory factory; @Mock private Room room; private ChatMessageInstance instance; private ChatMessageModel model; @Mock private UserDAO userDAO; @Mock private User user; @Before public void setUp() { model = new ChatMessageModel(); instance = new ChatMessageInstance(USER_ID, model); when(userDAOProvider.get()).thenReturn(userDAO); when(userDAO.findById(USER_ID)).thenReturn(user); when(user.getId()).thenReturn(USER_ID); when(user.getName()).thenReturn(AUTHOR); model.setMessage("message"); model.setAuthor(AUTHOR); model.setId(1); model.setTimestamp(System.currentTimeMillis()); } @Test public void canCreateChatMessage() { ChatMessage message = factory.create(room, instance); assertEquals(instance, ChatMessageInstance.create(message)); } }