Skip to content

Commit

Permalink
Move RHBQPlatformAppManager to framework (quarkus-qe#1303)
Browse files Browse the repository at this point in the history
* Move RHBQPlatformAppManager to framework
  • Loading branch information
mocenas authored Sep 12, 2024
1 parent ab93e3b commit c380ea0
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.codehaus.plexus.util.xml.XmlStreamReader;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;

import io.quarkus.test.bootstrap.QuarkusCliClient;
import io.quarkus.test.bootstrap.QuarkusCliRestService;
import io.quarkus.test.services.quarkus.model.QuarkusProperties;
import io.smallrye.common.os.OS;
Expand All @@ -46,6 +47,16 @@ public abstract class QuarkusCLIUtils {
*/
private static final int GAV_FIELDS_LENGTH = 3;

public static IQuarkusCLIAppManager createAppManager(QuarkusCliClient cliClient,
DefaultArtifactVersion oldVersionStream,
DefaultArtifactVersion newVersionStream) {
if (QuarkusProperties.isRHBQ()) {
return new RHBQPlatformAppManager(cliClient, oldVersionStream, newVersionStream,
new DefaultArtifactVersion(QuarkusProperties.getVersion()));
}
return new DefaultQuarkusCLIAppManager(cliClient, oldVersionStream, newVersionStream);
}

/**
* Create app, put properties into application.properties file,
* then update the app and verify that properties are the expected ones.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package io.quarkus.test.util;

import static io.quarkus.test.bootstrap.QuarkusCliClient.UpdateApplicationRequest.defaultUpdate;
import static io.quarkus.test.util.QuarkusCLIUtils.getQuarkusAppVersion;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.io.IOException;

import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;

import io.quarkus.test.bootstrap.QuarkusCliClient;
import io.quarkus.test.bootstrap.QuarkusCliRestService;
import io.quarkus.test.logging.Log;

/**
* AppManager designed to update app to specific quarkus-bom version, instead of to stream as DefaultQuarkusCLIAppManager.
*/
public class RHBQPlatformAppManager extends DefaultQuarkusCLIAppManager {
protected final DefaultArtifactVersion newPlatformVersion;

public RHBQPlatformAppManager(QuarkusCliClient cliClient, DefaultArtifactVersion oldStreamVersion,
DefaultArtifactVersion newStreamVersion, DefaultArtifactVersion newPlatformVersion) {
super(cliClient, oldStreamVersion, newStreamVersion);
this.newPlatformVersion = newPlatformVersion;
}

@Override
public void updateApp(QuarkusCliRestService app) {
Log.info("Updating app to version: " + newPlatformVersion);
app.update(defaultUpdate()
.withPlatformVersion(newPlatformVersion.toString()));
}

@Override
public QuarkusCliRestService createApplication() {
return assertIsUsingRHBQ(super.createApplication());
}

@Override
public QuarkusCliRestService createApplicationWithExtensions(String... extensions) {
return assertIsUsingRHBQ(super.createApplicationWithExtensions(extensions));
}

@Override
public QuarkusCliRestService createApplicationWithExtraArgs(String... extraArgs) {
return assertIsUsingRHBQ(super.createApplicationWithExtraArgs(extraArgs));
}

private QuarkusCliRestService assertIsUsingRHBQ(QuarkusCliRestService app) {
try {
// check that created application uses version with "redhat" suffix.
assertTrue(getQuarkusAppVersion(app).toString().contains("redhat"),
"Created Quarkus application does not use \"redhat\" version, while should be RHBQ");
} catch (IOException | XmlPullParserException e) {
throw new RuntimeException(e);
}
return app;
}
}

0 comments on commit c380ea0

Please sign in to comment.