Skip to content

Commit

Permalink
#26633 Applying feedback removing Thread.sleep from code
Browse files Browse the repository at this point in the history
  • Loading branch information
jgambarios committed Jan 31, 2024
1 parent ab9ecf4 commit 970b43c
Show file tree
Hide file tree
Showing 8 changed files with 267 additions and 214 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.dotcms.DotCMSITProfile;
import com.dotcms.api.client.model.RestClientFactory;
import com.dotcms.api.client.model.ServiceManager;
import com.dotcms.common.SiteTestHelper;
import com.dotcms.common.SiteTestHelperService;
import com.dotcms.model.ResponseEntityView;
import com.dotcms.model.config.ServiceBean;
import com.dotcms.model.site.CopySiteRequest;
Expand All @@ -25,7 +25,7 @@

@QuarkusTest
@TestProfile(DotCMSITProfile.class)
class SiteAPIIT extends SiteTestHelper {
class SiteAPIIT {

@ConfigProperty(name = "com.dotcms.starter.site", defaultValue = "default")
String siteName;
Expand All @@ -39,6 +39,9 @@ class SiteAPIIT extends SiteTestHelper {
@Inject
ServiceManager serviceManager;

@Inject
SiteTestHelperService siteTestHelper;

@BeforeEach
public void setupTest() throws IOException {
serviceManager.removeAll().persist(ServiceBean.builder().name("default").active(true).build());
Expand Down Expand Up @@ -133,11 +136,12 @@ void Test_Archive_Unarchive() {

ResponseEntityView<SiteView> archiveSite = clientFactory.getClient(SiteAPI.class).archive(identifier);
Assertions.assertNotNull(archiveSite.entity());
Assertions.assertTrue(checkValidSiteStatus(newSiteName, false, true));
Assertions.assertTrue(siteTestHelper.checkValidSiteStatus(newSiteName, false, true));

ResponseEntityView<SiteView> unarchiveSite = clientFactory.getClient(SiteAPI.class).unarchive(identifier);
Assertions.assertNotNull(unarchiveSite.entity());
Assertions.assertTrue(checkValidSiteStatus(newSiteName, false, false));
Assertions.assertTrue(
siteTestHelper.checkValidSiteStatus(newSiteName, false, false));
}

@Test
Expand All @@ -155,11 +159,12 @@ void Test_Publish_UnPublish_Site() {

ResponseEntityView<SiteView> publishedSite = clientFactory.getClient(SiteAPI.class).publish(identifier);
Assertions.assertNotNull(publishedSite.entity());
Assertions.assertTrue(checkValidSiteStatus(newSiteName, true, false));
Assertions.assertTrue(siteTestHelper.checkValidSiteStatus(newSiteName, true, false));

ResponseEntityView<SiteView> unPublishedSite = clientFactory.getClient(SiteAPI.class).unpublish(identifier);
Assertions.assertNotNull(unPublishedSite.entity());
Assertions.assertTrue(checkValidSiteStatus(newSiteName, false, false));
Assertions.assertTrue(
siteTestHelper.checkValidSiteStatus(newSiteName, false, false));
}

@Test
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.dotcms.common;

import static org.testcontainers.shaded.org.awaitility.Awaitility.await;

import com.dotcms.api.SiteAPI;
import com.dotcms.api.client.model.RestClientFactory;
import com.dotcms.model.ResponseEntityView;
import com.dotcms.model.site.GetSiteByNameRequest;
import com.dotcms.model.site.SiteView;
import java.time.Duration;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.control.ActivateRequestContext;
import javax.inject.Inject;
import javax.ws.rs.NotFoundException;
import org.testcontainers.shaded.org.awaitility.core.ConditionTimeoutException;

@ApplicationScoped
public class SiteTestHelperService {

private static final Duration MAX_WAIT_TIME = Duration.ofSeconds(15);
private static final Duration POLL_INTERVAL = Duration.ofSeconds(2);

@Inject
RestClientFactory clientFactory;

/**
* Checks if the site statuses are valid.
*
* @param siteName The name of the site to check.
* @param isLive The expected live status of the site.
* @param archive The expected archive status of the site.
* @return True if the site statuses are valid, false otherwise.
*/
public Boolean checkValidSiteStatus(final String siteName,
final boolean isLive, final boolean archive) {

try {

await()
.atMost(MAX_WAIT_TIME)
.pollInterval(POLL_INTERVAL)
.until(() -> {
try {
var response = findSiteByName(siteName);
return (response != null && response.entity() != null) &&
((response.entity().isLive() != null &&
response.entity().isLive().equals(isLive)) &&
(response.entity().isArchived() != null &&
response.entity().isArchived()
.equals(archive)));
} catch (NotFoundException e) {
return false;
}
});

return true;
} catch (ConditionTimeoutException ex) {
return false;
}
}

/**
* Retrieves a site by its name.
*
* @param siteName The name of the site.
* @return The ResponseEntityView containing the SiteView object representing the site.
*/
@ActivateRequestContext
public ResponseEntityView<SiteView> findSiteByName(final String siteName) {

final SiteAPI siteAPI = clientFactory.getClient(SiteAPI.class);

// Execute the REST call to retrieve folder contents
return siteAPI.findByName(
GetSiteByNameRequest.builder().siteName(siteName).build()
);
}

}
Loading

0 comments on commit 970b43c

Please sign in to comment.