<dependencies>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.0</version>
<scope>test</scope>
</dependency>
</dependencies>
public interface StudentDao {
void addStudent(Student student);
List<Student> getStudents();
void removeStudent(Student student);
}
public class StudentManager {
private StudentDao studentDao;
public StudentManager(StudentDao studentDao) {
this.studentDao = studentDao;
}
public void addStudent(Student student) {
studentDao.addStudent(student);
}
public List<Student> getStudents() {
return studentDao.getStudents();
}
public void removeStudent(Student student) {
studentDao.removeStudent(student);
}
}
import org.easymock.EasyMock;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class StudentManagerTest {
private StudentDao studentDao;
private StudentManager studentManager;
@Before
public void setUp() {
studentDao = EasyMock.createMock(StudentDao.class);
studentManager = new StudentManager(studentDao);
}
@Test
public void testAddStudent() {
Student student = new Student("John Smith");
studentDao.addStudent(student);
EasyMock.expectLastCall().once();
EasyMock.replay(studentDao);
studentManager.addStudent(student);
EasyMock.verify(studentDao);
}
@Test
public void testGetStudents() {
List<Student> expectedStudents = new ArrayList<>();
expectedStudents.add(new Student("John Smith"));
expectedStudents.add(new Student("Jane Doe"));
EasyMock.expect(studentDao.getStudents()).andReturn(expectedStudents);
EasyMock.replay(studentDao);
List<Student> students = studentManager.getStudents();
Assert.assertEquals(expectedStudents, students);
EasyMock.verify(studentDao);
}
@Test
public void testRemoveStudent() {
Student student = new Student("John Smith");
studentDao.removeStudent(student);
EasyMock.expectLastCall().once();
EasyMock.replay(studentDao);
studentManager.removeStudent(student);
EasyMock.verify(studentDao);
}
}