nl.surfnet.coin.teams.util.ControllerUtilImplTest.java Source code

Java tutorial

Introduction

Here is the source code for nl.surfnet.coin.teams.util.ControllerUtilImplTest.java

Source

/*
 * Copyright 2012 SURFnet bv, The Netherlands
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package nl.surfnet.coin.teams.util;

import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;

import nl.surfnet.coin.teams.control.AbstractControllerTest;
import nl.surfnet.coin.teams.domain.Member;
import nl.surfnet.coin.teams.domain.Team;
import nl.surfnet.coin.teams.service.GrouperTeamService;

import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

/**
 * Test for {@link ControllerUtilImpl}
 */
public class ControllerUtilImplTest extends AbstractControllerTest {

    private ControllerUtil controllerUtil = new ControllerUtilImpl();

    @Test
    public void getTeamTest() throws Exception {

        MockHttpServletRequest request = getRequestWithTeam(getTeam1().getId());

        GrouperTeamService grouperTeamService = createNiceMock(GrouperTeamService.class);
        expect(grouperTeamService.findTeamById(getTeam1().getId())).andReturn(getTeam1());
        replay(grouperTeamService);

        autoWireMock(controllerUtil, grouperTeamService, GrouperTeamService.class);
        autoWireRemainingResources(controllerUtil);

        Team team = controllerUtil.getTeam(request);
        verify(grouperTeamService);

        assertEquals(getTeam1().getId(), team.getId());
        assertEquals(getTeam1().getName(), team.getName());
        assertEquals(getTeam1().getDescription(), team.getDescription());
    }

    @Test(expected = RuntimeException.class)
    public void getTeamNonExistingTest() throws Exception {
        MockHttpServletRequest request = getRequestWithTeam(getTeam1().getId());

        GrouperTeamService grouperTeamService = createNiceMock(GrouperTeamService.class);
        expect(grouperTeamService.findTeamById(getTeam1().getId())).andReturn(null);
        replay(grouperTeamService);

        controllerUtil.getTeam(request);
        verify(grouperTeamService);
    }

    @Test
    public void hasUserAdministrativePrivilegesTest() throws Exception {
        GrouperTeamService grouperTeamService = createNiceMock(GrouperTeamService.class);
        expect(grouperTeamService.findMember(getTeam1().getId(), getPerson1().getId()))
                .andReturn(getAdministrativeMember());
        replay(grouperTeamService);

        autoWireMock(controllerUtil, grouperTeamService, GrouperTeamService.class);
        autoWireRemainingResources(controllerUtil);

        boolean hasPrivileges = controllerUtil.hasUserAdministrativePrivileges(getPerson1(), getTeam1().getId());
        verify(grouperTeamService);
        assertTrue(hasPrivileges);
    }

    @Test
    public void hasUserAdministrativePrivilegesWithoutPrivilegesTest() throws Exception {
        GrouperTeamService grouperTeamService = createNiceMock(GrouperTeamService.class);
        expect(grouperTeamService.findMember(getTeam1().getId(), getPerson1().getId())).andReturn(getMember());
        replay(grouperTeamService);

        autoWireMock(controllerUtil, grouperTeamService, GrouperTeamService.class);
        autoWireRemainingResources(controllerUtil);

        boolean hasPrivileges = controllerUtil.hasUserAdministrativePrivileges(getPerson1(), getTeam1().getId());
        verify(grouperTeamService);
        assertFalse(hasPrivileges);
    }

    @Test
    public void isPersonMemberOfTeamIsMemberTest() {
        Team team = getTeam1();
        Member member = getMember();
        team.addMembers(member);

        boolean result = controllerUtil.isPersonMemberOfTeam(member.getId(), team);
        assertTrue(result);
    }

    @Test
    public void isPersonMemberOfTeamIsNotMemberTest() {
        Team team = getTeam1();
        Member member = new Member(null, "member-2", "member-2", "member-2@example.com");
        team.addMembers(getMember());

        boolean result = controllerUtil.isPersonMemberOfTeam(member.getId(), team);
        assertFalse(result);
    }

    private MockHttpServletRequest getRequestWithTeam(String teamId) {
        MockHttpServletRequest request = getRequest();
        request.setParameter("team", teamId);
        return request;
    }
}