testresttemplate - srujanabala/springboot-couchbase GitHub Wiki

POST: HttpEntity entity = new HttpEntity(new Student("101", "rja", 5);

package com.example.rest;

import static org.junit.Assert.assertEquals;

import java.util.ArrayList; import java.util.List;

import org.json.JSONException; import org.junit.Before; 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.web.client.TestRestTemplate; import org.springframework.boot.web.server.LocalServerPort; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner;

import com.example.CouchBaseApplication; import com.example.model.Student; import com.example.repository.UserRepository;

@RunWith(SpringRunner.class)) @SpringBootTest(classes = CouchBaseApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class ViewControllerTest {

@LocalServerPort
private int port;


@Autowired
private UserRepository userRepository;

@Autowired
private ViewController viewController;

private TestRestTemplate testRestTemplate = new TestRestTemplate();

List<Student> students = new ArrayList<>();
HttpHeaders headers = new HttpHeaders();

HttpEntity<String> entity = new HttpEntity<String>(null, headers);

@Before
public void setup() {
	Student student = new Student("101", "Sapthika", 2);
	students.add(student);
	Student student2 = new Student("101", "Sapthika", 2);
	students.add(student2);
}

private String createURLWithPort(String uri) {
	return "http://localhost:" + port + uri;
}

@Test
public void testAddNew() throws JSONException {
	ResponseEntity<Iterable<Student>> response = testRestTemplate.exchange(
			createURLWithPort("/get/{name}"),
			HttpMethod.GET, entity, new ParameterizedTypeReference<Iterable<Student>>(){},"John");
	

	System.out.println(response.getBody());
	assertEquals(HttpStatus.OK, response.getStatusCode());
	List<Student> studentList = new ArrayList<>();
	response.getBody().forEach(studentList::add);
	assertEquals(5,studentList.size());
}

}

26th::

Test case: @Test public void testPutMethod() { HttpEntity entity = new HttpEntity(new Student("15", "John", 99),headers); ResponseEntity response = testRestTemplate.exchange( createURLWithPort("/students"), HttpMethod.PUT, entity, Student.class); System.out.println(response.getBody()); assertEquals(HttpStatus.ACCEPTED, response.getStatusCode()); }

Controller put method changes : Note : This put method will update ID and AGE. @PutMapping(value ="/students", consumes=MediaType.APPLICATION_JSON_VALUE)

public ResponseEntity<Student> updateStudent(@RequestBody Student student) {
	System.out.println(student.getName());
	if(userRepo.findByName(student.getName()).isEmpty()) {
		return new ResponseEntity<>(student, HttpStatus.NOT_FOUND);
	}else {
		userRepo.save(student);
		return new ResponseEntity<>(student, HttpStatus.ACCEPTED);
	}
}
⚠️ **GitHub.com Fallback** ⚠️