package de.fhb.autobday.manager; import com.stvconsultants.easygloss.javaee.JavaEEGloss; import de.fhb.autobday.dao.*; import de.fhb.autobday.data.*; import de.fhb.autobday.manager.group.GroupManager; import de.fhb.autobday.manager.mail.GoogleMailManagerLocal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; import org.easymock.EasyMock; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.modules.junit4.PowerMockRunner; /** * * @author Andy Klay <klay@fh-brandenburg.de> Christoph Ott */ @RunWith(PowerMockRunner.class) public class ABDManagerTest { private JavaEEGloss gloss; private AbdManager managerUnderTest; private AbdUserFacade userDAOMock; private AbdGroupFacade groupDAOMock; private AbdGroupToContactFacade grouptocontactDAOMock; private AbdAccountFacade accountDAOMock; private AbdContactFacade contactDAOMock; private GroupManager groupManagerMock; private GoogleMailManagerLocal mailManagerMock; public ABDManagerTest() { } @Before public void setUp() { gloss = new JavaEEGloss(); //create Mocks userDAOMock = EasyMock.createMock(AbdUserFacade.class); groupDAOMock = EasyMock.createMock(AbdGroupFacade.class); grouptocontactDAOMock = EasyMock.createMock(AbdGroupToContactFacade.class); accountDAOMock = EasyMock.createMock(AbdAccountFacade.class); contactDAOMock = EasyMock.createMock(AbdContactFacade.class); groupManagerMock = EasyMock.createMock(GroupManager.class); mailManagerMock = EasyMock.createMock(GoogleMailManagerLocal.class); //set Objekts to inject gloss.addEJB(userDAOMock); gloss.addEJB(groupDAOMock); gloss.addEJB(grouptocontactDAOMock); gloss.addEJB(accountDAOMock); gloss.addEJB(contactDAOMock); gloss.addEJB(groupManagerMock); gloss.addEJB(mailManagerMock); //create Manager with Mocks managerUnderTest = gloss.make(AbdManager.class); } /** * Test of getAllUser method, of class ABDManager. */ @Test public void testGetAllUser() throws Exception { System.out.println("getAllUser"); //prepare test variables ArrayList<AbdUser> userList = new ArrayList<AbdUser>(); userList.add(new AbdUser(1)); userList.add(new AbdUser(2)); userList.add(new AbdUser(3)); // Setting up the expected value of the method call of Mockobject EasyMock.expect(userDAOMock.findAll()).andReturn(userList); // Setup is finished need to activate the mock EasyMock.replay(userDAOMock); //call method to test // verify assertEquals(userList, managerUnderTest.getAllUser()); EasyMock.verify(userDAOMock); } /** * Test of getAllGroups method, of class ABDManager. */ @Test public void testGetAllGroups() throws Exception { System.out.println("getAllGroups"); //prepare test variables ArrayList<AbdGroup> groupList = new ArrayList<AbdGroup>(); groupList.add(new AbdGroup("1")); groupList.add(new AbdGroup("2")); groupList.add(new AbdGroup("3")); // Setting up the expected value of the method call of Mockobject EasyMock.expect(groupDAOMock.findAll()).andReturn(groupList); // Setup is finished need to activate the mock EasyMock.replay(groupDAOMock); //call method to test // verify assertEquals(groupList, managerUnderTest.getAllGroups()); EasyMock.verify(groupDAOMock); } /** * Test of getAllAccountdata method, of class ABDManager. */ @Test public void testGetAllAccountdata() throws Exception { System.out.println("getAllAccountdata"); //prepare test variables ArrayList<AbdAccount> accountList = new ArrayList<AbdAccount>(); accountList.add(new AbdAccount(1)); accountList.add(new AbdAccount(2)); accountList.add(new AbdAccount(3)); // Setting up the expected value of the method call of Mockobject EasyMock.expect(accountDAOMock.findAll()).andReturn(accountList); // Setup is finished need to activate the mock EasyMock.replay(accountDAOMock); //call method to test // verify assertEquals(accountList, managerUnderTest.getAllAccountdata()); EasyMock.verify(accountDAOMock); } /** * Test of getAllContacts method, of class ABDManager. */ @Test public void testGetAllContacts() throws Exception { System.out.println("getAllContacts"); //prepare test variables ArrayList<AbdContact> contactsList = new ArrayList<AbdContact>(); contactsList.add(new AbdContact("1")); contactsList.add(new AbdContact("2")); contactsList.add(new AbdContact("3")); // Setting up the expected value of the method call of Mockobject EasyMock.expect(contactDAOMock.findAll()).andReturn(contactsList); // Setup is finished need to activate the mock EasyMock.replay(contactDAOMock); assertEquals(contactsList, managerUnderTest.getAllContacts()); EasyMock.verify(contactDAOMock); } /** * Test of testCheckEveryDay method, of class ABDManager. * */ @Test public void testCheckEveryDay() throws Exception { System.out.println("testCheckEveryDay"); //prepare test variables String template = "template"; String sender = "sender"; String parsedTemplate = "parsedTemplate"; Date testDate = new Date(2012, 1, 20); List<AbdContact> contactCollection; contactCollection = new ArrayList<AbdContact>(); Collection<AbdGroupToContact> contactInGroups; contactInGroups = new ArrayList<AbdGroupToContact>(); AbdGroupToContact groupToContact; groupToContact = new AbdGroupToContact(); groupToContact.setActive(true); AbdAccount account = new AbdAccount(); account.setUsername(sender); //add some testcontacts AbdGroup group = new AbdGroup(); group.setActive(true); group.setTemplate("template"); group.setAccount(account); AbdContact contactOne; contactOne = new AbdContact(); contactOne.setMail("mailaddress"); contactOne.setBday(new Date(System.currentTimeMillis())); contactCollection.add(contactOne); groupToContact.setAbdContact(contactOne); groupToContact.setAbdGroup(group); contactInGroups.add(groupToContact); group.setAbdGroupToContactCollection(contactInGroups); contactOne.setAbdGroupToContactCollection(contactInGroups); // Setting up the expected value of the method call of Mockobject EasyMock.expect(contactDAOMock.findAll()).andReturn(contactCollection); EasyMock.expect(groupManagerMock.parseTemplate(template, contactOne)).andReturn(parsedTemplate); mailManagerMock.sendUserMail(account, "Happy Birthday", parsedTemplate, contactOne.getMail()); // Setup is finished need to activate the mock EasyMock.replay(contactDAOMock); EasyMock.replay(groupManagerMock); EasyMock.replay(mailManagerMock); //call method to test managerUnderTest.checkEveryDay(); // verify EasyMock.verify(contactDAOMock); EasyMock.verify(groupManagerMock); EasyMock.verify(mailManagerMock); } /** * Test of testCheckEveryDay method, of class ABDManager. */ @Test public void testCheckEveryDayBirthdayContactsIsEmpty() throws Exception { System.out.println("testCheckEveryDayBirthdayContactsIsEmpty"); //prepare test variables List<AbdContact> contactCollection; contactCollection = new ArrayList<AbdContact>(); // Setting up the expected value of the method call of Mockobject EasyMock.expect(contactDAOMock.findAll()).andReturn(contactCollection); // Setup is finished need to activate the mock EasyMock.replay(contactDAOMock); //call method to test managerUnderTest.checkEveryDay(); // verify EasyMock.verify(contactDAOMock); } }