package no.dusken.aranea.web.control; import no.dusken.aranea.model.Person; import no.dusken.aranea.model.Role; import no.dusken.aranea.service.RoleService; import org.junit.Before; import org.junit.Test; import org.springframework.ui.ExtendedModelMap; import org.springframework.ui.Model; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import static junit.framework.Assert.*; import static org.mockito.Mockito.*; /** * @author Benjamin Bjørnseth <benjamin@underdusken.no> */ public class ContactPageControllerTest { private RoleService roleService; private ContactPageController contactPageController; @Before public void setUp() { roleService = mock(RoleService.class); contactPageController = new ContactPageController(); contactPageController.setRoleService(roleService); } @Test public void testGetContactPageView() { String[] roles = contactPageController.getRoles(); Map<String, Person> expectedPerson = new HashMap<String, Person>(); for (String roleAsStr: roles) { Role role = mock(Role.class); when(roleService.getRolesByName(roleAsStr)).thenReturn(role); Person p = new Person(); p.setFirstname(roleAsStr); p.setActive(true); when(role.getPersons()).thenReturn(Arrays.asList(p)); expectedPerson.put(roleAsStr, p); } Model model = new ExtendedModelMap(); String viewLocation = contactPageController.getContactPageView(model); assertEquals("Unexpected view location", "no/dusken/aranea/base/common/contact", viewLocation); for (String roleAsStr: roles) { assertEquals("Wrong person for role " + roleAsStr + " returned", expectedPerson.get(roleAsStr), ((Map)model.asMap().get("persons")).get(roleAsStr)); } } }