package org.opentides.dao.impl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import org.opentides.bean.UserWidgets;
import org.opentides.dao.UserWidgetsDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
public class UserWidgetsDaoIntegrationTest extends BaseDaoTest {
@Autowired
private UserWidgetsDao userWidgetsDao;
@Test
public void testFindUserWidgets() {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
List<UserWidgets> actual = userWidgetsDao.findUserWidgets(1, 1, 2);
assertNotNull(actual);
assertFalse(actual.isEmpty());
UserWidgets uw1 = userWidgetsDao.loadEntityModel(1l);
UserWidgets uw2 = userWidgetsDao.loadEntityModel(2l);
List<UserWidgets> expected = Arrays.asList(uw1, uw2);
assertEquals(expected, actual);
}
});
}
@Test
public void testFindUserWidgetsWithoutStatus() {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
List<UserWidgets> actual = userWidgetsDao.findUserWidgets(1);
assertNotNull(actual);
assertFalse(actual.isEmpty());
UserWidgets uw1 = userWidgetsDao.loadEntityModel(1l);
UserWidgets uw2 = userWidgetsDao.loadEntityModel(2l);
UserWidgets uw3 = userWidgetsDao.loadEntityModel(3l);
List<UserWidgets> expected = Arrays.asList(uw1, uw3, uw2);
assertEquals(expected, actual);
}
});
}
@Test
public void testCountUserWidgetsColumn() {
assertEquals(2l, userWidgetsDao.countUserWidgetsColumn(1, 1));
assertEquals(1l, userWidgetsDao.countUserWidgetsColumn(2, 1));
assertEquals(0l, userWidgetsDao.countUserWidgetsColumn(3, 1));
}
@Test
public void testDeleteUserWidget() {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
userWidgetsDao.deleteUserWidget(1l, 1l);
assertNull(userWidgetsDao.loadEntityModel(1l));
}
});
}
}