Package org.fao.geonet.repository.specification

Source Code of org.fao.geonet.repository.specification.UserSpecsTest

package org.fao.geonet.repository.specification;

import com.google.common.base.Function;
import com.google.common.collect.Lists;
import org.fao.geonet.domain.Profile;
import org.fao.geonet.domain.User;
import org.fao.geonet.repository.AbstractSpringDataTest;
import org.fao.geonet.repository.UserRepository;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;

import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

import static org.fao.geonet.repository.UserRepositoryTest.newUser;
import static org.fao.geonet.repository.specification.UserSpecs.*;
import static org.fao.geonet.repository.specification.UserSpecs.hasUserIdIn;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

/**
* Test UserSpecs class
* User: Jesse
* Date: 9/12/13
* Time: 7:32 PM
*/
public class UserSpecsTest extends AbstractSpringDataTest {
    @Autowired
    UserRepository _userRepo;

    @Test
    public void testHasUserId() throws Exception {
        User user1 = _userRepo.save(newUser(_inc));
        _userRepo.save(newUser(_inc));

        final List<User> found = _userRepo.findAll(hasUserId(user1.getId()));
        assertEquals(1, found.size());
        assertEquals(user1.getId(), found.get(0).getId());
    }

    @Test
    public void testHasUserIdIn() throws Exception {
        final User user1 = _userRepo.save(newUser(_inc));
        final User user2 = _userRepo.save(newUser(_inc));
        final User user3 = _userRepo.save(newUser(_inc));

        final List<Integer> ids = Arrays.asList(user1.getId(), user2.getId());
        final List<User> found = _userRepo.findAll(hasUserIdIn(ids));

        assertEquals(2, found.size());
        List<Integer> foundIds = Lists.transform(found, new Function<User, Integer>() {
            @Nullable
            @Override
            public Integer apply(@Nullable User input) {
                return input.getId();
            }
        });

        assertTrue(foundIds.contains(user1.getId()));
        assertTrue(foundIds.contains(user2.getId()));
        assertFalse(foundIds.contains(user3.getId()));
    }

    @Test
    public void testHasUserName() throws Exception {
        User user1 = _userRepo.save(newUser(_inc));
        _userRepo.save(newUser(_inc));

        final List<User> found = _userRepo.findAll(hasUserName(user1.getUsername()));
        assertEquals(1, found.size());
        assertEquals(user1.getId(), found.get(0).getId());
    }

    @Test
    public void testHasNullAuthType() throws Exception {
        User user1 = _userRepo.save(newUser(_inc));
        user1.getSecurity().setAuthType(null);
        final User user2 = newUser(_inc);
        user2.getSecurity().setAuthType("authtype");
        _userRepo.save(user2);

        final List<User> found = _userRepo.findAll(hasNullAuthType());
        assertEquals(1, found.size());
        assertEquals(user1.getId(), found.get(0).getId());
    }

    @Test
    public void testHasProfile() throws Exception {
        final User user1 = newUser(_inc);
        user1.setProfile(Profile.RegisteredUser);
        _userRepo.save(user1);
        final User user2 = newUser(_inc);
        user2.setProfile(Profile.Reviewer);
        _userRepo.save(user2);

        List<User> found = _userRepo.findAll(hasProfile(Profile.RegisteredUser));
        assertEquals(1, found.size());
        assertEquals(user1.getId(), found.get(0).getId());

        found = _userRepo.findAll(hasProfile(Profile.Reviewer));
        assertEquals(1, found.size());
        assertEquals(user2.getId(), found.get(0).getId());
    }

    @Test
    public void testHasAuthType() throws Exception {
        User user1 = _userRepo.save(newUser(_inc));
        String expectedType = "expected";
        user1.getSecurity().setAuthType(expectedType);
        final User user2 = newUser(_inc);
        user2.getSecurity().setAuthType("authtype");
        _userRepo.save(user2);

        final List<User> found = _userRepo.findAll(hasAuthType(expectedType));
        assertEquals(1, found.size());
        assertEquals(user1.getId(), found.get(0).getId());
    }

    @Test
    public void testUserIsNameNotOneOf() throws Exception {
        User user1 = _userRepo.save(newUser(_inc));
        final User user2 = newUser(_inc);
        _userRepo.save(user2);

        final Specification<User> spec = userIsNameNotOneOf(Arrays.asList(new String[]{user1.getUsername()}));
        final List<User> found = _userRepo.findAll(spec);
        assertEquals(1, found.size());
        assertEquals(user1.getId(), found.get(0).getId());

        assertEquals(0, _userRepo.findAll(userIsNameNotOneOf(Arrays.asList(new String[]{"1", "2"}))).size());
        assertEquals(2, _userRepo.findAll(userIsNameNotOneOf(Arrays.asList(new String[]{user1.getUsername(),
                user2.getUsername()}))).size());
        assertEquals(1, _userRepo.findAll(userIsNameNotOneOf(Arrays.asList(new String[]{user1.getUsername(),
                user1.getUsername()}))).size());

    }
}
TOP

Related Classes of org.fao.geonet.repository.specification.UserSpecsTest

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.