java - 如何通过邮递员测试spring boot多个文件上传及其详细信息?
问题描述
我有一个模型,它将用于上传多个文件以及文件的详细信息。
我将收到 3 个文件的出生证明、公民身份和一个其他文件。这三个文件有自己的详细信息,应该由我的 Certificates.java 类保存。
买家卖家文档.java
@AllArgsConstructor
@NoArgsConstructor
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class BuyerSellerDocs {
Long transactionId;
Long contactTypeId;
Long contactId;
Certificates birthDayCertificates;
Certificates citizenshipCertificates;
Certificates otherCertificates;
}
对应的子类是
@AllArgsConstructor
@NoArgsConstructor
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class Certificates {
Long documentTypeId;
String certificateRefno;
Date issueDate;
MultipartFile documentFile;
Long documentType;
}
控制器类是
private static final String[] certificatesType = new String[]{"birthCertificate","citizenCertificate","otherCertificate"};
@PostMapping("/app/uploadcontactdocuments")
public ResponseEntity<Tbldocumentdetail> uploadContactDocuments(@ModelAttribute BuyerSellerDocs documents) throws IOException {
//creating an instance of entity to be saved
Tbldocumentdetail tbldocumentdetail = new Tbldocumentdetail();
Certificates certificates = null;
for(int i=0; i>certificatesType.length; i++) {
if(certificatesType[i].equalsIgnoreCase("birthCertificate")) {
certificates = documents.getBirthDayCertificates();
}
else if(certificatesType[i].equalsIgnoreCase("citizenCertificate")) {
certificates = documents.getCitizenshipCertificates();
}
else {
certificates = documents.getOtherCertificates();
}
//finding the type of document (i.e birth certificate, citizenship certificate etc) and setting it to entity
Tbldocument tbldocument =documentListService.findDocumentbyID(certificates.getDocumentTypeId());
tbldocumentdetail.setTbldocument(tbldocument);
//fetch multipart file convert it to bytes and set to entity
tbldocumentdetail.setDocument(certificates.getDocumentFile().getBytes());
tbldocumentdetail.setContactid(documents.getContactId());
//find contact type
Tblcontacttype tblcontacttype = new Tblcontacttype();
Optional<Tblcontacttype> tblcontacttype1 =contactTypeRepo.findById(documents.getContactTypeId());
if(tblcontacttype1.isPresent()){
tblcontacttype = tblcontacttype1.get();
}
//set contact type to document detail
tbldocumentdetail.setTblcontacttype(tblcontacttype);
tbldocumentdetail.setReferenceno(documents.getTransactionId());
java.sql.Date currentDate = new java.sql.Date(new Date().getTime());
tbldocumentdetail.setDateofupload(currentDate);
Tbldocumentformat tbldocumentformat = new Tbldocumentformat();
if(certificates.getDocumentFile().getOriginalFilename().contains("jpg"))
{
tbldocumentdetail.setDocumentformat(5);
} else if(certificates.getDocumentFile().getOriginalFilename().contains("png")){
tbldocumentdetail.setDocumentformat(1);
}else if(certificates.getDocumentFile().getOriginalFilename().contains("doc")){
tbldocumentdetail.setDocumentformat(4);
}else if(certificates.getDocumentFile().getOriginalFilename().contains("pdf")){
tbldocumentdetail.setDocumentformat(6);
}
tbldocumentdetail.setDocumentname(certificates.getDocumentFile().getOriginalFilename());
Tbldocumentdetail details =documentDetailsRepo.save(tbldocumentdetail);
}
//i need to update here
return ResponseEntity.ok(null);
}
控制器类不完整。这里的困惑是,如果这是我应该接收参数的方式,我如何从邮递员那里调用这个 api 来测试它?
解决方案
推荐阅读
- php - 如何使用 Lazada API 创建新产品?
- python - 使用 Matplotlib Python 绘制图形
- reactjs - React Jest 测试覆盖显示未经测试的行(默认道具)
- java - 为什么 Launch4j 找不到已安装的 JDK?
- html - amp-base-carousel 使用 layout=fill 脱离父级
- java - 添加 MultiDex 后,我的 android studio 中出现运行时异常:“无法获取文件列表和 NullPointerException”
- javascript - JavaScript sorting array elements with .map()
- python - 将 depot_tools 添加到 PATH 的开头(必须在任何 Python 和/或 git 安装之前)
- camera - 视口在 libgdx 中如何工作以及如何正确设置它?
- java - PowerMockito.verifyPrivate 始终独立于参数工作