package de.fhb.autobday.manager.contact;
import com.stvconsultants.easygloss.javaee.JavaEEGloss;
import de.fhb.autobday.dao.AbdContactFacade;
import de.fhb.autobday.dao.AbdGroupFacade;
import de.fhb.autobday.dao.AbdGroupToContactFacade;
import de.fhb.autobday.data.AbdContact;
import de.fhb.autobday.data.AbdGroup;
import de.fhb.autobday.data.AbdGroupToContact;
import de.fhb.autobday.exception.contact.ContactNotFoundException;
import de.fhb.autobday.exception.contact.ContactToGroupNotFoundException;
import de.fhb.autobday.exception.group.GroupNotFoundException;
import java.util.ArrayList;
import static org.easymock.EasyMock.*;
import org.junit.Before;
import org.junit.Test;
/**
* Test the ContactManager
*
* @author Andy Klay <klay@fh-brandenburg.de> Christoph Ott
*/
public class ContactManagerTest {
private JavaEEGloss gloss;
private AbdContactFacade contactDAOMock;
private AbdGroupToContactFacade groupToContactDAOMock;
private AbdGroupFacade groupDAOMock;
private ContactManager managerUnderTest;
private AbdContact contactOne;
private AbdContact contactTwo;
private AbdGroupToContact groupToContactOne;
private AbdGroupToContact groupToContactTwo;
private ArrayList<AbdGroupToContact> allGroupToContact;
private AbdGroup groupOne;
private AbdGroup groupTwo;
public ContactManagerTest() {
}
@Before
public void setUp() {
gloss = new JavaEEGloss();
//create Mocks
contactDAOMock = createMock(AbdContactFacade.class);
groupToContactDAOMock = createMock(AbdGroupToContactFacade.class);
groupDAOMock = createMock(AbdGroupFacade.class);
//set Objekts to inject
gloss.addEJB(contactDAOMock);
gloss.addEJB(groupToContactDAOMock);
gloss.addEJB(groupDAOMock);
//create Manager with Mocks
managerUnderTest = gloss.make(ContactManager.class);
//create Objects needed for tests
contactOne = new AbdContact("mustermann");
contactTwo = new AbdContact("otto");
groupOne = new AbdGroup("friends");
groupTwo = new AbdGroup("family");
groupToContactOne = new AbdGroupToContact();
groupToContactTwo = new AbdGroupToContact();
allGroupToContact = new ArrayList<AbdGroupToContact>();
groupToContactOne.setAbdContact(contactOne);
groupToContactOne.setAbdGroup(groupOne);
allGroupToContact.add(groupToContactOne);
groupToContactTwo.setAbdContact(contactTwo);
groupToContactOne.setAbdGroup(groupTwo);
allGroupToContact.add(groupToContactTwo);
groupOne.setAbdGroupToContactCollection(allGroupToContact);
}
/**
* Test of setActive method, of class ContactManager.
*/
@Test
public void testSetActiveWithClass() throws Exception {
System.out.println("testSetActiveWithClass");
boolean isActive = true;
contactOne.setAbdGroupToContactCollection(allGroupToContact);
// Setting up the expected value of the method call of Mockobject
expect(contactDAOMock.find(contactOne.getId())).andReturn(contactOne);
expect(groupDAOMock.find(groupOne.getId())).andReturn(groupOne);
groupToContactDAOMock.edit(groupToContactOne);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.setActive(contactOne, groupOne, isActive);
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
/**
* Test fail of setActive method, of class ContactManager. This test
* provokes a ContactNotFoundException!
*/
@Test(expected = ContactNotFoundException.class)
public void testSetActiveShouldThrowContactNotFoundException() throws Exception {
System.out.println("testSetActiveShouldThrowContactNotFoundException");
//prepare test variables
boolean isActive = true;
// Setting up the expected value of the method call of Mockobject
expect(contactDAOMock.find(contactOne.getId())).andReturn(null);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.setActive(contactOne, groupOne, isActive);
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
/**
* Test fail of setActive method, of class ContactManager. This test
* provokes a ContactNotFoundException!
*/
@Test(expected = GroupNotFoundException.class)
public void testSetActiveShouldThrowGroupNotFoundException() throws Exception {
System.out.println("testSetActiveShouldThrowGroupNotFoundException");
//prepare test variables
boolean isActive = true;
contactOne.setAbdGroupToContactCollection(allGroupToContact);
// Setting up the expected value of the method call of Mockobject
expect(contactDAOMock.find(contactOne.getId())).andReturn(contactOne);
expect(groupDAOMock.find(groupOne.getId())).andReturn(null);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.setActive(contactOne, groupOne, isActive);
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
/**
* Test fail of setActive method, of class ContactManager. This test
* provokes a ContactToGroupNotFoundException!
*/
@Test(expected = ContactToGroupNotFoundException.class)
public void testSetActiveShouldThrowContactToGroupNotFoundException() throws Exception {
System.out.println("testSetActiveShouldThrowContactToGroupNotFoundException");
//prepare test variables
boolean isActive = true;
allGroupToContact = new ArrayList<AbdGroupToContact>();
contactOne.setAbdGroupToContactCollection(allGroupToContact);
// Setting up the expected value of the method call of Mockobject
expect(contactDAOMock.find(contactOne.getId())).andReturn(contactOne);
expect(groupDAOMock.find(groupOne.getId())).andReturn(groupOne);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.setActive(contactOne, groupOne, isActive);
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
/**
* Test of getContact method, of class ContactManager.
*/
@Test
public void testGetContact() throws Exception {
System.out.println("testGetContact");
// Setting up the expected value of the method call of Mockobject
expect(contactDAOMock.find(contactOne.getId())).andReturn(contactOne);
// Setup is finished need to activate the mock
replay(contactDAOMock);
//call method to test
managerUnderTest.getContact(contactOne.getId());
// verify
verify(contactDAOMock);
}
/**
* Test fail of getContact method, of class ContactManager. This test
* provokes a ContactNotFoundException!
*/
@Test(expected = ContactNotFoundException.class)
public void testGetContactShouldThrowContactNotFoundException() throws Exception {
System.out.println("testGetContactShouldThrowContactNotFoundException");
// Setting up the expected value of the method call of Mockobject
expect(contactDAOMock.find(contactOne.getId())).andReturn(null);
// Setup is finished need to activate the mock
replay(contactDAOMock);
//call method to test
managerUnderTest.getContact(contactOne.getId());
// verify
verify(contactDAOMock);
}
/**
* Test of getActive method, of class ContactManager.
*/
@Test
public void testGetActive() throws Exception {
System.out.println("testGetActive");
//prepare test variables
contactOne.setAbdGroupToContactCollection(allGroupToContact);
// Setting up the expected value of the method call of Mockobject
groupDAOMock.flush();
expect(contactDAOMock.find(contactOne.getId())).andReturn(contactOne);
expect(groupDAOMock.find(groupOne.getId())).andReturn(groupOne);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.getActive(contactOne.getId(), groupOne.getId());
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
/**
* Test of getActive method, of class ContactManager. This test provokes a
* GroupNotFoundException!
*/
@Test(expected = GroupNotFoundException.class)
public void testGetActiveThrowsGroupNotFoundException() throws Exception {
System.out.println("testGetActiveThrowsGroupNotFoundException");
//prepare test variables
contactOne.setAbdGroupToContactCollection(allGroupToContact);
// Setting up the expected value of the method call of Mockobject
groupDAOMock.flush();
expect(contactDAOMock.find(contactOne.getId())).andReturn(contactOne);
expect(groupDAOMock.find(groupOne.getId())).andReturn(null);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.getActive(contactOne.getId(), groupOne.getId());
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
/**
* Test of getActive method, of class ContactManager. This test provokes a
* ContactNotFoundException!
*/
@Test(expected = ContactNotFoundException.class)
public void testGetActiveThrowsContactNotFoundException() throws Exception {
System.out.println("testGetActiveThrowsContactNotFoundException");
//prepare test variables
contactOne.setAbdGroupToContactCollection(allGroupToContact);
// Setting up the expected value of the method call of Mockobject
groupDAOMock.flush();
expect(contactDAOMock.find(contactOne.getId())).andReturn(null);
expect(groupDAOMock.find(groupOne.getId())).andReturn(groupOne);
// Setup is finished need to activate the mock
replay(contactDAOMock);
replay(groupDAOMock);
replay(groupToContactDAOMock);
//call method to test
managerUnderTest.getActive(contactOne.getId(), groupOne.getId());
// verify
verify(contactDAOMock);
verify(groupDAOMock);
verify(groupToContactDAOMock);
}
}