com.luna.common.service.UserServiceTest.java Source code

Java tutorial

Introduction

Here is the source code for com.luna.common.service.UserServiceTest.java

Source

/**
 * Copyright (c) 2005-2012 https://github.com/zhangkaitao
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package com.luna.common.service;

import com.luna.common.entity.User;
import com.luna.common.entity.search.Searchable;
import com.luna.common.test.BaseUserIT;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.junit.Assert.*;

/**
 * <p>User: Zhang Kaitao
 * <p>Date: 13-1-17 ?7:55
 * <p>Version: 1.0
 */
public class UserServiceTest extends BaseUserIT {

    @Autowired
    protected UserService userService;

    @Test
    public void testSave() {
        User dbUser = userService.save(createUser());
        assertNotNull(dbUser.getId());
    }

    @Test
    public void testUpdate() {
        User dbUser = userService.save(createUser());
        clear();

        String newUsername = "zhang$$$$" + System.currentTimeMillis();
        dbUser.setUsername(newUsername);
        userService.update(dbUser);

        clear();

        assertEquals(newUsername, userService.findOne(dbUser.getId()).getUsername());
    }

    @Test
    public void testDeleteById() {
        User dbUser = userService.save(createUser());
        clear();
        userService.delete(dbUser.getId());
        clear();

        assertNull(userService.findOne(dbUser.getId()));
    }

    @Test
    public void testDeleteByEntity() {
        User dbUser = userService.save(createUser());
        clear();
        userService.delete(dbUser);
        clear();

        assertNull(userService.findOne(dbUser.getId()));
    }

    @Test
    public void testFindOne() {
        User dbUser = userService.save(createUser());
        clear();

        assertNotNull(userService.findOne(dbUser.getId()));
    }

    @Test
    public void testExists() {
        User dbUser = userService.save(createUser());
        clear();
        assertTrue(userService.exists(dbUser.getId()));
    }

    @Test
    public void testCount() {
        int count = 15;
        for (int i = 0; i < count; i++) {
            userService.save(createUser());
        }
        assertEquals(count, userService.count());
    }

    @Test
    public void testFindAll() {
        int count = 15;
        User user = null;
        for (int i = 0; i < count; i++) {
            user = userService.save(createUser());
        }
        List<User> userList = userService.findAll();
        assertEquals(count, userList.size());
        assertTrue(userList.contains(user));
    }

    @Test
    public void testFindAllBySort() {
        int count = 15;
        User user = null;
        for (int i = 0; i < count; i++) {
            user = userService.save(createUser());
        }

        Sort sortDesc = new Sort(Sort.Direction.DESC, "id");
        Sort sortAsc = new Sort(Sort.Direction.ASC, "id");
        List<User> userDescList = userService.findAll(sortDesc);
        List<User> userAscList = userService.findAll(sortAsc);

        assertEquals(count, userDescList.size());
        assertEquals(count, userAscList.size());
        assertTrue(userDescList.contains(user));
        assertTrue(userAscList.contains(user));

        assertTrue(userAscList.get(0).getId() < userAscList.get(1).getId());
        assertTrue(userDescList.get(0).getId() > userDescList.get(1).getId());
    }

    @Test
    public void testFindAllByPageableAndSortDesc() {
        int count = 15;
        User lastUser = null;
        for (int i = 0; i < count; i++) {
            lastUser = userService.save(createUser());
        }

        Sort sortDesc = new Sort(Sort.Direction.DESC, "id");
        Pageable pageable = new PageRequest(0, 5, sortDesc);
        Page<User> userPage = userService.findAll(pageable);

        assertEquals(5, userPage.getNumberOfElements());
        assertTrue(userPage.getContent().contains(lastUser));
        assertTrue(userPage.getContent().get(0).getId() > userPage.getContent().get(1).getId());
    }

    @Test
    public void testFindAllByPageableAndSortAsc() {
        int count = 15;
        User lastUser = null;
        for (int i = 0; i < count; i++) {
            lastUser = userService.save(createUser());
        }

        Sort sortAsc = new Sort(Sort.Direction.ASC, "id");
        Pageable pageable = new PageRequest(0, 5, sortAsc);
        Page<User> userPage = userService.findAll(pageable);

        assertEquals(5, userPage.getNumberOfElements());
        assertFalse(userPage.getContent().contains(lastUser));
        assertTrue(userPage.getContent().get(0).getId() < userPage.getContent().get(1).getId());
    }

    @Test
    public void testFindAllBySearchAndNoPage() {
        int count = 15;
        User lastUser = null;
        for (int i = 0; i < count; i++) {
            lastUser = createUser();
            lastUser.setUsername("zhang" + i);
            userService.save(lastUser);
        }

        Map<String, Object> searchParams = new HashMap<String, Object>();
        searchParams.put("username_like", "zhang");
        Searchable search = Searchable.newSearchable(searchParams);

        List<User> userList = userService.findAllWithNoPageNoSort(search);
        assertEquals(count, userList.size());
        assertTrue(userList.contains(lastUser));
    }

    @Test
    public void testFindAllBySearchAndSort() {
        int count = 15;
        User lastUser = null;
        for (int i = 0; i < count; i++) {
            lastUser = createUser();
            lastUser.setUsername("zhang" + i);
            userService.save(lastUser);
        }

        Map<String, Object> searchParams = new HashMap<String, Object>();
        searchParams.put("username_like", "zhang");
        Sort sortDesc = new Sort(Sort.Direction.DESC, "id");
        Searchable search = Searchable.newSearchable(searchParams).addSort(sortDesc);

        List<User> userList = userService.findAllWithSort(search);
        assertEquals(count, userList.size());
        assertTrue(userList.contains(lastUser));

        assertTrue(userList.get(0).getId() > userList.get(1).getId());
    }

    @Test
    public void testFindAllBySearchAndPageableAndSortAsc() {
        int count = 15;
        User lastUser = null;
        for (int i = 0; i < count; i++) {
            lastUser = userService.save(createUser());
        }

        Sort sortAsc = new Sort(Sort.Direction.ASC, "id");
        Pageable pageable = new PageRequest(0, 5, sortAsc);
        Map<String, Object> searchParams = new HashMap<String, Object>();
        searchParams.put("username_like", "zhang");
        Searchable search = Searchable.newSearchable(searchParams).setPage(pageable);

        Page<User> userPage = userService.findAll(search);
        assertEquals(5, userPage.getNumberOfElements());
        assertFalse(userPage.getContent().contains(lastUser));
        assertTrue(userPage.getContent().get(0).getId() < userPage.getContent().get(1).getId());
    }

}