package com.dfire.platform.alchemy.web.rest; import com.dfire.platform.alchemy.AlchemyApp; import com.dfire.platform.alchemy.domain.Business; import com.dfire.platform.alchemy.repository.BusinessRepository; import com.dfire.platform.alchemy.service.BusinessService; import com.dfire.platform.alchemy.service.dto.BusinessDTO; import com.dfire.platform.alchemy.service.mapper.BusinessMapper; import com.dfire.platform.alchemy.web.rest.errors.ExceptionTranslator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.web.PageableHandlerMethodArgumentResolver; import org.springframework.http.MediaType; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.Validator; import javax.persistence.EntityManager; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.List; import static com.dfire.platform.alchemy.web.rest.TestUtil.createFormattingConversionService; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.hasItem; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; /** * Integration tests for the {@Link BusinessResource} REST controller. */ @SpringBootTest(classes = AlchemyApp.class) public class BusinessResourceIT { private static final String DEFAULT_NAME = "AAAAAAAAAA"; private static final String UPDATED_NAME = "BBBBBBBBBB"; private static final String DEFAULT_REMARK = "AAAAAAAAAA"; private static final String UPDATED_REMARK = "BBBBBBBBBB"; private static final String DEFAULT_CREATED_BY = "AAAAAAAAAA"; private static final String UPDATED_CREATED_BY = "BBBBBBBBBB"; private static final Instant DEFAULT_CREATED_DATE = Instant.ofEpochMilli(0L); private static final Instant UPDATED_CREATED_DATE = Instant.now().truncatedTo(ChronoUnit.MILLIS); @Autowired private BusinessRepository businessRepository; @Autowired private BusinessMapper businessMapper; @Autowired private BusinessService businessService; @Autowired private MappingJackson2HttpMessageConverter jacksonMessageConverter; @Autowired private PageableHandlerMethodArgumentResolver pageableArgumentResolver; @Autowired private ExceptionTranslator exceptionTranslator; @Autowired private EntityManager em; @Autowired private Validator validator; private MockMvc restBusinessMockMvc; private Business business; @BeforeEach public void setup() { MockitoAnnotations.initMocks(this); final BusinessResource businessResource = new BusinessResource(businessService); this.restBusinessMockMvc = MockMvcBuilders.standaloneSetup(businessResource) .setCustomArgumentResolvers(pageableArgumentResolver) .setControllerAdvice(exceptionTranslator) .setConversionService(createFormattingConversionService()) .setMessageConverters(jacksonMessageConverter) .setValidator(validator).build(); } /** * Create an entity for this test. * * This is a static method, as tests for other entities might also need it, * if they test an entity which requires the current entity. */ public static Business createEntity(EntityManager em) { Business business = new Business() .name(DEFAULT_NAME) .remark(DEFAULT_REMARK) .createdBy(DEFAULT_CREATED_BY) .createdDate(DEFAULT_CREATED_DATE); return business; } /** * Create an updated entity for this test. * * This is a static method, as tests for other entities might also need it, * if they test an entity which requires the current entity. */ public static Business createUpdatedEntity(EntityManager em) { Business business = new Business() .name(UPDATED_NAME) .remark(UPDATED_REMARK) .createdBy(UPDATED_CREATED_BY) .createdDate(UPDATED_CREATED_DATE); return business; } @BeforeEach public void initTest() { business = createEntity(em); } @Test @Transactional public void createBusiness() throws Exception { int databaseSizeBeforeCreate = businessRepository.findAll().size(); // Create the Business BusinessDTO businessDTO = businessMapper.toDto(business); restBusinessMockMvc.perform(post("/api/businesses") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(businessDTO))) .andExpect(status().isCreated()); // Validate the Business in the database List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeCreate + 1); Business testBusiness = businessList.get(businessList.size() - 1); assertThat(testBusiness.getName()).isEqualTo(DEFAULT_NAME); assertThat(testBusiness.getRemark()).isEqualTo(DEFAULT_REMARK); assertThat(testBusiness.getCreatedBy()).isEqualTo(DEFAULT_CREATED_BY); assertThat(testBusiness.getCreatedDate()).isEqualTo(DEFAULT_CREATED_DATE); } @Test @Transactional public void createBusinessWithExistingId() throws Exception { int databaseSizeBeforeCreate = businessRepository.findAll().size(); // Create the Business with an existing ID business.setId(1L); BusinessDTO businessDTO = businessMapper.toDto(business); // An entity with an existing ID cannot be created, so this API call must fail restBusinessMockMvc.perform(post("/api/businesses") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(businessDTO))) .andExpect(status().isBadRequest()); // Validate the Business in the database List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeCreate); } @Test @Transactional public void checkNameIsRequired() throws Exception { int databaseSizeBeforeTest = businessRepository.findAll().size(); // set the field null business.setName(null); // Create the Business, which fails. BusinessDTO businessDTO = businessMapper.toDto(business); restBusinessMockMvc.perform(post("/api/businesses") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(businessDTO))) .andExpect(status().isBadRequest()); List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeTest); } @Test @Transactional public void checkRemarkIsRequired() throws Exception { int databaseSizeBeforeTest = businessRepository.findAll().size(); // set the field null business.setRemark(null); // Create the Business, which fails. BusinessDTO businessDTO = businessMapper.toDto(business); restBusinessMockMvc.perform(post("/api/businesses") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(businessDTO))) .andExpect(status().isBadRequest()); List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeTest); } @Test @Transactional public void getAllBusinesses() throws Exception { // Initialize the database businessRepository.saveAndFlush(business); // Get all the businessList restBusinessMockMvc.perform(get("/api/businesses?sort=id,desc")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) .andExpect(jsonPath("$.[*].id").value(hasItem(business.getId().intValue()))) .andExpect(jsonPath("$.[*].name").value(hasItem(DEFAULT_NAME.toString()))) .andExpect(jsonPath("$.[*].remark").value(hasItem(DEFAULT_REMARK.toString()))) .andExpect(jsonPath("$.[*].createdBy").value(hasItem(DEFAULT_CREATED_BY.toString()))) .andExpect(jsonPath("$.[*].createdDate").value(hasItem(DEFAULT_CREATED_DATE.toString()))); } @Test @Transactional public void getBusiness() throws Exception { // Initialize the database businessRepository.saveAndFlush(business); // Get the business restBusinessMockMvc.perform(get("/api/businesses/{id}", business.getId())) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE)) .andExpect(jsonPath("$.id").value(business.getId().intValue())) .andExpect(jsonPath("$.name").value(DEFAULT_NAME.toString())) .andExpect(jsonPath("$.remark").value(DEFAULT_REMARK.toString())) .andExpect(jsonPath("$.createdBy").value(DEFAULT_CREATED_BY.toString())) .andExpect(jsonPath("$.createdDate").value(DEFAULT_CREATED_DATE.toString())); } @Test @Transactional public void getNonExistingBusiness() throws Exception { // Get the business restBusinessMockMvc.perform(get("/api/businesses/{id}", Long.MAX_VALUE)) .andExpect(status().isNotFound()); } @Test @Transactional public void updateBusiness() throws Exception { // Initialize the database businessRepository.saveAndFlush(business); int databaseSizeBeforeUpdate = businessRepository.findAll().size(); // Update the business Business updatedBusiness = businessRepository.findById(business.getId()).get(); // Disconnect from session so that the updates on updatedBusiness are not directly saved in db em.detach(updatedBusiness); updatedBusiness .name(UPDATED_NAME) .remark(UPDATED_REMARK) .createdBy(UPDATED_CREATED_BY) .createdDate(UPDATED_CREATED_DATE); BusinessDTO businessDTO = businessMapper.toDto(updatedBusiness); restBusinessMockMvc.perform(put("/api/businesses") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(businessDTO))) .andExpect(status().isOk()); // Validate the Business in the database List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeUpdate); Business testBusiness = businessList.get(businessList.size() - 1); assertThat(testBusiness.getName()).isEqualTo(UPDATED_NAME); assertThat(testBusiness.getRemark()).isEqualTo(UPDATED_REMARK); assertThat(testBusiness.getCreatedBy()).isEqualTo(UPDATED_CREATED_BY); assertThat(testBusiness.getCreatedDate()).isEqualTo(UPDATED_CREATED_DATE); } @Test @Transactional public void updateNonExistingBusiness() throws Exception { int databaseSizeBeforeUpdate = businessRepository.findAll().size(); // Create the Business BusinessDTO businessDTO = businessMapper.toDto(business); // If the entity doesn't have an ID, it will throw BadRequestAlertException restBusinessMockMvc.perform(put("/api/businesses") .contentType(TestUtil.APPLICATION_JSON_UTF8) .content(TestUtil.convertObjectToJsonBytes(businessDTO))) .andExpect(status().isBadRequest()); // Validate the Business in the database List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeUpdate); } @Test @Transactional public void deleteBusiness() throws Exception { // Initialize the database businessRepository.saveAndFlush(business); int databaseSizeBeforeDelete = businessRepository.findAll().size(); // Delete the business restBusinessMockMvc.perform(delete("/api/businesses/{id}", business.getId()) .accept(TestUtil.APPLICATION_JSON_UTF8)) .andExpect(status().isNoContent()); // Validate the database is empty List<Business> businessList = businessRepository.findAll(); assertThat(businessList).hasSize(databaseSizeBeforeDelete - 1); } @Test @Transactional public void equalsVerifier() throws Exception { TestUtil.equalsVerifier(Business.class); Business business1 = new Business(); business1.setId(1L); Business business2 = new Business(); business2.setId(business1.getId()); assertThat(business1).isEqualTo(business2); business2.setId(2L); assertThat(business1).isNotEqualTo(business2); business1.setId(null); assertThat(business1).isNotEqualTo(business2); } @Test @Transactional public void dtoEqualsVerifier() throws Exception { TestUtil.equalsVerifier(BusinessDTO.class); BusinessDTO businessDTO1 = new BusinessDTO(); businessDTO1.setId(1L); BusinessDTO businessDTO2 = new BusinessDTO(); assertThat(businessDTO1).isNotEqualTo(businessDTO2); businessDTO2.setId(businessDTO1.getId()); assertThat(businessDTO1).isEqualTo(businessDTO2); businessDTO2.setId(2L); assertThat(businessDTO1).isNotEqualTo(businessDTO2); businessDTO1.setId(null); assertThat(businessDTO1).isNotEqualTo(businessDTO2); } @Test @Transactional public void testEntityFromId() { assertThat(businessMapper.fromId(42L).getId()).isEqualTo(42); assertThat(businessMapper.fromId(null)).isNull(); } }