test code(+mockmvc)

2022. 6. 13. 10:56test

package com.imedisync.me.controller.api;

import com.imedisync.me.entity.UserEntity;
import com.imedisync.me.repository.UserRepository;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;

import java.util.Optional;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@SpringBootTest
@Transactional
class OrgUserControllerTest {

    @Autowired
    OrgUserController orgUserController;
    @Autowired
    UserRepository userRepository;

    private MockMvc mock;

    @BeforeEach
    public void setup() {
        mock = MockMvcBuilders.standaloneSetup(orgUserController).build();
    }

    @Test
    void orgUserAdd() throws Exception {

        /**
         * userType 파라미터 필수여부 변경 Test (필수->선택)
         * */

        String firstName = "firstName";
        String lastName = "lastName";
        String email = "testEmail@test.com";
        String uid = "6ac749a1-3e4b-40d7-a3c2-d1332375f3c8";

        MockHttpServletRequestBuilder builder = post("/api/org/user/v1/create")
                .param("firstName", firstName)
                .param("lastName", lastName)
                .param("email", email)
                .param("uid", uid);

        // http status 확인
        mock.perform(builder).andExpect(status().is(200));

        // 기관사용자 등록 후 확인
        Assertions.assertNotNull(userRepository.getByEmail(email).get());
    }
}

'test' 카테고리의 다른 글

test code  (0) 2022.06.13