I have a junit
+ powermock
test which is giving me NullPointerException
after execution.
Error:
Running com.ebayenterprise.publicapi.events.dao.EventLogDaoTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.36 sec <<< FAILURE! - in com.ebayenterprise.publicapi.events.dao.EventLogDaoTest
testGetNextEventIdSequence(com.ebayenterprise.publicapi.events.dao.EventLogDaoTest) Time elapsed: 0.05 sec <<< ERROR!
java.lang.NullPointerException: null
at com.ebayenterprise.publicapi.events.dao.EventLogDaoTest.testGetNextEventIdSequence(EventLogDaoTest.java:27)
EventLogDaoTest.java
public class EventLogDaoTest {
private final DataSource dataSource = Mockito.mock(DataSource.class);
private final PlatformTransactionManager txManager = Mockito.mock(PlatformTransactionManager.class);
private static final long MOCK_EVENT_ID = 1001;
private JdbcTemplate jdbcTemplate;
private EventLogDao eventLogDao;
@Before
public void setup() {
eventLogDao = new EventLogDao(dataSource, txManager);
}
@Test
public void testGetNextEventIdSequence() {
when(jdbcTemplate.queryForLong("select next-seq-value from table")).thenReturn(MOCK_EVENT_ID);
long eventId = eventLogDao.getNextEventIdSequence();
assertTrue(eventId == 1001);
}
}
EventLogDao.java
@Repository
public class EventLogDao extends BaseEventLogDao {
public EventLogDao(DataSource dataSource, PlatformTransactionManager transactionManager) {
super(dataSource, transactionManager);
}
}
BaseEventLogDao.java
public abstract class BaseEventLogDao {
protected final JdbcTemplate jdbcTemplate;
protected final PlatformTransactionManager transactionManager;
public BaseEventLogDao(DataSource dataSource, PlatformTransactionManager transactionManager) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
this.transactionManager = transactionManager;
}
public long getNextEventIdSequence() {
long eventIdSeq = jdbcTemplate.queryForLong(SELECT_EVENT_LOG_SEQUENCE_SQL);
System.out.println("eventIdSeq = " + eventIdSeq);
return eventIdSeq;
}
}