UserTest.java 2.02 KB
package com.krunal.mongodb;

import com.krunal.mongodb.model.User;
import com.krunal.mongodb.repository.UserRepository;
import com.krunal.mongodb.service.UserServiceImpl;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Arrays;
import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;


@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {

    private static final User USER = new User("111", "krunal", "satwara", 27);
    private static final User USER1 = new User("112", "jigar", "patel", 23);
    private static final List<User> USERS = Arrays.asList(USER, USER1);
    private static final String FIRST_NAME = "krunal";
    private static final String ID = "111";

    @Autowired
    private UserServiceImpl userService;

    @MockBean
    private UserRepository userRepository;

    @Test
    public void testCreateUser() {
        when(userRepository.save(USER)).thenReturn(USER);
        User actualUser = userService.createUser(USER);
        assertEquals(USER, actualUser);
        verify(userRepository).save(USER);
    }

    @Test
    public void testFindAll() {
        when(userRepository.findAll()).thenReturn(USERS);
        List<User> users = userService.getAll();
        assertEquals(USERS.size(), users.size());
        verify(userRepository).findAll();
    }


    @Test
    public void testFindByFirstNameTest() {

        when(userRepository.findByFirstName(FIRST_NAME)).thenReturn(USER);
        User actualUser = userService.findByFirstName(FIRST_NAME);
        assertEquals(USER, actualUser);
        verify(userRepository).findByFirstName(FIRST_NAME);
    }

    @Test
    public void testDeleteUser() {
        userService.deleteUser(ID);
        verify(userRepository, times(1)).deleteById(ID);
    }

}