Skip to main content

How to test Microservices' Controller with mokito and Junit

Add Dependency In your project

----------------------------------------------------

compileOnly 'org.projectlombok:lombok'

annotationProcessor 'org.projectlombok:lombok'


testImplementation group: 'junit', name: 'junit'

testImplementation group: 'org.mockito', name: 'mockito-all', version: '1.10.19'


implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'

implementation 'org.springframework.boot:spring-boot-starter-web'

developmentOnly 'org.springframework.boot:spring-boot-devtools'

testImplementation 'org.springframework.boot:spring-boot-starter-test'




=====================================================

 package com.technoidentity.agastya;


import static org.junit.Assert.assertNotNull;

import static org.junit.jupiter.api.Assertions.assertEquals;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

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

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;

import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;

import org.junit.jupiter.api.Order;

import org.junit.jupiter.api.Test;

import org.junit.jupiter.api.TestMethodOrder;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.http.HttpStatus;

import org.springframework.http.MediaType;

import org.springframework.mock.web.MockHttpServletResponse;

import org.springframework.test.context.TestPropertySource;

import org.springframework.test.context.junit4.SpringRunner;

import org.springframework.test.web.servlet.MockMvc;

import org.springframework.test.web.servlet.MvcResult;


@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)

@RunWith(SpringRunner.class)

@AutoConfigureMockMvc

@TestPropertySource(locations = "classpath:application-local.yml")

@TestMethodOrder(OrderAnnotation.class)

class AgastyaServiceApplicationTests {


@Autowired

private MockMvc mvc;


@Test

void contextLoads() {

}


@Test

@Order(1)

public void getAllTelemetryEventsTest() throws Exception {


MvcResult result = mvc.perform(get("/agastya/telemetry")).andReturn();

// MockHttpServletRequest req=result.getRequest();

MockHttpServletResponse resp = result.getResponse();

assertNotNull(resp.getContentAsString());

assertEquals(HttpStatus.OK.value(), resp.getStatus());

}

@Test

@Order(1)

public void getAllTelemetryIfEventsTest() throws Exception {


MvcResult result = mvc.perform(get("/agastya/telemetry")).andReturn();

// MockHttpServletRequest req=result.getRequest();

MockHttpServletResponse resp = result.getResponse();

assertNotNull(resp.getContentAsString());

assertEquals(HttpStatus.OK.value(), resp.getStatus());

}



@Test

@Order(2)

public void getTelemetryEventByIdTest() throws Exception {

MvcResult result = mvc.perform(get("/agastya/telemetry/2")).andReturn();

MockHttpServletResponse resp = result.getResponse();

assertEquals(HttpStatus.OK.value(), resp.getStatus());

assertNotNull(resp.getContentAsString());

System.out.println(resp.getContentAsString());

System.out.println(resp.getStatus());

}


@Test

@Order(3)

public void createTelemetryEventTest() throws Exception {


MvcResult result = mvc

.perform(post("/agastya/telemetry")

.header("Content-Type", "application/json")

//.contentType(MediaType.APPLICATION_JSON)

.content("{\"deviceId\":\"14\",\"timestamp\":null,\"telemetryKey\":\"Krishna\",\"telemetryValue\":\"Joti\"}"))

.andReturn();

MockHttpServletResponse resp = result.getResponse();

assertNotNull(resp.getContentAsString());

assertEquals(HttpStatus.OK.value(), resp.getStatus());

        System.out.println("Hello prine");

}


     @Test

     @Order(4)

     public void updateTelemetryEvent() throws Exception {

    MvcResult result=mvc.perform(put("/agastya/telemetry/14")

    .contentType(MediaType.APPLICATION_JSON)

    .content("{\"deviceId\":\"14\",\"timestamp\":null,\"telemetryKey\":\"Krishna\",\"telemetryValue\":\"Joti\"}"))

    .andReturn();

    MockHttpServletResponse resp = result.getResponse();

  assertNotNull(resp.getContentAsString());

  assertEquals(HttpStatus.OK.value(), resp.getStatus());

     

     }

    @Test

    @Order(5)

  public void deleteTelemetryEventTest() throws Exception {

  MvcResult result = mvc.perform(delete("/agastya/telemetry/14")).andReturn();

  MockHttpServletResponse resp = result.getResponse();

  assertEquals(HttpStatus.OK.value(), resp.getStatus());

  assertNotNull(resp.getContentAsString());

  System.out.println(resp.getContentAsString());

  }

    

    @Test

@Order(6)

public void createTelemetryTest() throws Exception {


MvcResult result = mvc

.perform(post("/agastya/telemetry")

.header("Content-Type", "application/json")

//.contentType(MediaType.APPLICATION_JSON)

.content("{\"deviceId\":\"14\",\"timestamp\":null,\"telemetryKey\":\"Krishna\",\"telemetryValue\":\"Joti\"}"))

.andReturn();

MockHttpServletResponse resp = result.getResponse();

assertNotNull(resp.getContentAsString());

assertEquals(HttpStatus.OK.value(), resp.getStatus());

        System.out.println("Hello prine");

}

    

    

    

    

    

    

    


  /*

  @Order(6)

  public void deleteAllTelemetryEventTest() throws Exception {

  MvcResult result = mvc.perform(delete("/agastya/telemetry")).andReturn();

  MockHttpServletResponse resp = result.getResponse();

  assertEquals(HttpStatus.OK.value(), resp.getStatus());

  assertNotNull(resp.getContentAsString());

  System.out.println(resp.getContentAsString());

  }*/

    

}


Comments

Popular posts from this blog

How to Send OTP in Mobile Number | login with OTP mobile Number | How to send OTP in mobile no with Spring Boot APP

   ðŸ˜‚               Login with Mobile Number OTP ---------------------------------------------------------------------------- If you want to develop a project to log in with OTP mobile Number in Spring Boot Applications then this post for you. In this post, I am going to use some other service to send the OTP in mobile number. we have to use it in this project spring boot. we are going to use Twilio to send SMS. we are going to use a web socket to send the data from the browser to the SMS gateway. Oracle Database for store the user details. org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-thymeleaf 2.3.3.RELEASE com.twilio.sdk twilio 7.1.0 org.springframework.boot spring-boot-starter-websocket org.springframework.boot spring-boot-devtools runtime true package com.app; impo...

Spring Boot With MySQL Database connection with Examples | MySQl Database Configuration with Spring Boot Projects

 ðŸ˜ƒ MySQL Database Configuration with Spring Boot Projects  In this article, we are going to introduce How to connect MySQL Database with the Spring Boot project. pom.xml   org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime true mysql mysql-connector-java runtime org.projectlombok lombok true    application. properties   server.port=8025 spring.datasource.url=jdbc:mysql://localhost:3306/princedb spring.datasource.username=root spring.datasource.password=root spring.jpa.hibernate.ddl-auto=create-drop MySqlWithSpringBootApplication.java   package com.app; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MySqlWithSpringBootApp...

How can we create Auto generated field or ID for mongodb using spring boot

😂 How can we create an Auto-generated field or ID for MongoDB using spring boot? First Create One Application Like Mongodb_sequence-id-generator Pom.XML org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-mongodb de.flapdoodle.embed de.flapdoodle.embed.mongo User.java package com.app; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "users_db") public class User { @Transient public static final String SEQUENCE_NAME = "users_sequence"; @Id private long id; private String firstName; private String lastName; private String email; public User() { } public User(String firstName, String lastName, String email) { this.firstName = firstName; this.lastName = la...