fix(file): allow standalone legal-person ID upload
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package com.baiyue.iam.service;
|
||||
|
||||
import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.iam.dto.OnboardingDtos.QualificationSubmissionRequest;
|
||||
import com.baiyue.iam.dto.OnboardingDtos.RequiredQualificationPackageRequest;
|
||||
import com.baiyue.iam.entity.IamTenant;
|
||||
import com.baiyue.iam.entity.IamTenantQualification;
|
||||
import com.baiyue.iam.repository.ProfileResourceRepository;
|
||||
import com.baiyue.iam.repository.TenantRepository;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
@@ -22,7 +25,6 @@ import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.times;
|
||||
import com.baiyue.common.core.exception.BizException;
|
||||
|
||||
@SpringJUnitConfig(ProfileResourceService.class)
|
||||
class MerchantQualificationUploadTest {
|
||||
@@ -49,6 +51,38 @@ class MerchantQualificationUploadTest {
|
||||
verify(tenantRepository, never()).insertReview(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void replacesOnlyTheLegalPersonIdWithoutTouchingTheBusinessLicense() {
|
||||
IamTenant tenant = new IamTenant();
|
||||
tenant.setId(10001L);
|
||||
tenant.setTenantType("MERCHANT");
|
||||
tenant.setStatus("REJECTED");
|
||||
when(tenantRepository.findTenantForUpdate(10001L)).thenReturn(tenant);
|
||||
IamTenantQualification businessLicense = qualification(
|
||||
"BUSINESS_LICENSE", "/api/merchant/v1/files/qualifications/license.png");
|
||||
IamTenantQualification oldLegalPersonId = qualification(
|
||||
"LEGAL_PERSON_ID", "/api/merchant/v1/files/qualifications/old-legal-person.png");
|
||||
when(profileRepository.findQualificationsForUpdate(10001L))
|
||||
.thenReturn(List.of(businessLicense, oldLegalPersonId));
|
||||
|
||||
var response = service.submitQualification(new QualificationSubmissionRequest(
|
||||
10001L, "LEGAL_PERSON_ID", null,
|
||||
"/api/merchant/v1/files/qualifications/new-legal-person.png",
|
||||
LocalDate.of(2035, 12, 31), true));
|
||||
|
||||
assertEquals("/api/merchant/v1/files/qualifications/old-legal-person.png",
|
||||
response.replacedDocumentUrl());
|
||||
assertEquals("SUPERSEDED", oldLegalPersonId.getStatus());
|
||||
assertEquals("PENDING", businessLicense.getStatus());
|
||||
ArgumentCaptor<IamTenantQualification> captor = ArgumentCaptor.forClass(IamTenantQualification.class);
|
||||
verify(profileRepository, times(2)).saveQualification(captor.capture());
|
||||
IamTenantQualification replacement = captor.getAllValues().get(1);
|
||||
assertEquals("LEGAL_PERSON_ID", replacement.getQualificationType());
|
||||
assertEquals(LocalDate.of(2035, 12, 31), replacement.getValidTo());
|
||||
assertNull(replacement.getCertificateNo());
|
||||
verify(tenantRepository, never()).saveTenant(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void requiredQualificationsRejectTheLegacySingleFilePath() {
|
||||
IamTenant tenant = new IamTenant();
|
||||
@@ -118,4 +152,14 @@ class MerchantQualificationUploadTest {
|
||||
|
||||
verify(profileRepository, never()).insertQualification(any());
|
||||
}
|
||||
|
||||
private static IamTenantQualification qualification(String type, String documentUrl) {
|
||||
IamTenantQualification qualification = new IamTenantQualification();
|
||||
qualification.setId(1L);
|
||||
qualification.setTenantId(10001L);
|
||||
qualification.setQualificationType(type);
|
||||
qualification.setDocumentUrl(documentUrl);
|
||||
qualification.setStatus("PENDING");
|
||||
return qualification;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user