### Question:
Batch implements IBatch { public String getLastMessage() { if (monitor == null) { return null; } return monitor.getLastMessage(); } Batch(String uuid);  Batch(String uuid, String name, String group); @Override boolean equals(Object obj); String getCurrentItem(); String getCurrentTask(); Date getEndDate(); String getGroup(); long getItemCount(); String getLastMessage(); Date getLastUpdate(); String getName(); IBatchProgressMonitor getProgressMonitor(); float getProgressStatus(); List<String> getRejectedItemsId(); Date getStartDate(); String getStatus(); String getUuid(); boolean isSuccess(); void setProgressMonitor(IBatchProgressMonitor monitor); void setZombieInterval(int zombieInterval);  }### Answer:
@Test public void testGetLastMessage() { Batch batch = new Batch("12345"); assertNull(batch.getLastMessage()); assertNull(new Batch("12345", "batchName", "batchGroup").getLastMessage()); InProcessBatchProgressMonitor mockedProgressMonitor = mock(InProcessBatchProgressMonitor.class); batch.setProgressMonitor(mockedProgressMonitor); when(mockedProgressMonitor.getLastMessage()).thenReturn(null); assertNull(batch.getLastMessage()); when(mockedProgressMonitor.getLastMessage()).thenReturn("last message"); assertThat(batch.getLastMessage(), is("last message")); }