Package org.fao.geonet.services.user

Source Code of org.fao.geonet.services.user.UserListIntegrationTest

package org.fao.geonet.services.user;

import jeeves.server.UserSession;
import jeeves.server.context.ServiceContext;
import org.fao.geonet.domain.Address;
import org.fao.geonet.domain.Group;
import org.fao.geonet.domain.Profile;
import org.fao.geonet.domain.User;
import org.fao.geonet.domain.UserGroup;
import org.fao.geonet.domain.responses.UserList;
import org.fao.geonet.repository.GroupRepository;
import org.fao.geonet.repository.GroupRepositoryTest;
import org.fao.geonet.repository.UserGroupRepository;
import org.fao.geonet.repository.UserRepository;
import org.fao.geonet.repository.UserRepositoryTest;
import org.fao.geonet.services.AbstractServiceIntegrationTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.concurrent.atomic.AtomicInteger;
import javax.xml.bind.JAXBElement;

import static org.junit.Assert.assertEquals;

/**
* Test listing a user service.
*
* User: Jesse
* Date: 10/12/13
* Time: 8:30 PM
*/
@RunWith(SpringJUnit4ClassRunner.class)
public class UserListIntegrationTest extends AbstractServiceIntegrationTest {
    private AtomicInteger inc = new AtomicInteger();
    @Autowired
    UserRepository _userRepo;
    @Autowired
    UserGroupRepository _userGroupRepo;
    @Autowired
    GroupRepository _groupRepo;

    @Autowired
    List listService;


    @Test
    public void testExecAsUserNoGroups() throws Exception {
        final User entity = UserRepositoryTest.newUser(inc);
        entity.setProfile(Profile.Editor);

        entity.getAddresses().add(
                new Address()
                        .setAddress("add1")
                        .setCity("city1")
                        .setCountry("country1")
                        .setState("state1")
                        .setZip("zip1"));
        entity.getEmailAddresses().add("email2");
        final User editor = _userRepo.save(entity);

        _userRepo.save(UserRepositoryTest.newUser(inc));

        final ServiceContext serviceContext = createServiceContext();
        UserSession userSession = new UserSession();
        userSession.loginAs(editor);
        serviceContext.setUserSession(userSession);
        final UserList response = listService.exec();

        java.util.List<JAXBElement<? extends User>> records = response.getUsers();
        assertEquals("Expected to find a record.", 1, records.size());

        User user = records.get(0).getValue();

        assertEquals("record/username", editor.getUsername(), user.getUsername());
        assertEquals("record/primaryaddress/address", editor.getPrimaryAddress().getAddress(), user.getPrimaryAddress().getAddress());
        assertEquals("record/profile", editor.getProfile().name(), user.getProfile().name());
        assertEquals("record/emailaddresses/emailaddress", editor.getEmailAddresses().iterator().next(), user.getEmailAddresses().iterator().next());
    }


    @Test
    public void testExecAsAdmin() throws Exception {
        final User entity = UserRepositoryTest.newUser(inc);
        _userRepo.save(entity);

        _userRepo.save(UserRepositoryTest.newUser(inc));

        final ServiceContext serviceContext = createServiceContext();
        loginAsAdmin(serviceContext);

        final UserList response = listService.exec();

        java.util.List<?> records = response.getUsers();
        assertEquals("Expected to find 3 records", 3, records.size());
    }

    @Test
    public void testExecAsWithGroups() throws Exception {
        final Group group = _groupRepo.save(GroupRepositoryTest.newGroup(inc));
        User user1 = UserRepositoryTest.newUser(inc);
        user1.setProfile(Profile.Editor);
        user1 = _userRepo.save(user1);

        User user2 = UserRepositoryTest.newUser(inc);
        user2.setProfile(Profile.RegisteredUser);
        user2 = _userRepo.save(user2);

        _userGroupRepo.save(new UserGroup().setGroup(group).setUser(user1).setProfile(Profile.Editor));
        _userGroupRepo.save(new UserGroup().setGroup(group).setUser(user2).setProfile(Profile.RegisteredUser));

        final ServiceContext serviceContext = createServiceContext();
        UserSession userSession = new UserSession();
        userSession.loginAs(user1);

        serviceContext.setUserSession(userSession);
        final UserList response = listService.exec();

        java.util.List<?> records = response.getUsers();
        assertEquals("Expected to find 2 records. ", 2, records.size());
    }

}
TOP

Related Classes of org.fao.geonet.services.user.UserListIntegrationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.