package com.streamreduce.core.dao;
import com.streamreduce.AbstractDAOTest;
import com.streamreduce.core.model.Account;
import com.streamreduce.core.model.User;
import com.streamreduce.test.service.TestUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class UserDAOIT extends AbstractDAOTest {
static final String SAMPLE_EXTERNAL_ID = "ABC-DEF-123456789";
@Autowired
private AccountDAO accountDAO;
@Autowired
private UserDAO userDAO;
private Account testAccount;
@Before
public void setUp() {
User user = TestUtils.createTestUser();
user.setExternalId(SAMPLE_EXTERNAL_ID);
User otherUser = TestUtils.createTestUser();
otherUser.setUsername("danny@toolband.com");
testAccount = user.getAccount();
accountDAO.save(user.getAccount());
accountDAO.save(otherUser.getAccount());
userDAO.save(user);
userDAO.save(otherUser);
}
@Test
public void testForAccount() {
List<User> users = userDAO.forAccount(testAccount);
assertEquals(1, users.size());
}
@Test
public void testGetByExternalId() {
assertEquals(1, userDAO.getByExternalId(SAMPLE_EXTERNAL_ID).size());
}
@Test
public void testGetByExternalId_EmptyExternalId() {
assertEquals(0, userDAO.getByExternalId(" ").size());
}
@Test
public void testGetByExternalId_NullExternalId() {
assertEquals(0, userDAO.getByExternalId(null).size());
}
}