Merge pull request #9600 from dashevchenko/afterTestFix
Improved afterTest method
This commit is contained in:
commit
ef26f18d5a
@ -25,6 +25,7 @@ import io.jsonwebtoken.Header;
|
|||||||
import io.jsonwebtoken.Jwt;
|
import io.jsonwebtoken.Jwt;
|
||||||
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.Jwts;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.http.HttpStatus;
|
||||||
import org.awaitility.Awaitility;
|
import org.awaitility.Awaitility;
|
||||||
import org.hamcrest.Matcher;
|
import org.hamcrest.Matcher;
|
||||||
import org.hibernate.exception.ConstraintViolationException;
|
import org.hibernate.exception.ConstraintViolationException;
|
||||||
@ -177,6 +178,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
* and {@link org.springframework.mock.web.MockAsyncContext#getTimeout()}
|
* and {@link org.springframework.mock.web.MockAsyncContext#getTimeout()}
|
||||||
*/
|
*/
|
||||||
private static final long DEFAULT_TIMEOUT = -1L;
|
private static final long DEFAULT_TIMEOUT = -1L;
|
||||||
|
private static final int CLEANUP_TENANT_RETRIES_COUNT = 3;
|
||||||
|
|
||||||
protected MediaType contentType = MediaType.APPLICATION_JSON;
|
protected MediaType contentType = MediaType.APPLICATION_JSON;
|
||||||
|
|
||||||
@ -330,10 +332,8 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
log.debug("Executing web test teardown");
|
log.debug("Executing web test teardown");
|
||||||
|
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
doDelete("/api/tenant/" + tenantId.getId().toString())
|
deleteTenant(tenantId);
|
||||||
.andExpect(status().isOk());
|
|
||||||
deleteDifferentTenant();
|
deleteDifferentTenant();
|
||||||
|
|
||||||
verifyNoTenantsLeft();
|
verifyNoTenantsLeft();
|
||||||
|
|
||||||
tenantProfileService.deleteTenantProfiles(TenantId.SYS_TENANT_ID);
|
tenantProfileService.deleteTenantProfiles(TenantId.SYS_TENANT_ID);
|
||||||
@ -341,7 +341,34 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
log.info("Executed web test teardown");
|
log.info("Executed web test teardown");
|
||||||
}
|
}
|
||||||
|
|
||||||
void verifyNoTenantsLeft() throws Exception {
|
private void verifyNoTenantsLeft() throws Exception {
|
||||||
|
List<Tenant> loadedTenants = getAllTenants();
|
||||||
|
if (!loadedTenants.isEmpty()) {
|
||||||
|
loadedTenants.forEach(tenant -> deleteTenant(tenant.getId()));
|
||||||
|
loadedTenants = getAllTenants();
|
||||||
|
}
|
||||||
|
assertThat(loadedTenants).as("All tenants expected to be deleted, but some tenants left in the database").isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteTenant(TenantId tenantId) {
|
||||||
|
int status = 0;
|
||||||
|
int retries = 0;
|
||||||
|
while (status != HttpStatus.SC_OK && retries < CLEANUP_TENANT_RETRIES_COUNT) {
|
||||||
|
retries++;
|
||||||
|
try {
|
||||||
|
status = doDelete("/api/tenant/" + tenantId.getId().toString())
|
||||||
|
.andReturn().getResponse().getStatus();
|
||||||
|
if (status != HttpStatus.SC_OK) {
|
||||||
|
log.warn("Tenant deletion failed, tenantId: {}", tenantId.getId().toString());
|
||||||
|
Thread.sleep(1000L);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Tenant> getAllTenants() throws Exception {
|
||||||
List<Tenant> loadedTenants = new ArrayList<>();
|
List<Tenant> loadedTenants = new ArrayList<>();
|
||||||
PageLink pageLink = new PageLink(10);
|
PageLink pageLink = new PageLink(10);
|
||||||
PageData<Tenant> pageData;
|
PageData<Tenant> pageData;
|
||||||
@ -353,8 +380,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
pageLink = pageLink.nextPageLink();
|
pageLink = pageLink.nextPageLink();
|
||||||
}
|
}
|
||||||
} while (pageData.hasNext());
|
} while (pageData.hasNext());
|
||||||
|
return loadedTenants;
|
||||||
assertThat(loadedTenants).as("All tenants expected to be deleted, but some tenants left in the database").isEmpty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void loginSysAdmin() throws Exception {
|
protected void loginSysAdmin() throws Exception {
|
||||||
@ -465,8 +491,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
protected void deleteDifferentTenant() throws Exception {
|
protected void deleteDifferentTenant() throws Exception {
|
||||||
if (savedDifferentTenant != null) {
|
if (savedDifferentTenant != null) {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
doDelete("/api/tenant/" + savedDifferentTenant.getId().getId().toString())
|
deleteTenant(savedDifferentTenant.getId());
|
||||||
.andExpect(status().isOk());
|
|
||||||
savedDifferentTenant = null;
|
savedDifferentTenant = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user