Changes adding Live tests

This commit is contained in:
Amitabh Tiwari 2022-07-25 17:16:48 +05:30
parent 07b65a6d33
commit 4bae437bd6
6 changed files with 27 additions and 34 deletions

View File

@ -1,37 +1,18 @@
package com.baeldung.cloud.openfeign.fileupload.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.baeldung.cloud.openfeign.fileupload.service.UploadService;
import com.baeldung.cloud.openfeign.exception.NotFoundException;
@RestController
public class FileController {
@Autowired
private UploadService service;
@PostMapping(value = "/upload-mannual-client")
public boolean handleFileUploadWithManualClient(@RequestPart(value = "file") MultipartFile file) {
return service.uploadFileWithManualClient(file);
}
@PostMapping(value = "/upload-file")
public boolean handleFileUpload(@RequestPart(value = "file") MultipartFile file) {
return service.uploadFileWithManualClient(file);
}
@PostMapping(value = "/upload-with-fallbackfactory")
public String uploadFileWithFallbackFactory(@RequestPart(value = "file") MultipartFile file) {
return service.uploadFileWithFallbackFactory(file);
}
@PostMapping(value = "/upload-with-fallback")
public String uploadFileWithFallback(@RequestPart(value = "file") MultipartFile file) {
return service.uploadFileWithFallback(file);
@PostMapping(value = "/upload-error")
public String uploadFileWithFallback(@RequestPart(value = "file") MultipartFile file) throws NotFoundException {
throw new NotFoundException("Not Found!!!");
}
}

View File

@ -8,8 +8,8 @@ import org.springframework.web.multipart.MultipartFile;
import com.baeldung.cloud.openfeign.fileupload.config.FeignSupportConfig;
@FeignClient(name = "file", url = "http://localhost:8080", configuration = FeignSupportConfig.class, fallback = FileUploadClientWithFallbackImpl.class)
@FeignClient(name = "file", url = "http://localhost:8081", configuration = FeignSupportConfig.class, fallback = FileUploadClientWithFallbackImpl.class)
public interface FileUploadClientWithFallBack {
@PostMapping(value = "/upload-file", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@PostMapping(value = "/upload-error", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String fileUpload(@RequestPart(value = "file") MultipartFile file);
}

View File

@ -8,8 +8,8 @@ import org.springframework.web.multipart.MultipartFile;
import com.baeldung.cloud.openfeign.fileupload.config.FeignSupportConfig;
@FeignClient(name = "file", url = "http://localhost:8080", configuration = FeignSupportConfig.class, fallbackFactory = FileUploadClientFallbackFactory.class)
@FeignClient(name = "file", url = "http://localhost:8081", configuration = FeignSupportConfig.class, fallbackFactory = FileUploadClientFallbackFactory.class)
public interface FileUploadClientWithFallbackFactory {
@PostMapping(value = "/upload-file", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@PostMapping(value = "/upload-error", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String fileUpload(@RequestPart(value = "file") MultipartFile file);
}

View File

@ -9,7 +9,7 @@ import feign.Response;
public interface UploadResource {
@RequestLine("POST /upload-file")
@RequestLine("POST /upload-error")
@Headers("Content-Type: multipart/form-data")
Response uploadFile(@Param("file") MultipartFile file);

View File

@ -10,7 +10,7 @@ import feign.form.spring.SpringFormEncoder;
@Service
public class UploadService {
private static final String HTTP_FILE_UPLOAD_URL = "http://localhost:8080";
private static final String HTTP_FILE_UPLOAD_URL = "http://localhost:8081";
@Autowired
private FileUploadClientWithFallbackFactory fileUploadClient;

View File

@ -14,6 +14,7 @@ import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.multipart.MultipartFile;
import com.baeldung.cloud.openfeign.exception.NotFoundException;
import com.baeldung.cloud.openfeign.fileupload.service.UploadService;
@RunWith(SpringRunner.class)
@ -25,8 +26,19 @@ public class OpenFeignFileUploadLiveTest {
private static String FILE_NAME = "fileupload.txt";
@Test
public void whenFeignBuilder_thenFileUploadSuccess() throws IOException {
@Test(expected = NotFoundException.class)
public void whenFileUploadClientFallbackFactory_thenFileUploadError() throws IOException {
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
File file = new File(classloader.getResource(FILE_NAME).getFile());
Assert.assertTrue(file.exists());
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain",
IOUtils.toByteArray(input));
uploadService.uploadFileWithFallbackFactory(multipartFile);
}
@Test(expected = NotFoundException.class)
public void whenFileUploadClientFallback_thenFileUploadError() throws IOException {
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
File file = new File(classloader.getResource(FILE_NAME).getFile());
Assert.assertTrue(file.exists());
@ -36,14 +48,14 @@ public class OpenFeignFileUploadLiveTest {
uploadService.uploadFileWithFallback(multipartFile);
}
@Test
public void whenAnnotatedFeignClient_thenFileUploadSuccess() throws IOException {
@Test(expected = NotFoundException.class)
public void whenFileUploadWithMannualClient_thenFileUploadError() throws IOException {
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
File file = new File(classloader.getResource(FILE_NAME).getFile());
Assert.assertTrue(file.exists());
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain",
IOUtils.toByteArray(input));
uploadService.uploadFileWithFallbackFactory(multipartFile);
uploadService.uploadFileWithManualClient(multipartFile);
}
}