diff --git a/pom.xml b/pom.xml
index 30be8665..0a3dcde5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
com.microfocus.adm.almoctane.sdk
sdk-root
pom
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
ALM Octane REST API SDK
The Java SDK that can be used to access Octane's REST API without worrying about REST or HTTP
@@ -82,40 +82,44 @@
UTF-8
- 1.8
+ 21
- 1.7.25
- 1.5.18
+ 2.0.18
+ 1.5.34
- 1.44.1
- 33.0.0-jre
- 20240303
- 2.9.0
+ 2.1.0
+ 33.6.0-jre
+ 20260522
+ 3.0.0
- 1.9.4
- 2.19.0
- 3.12.0
+ 1.11.0
+ 2.22.0
+ 3.20.0
2.5.3
- 2.19.1
- 2.10.4
- 1.5
- 2.2.1
- 3.5.1
- 3.6.0
- 3.6.0
- 3.6.0
- 1.6.7
+ 3.5.6
+ 3.12.0
+ 3.2.8
+ 3.4.0
+ 3.15.0
+ 3.15.2
+ 3.9.16
+ 3.15.2
+ 1.7.0
+ 6.1.0
- 3.20.0-GA
- 1.7
+ 2.4.1
- 4.13.1
- 1.6.1
- 1.9.5
- 2.7
+ 4.13.2
+ 5.23.0
- 9.4.54.v20240208
+ 12.1.10
+ 3.0.0
+ 7.1.0
+
+ 26.84.0
+ 0.8.15
+ 5.0.0
@@ -132,13 +136,12 @@
test
-
com.google.cloud
libraries-bom
- 16.3.0
+ ${google-libraries-bom.version}
pom
import
@@ -168,42 +171,12 @@
commons-lang3
${commons-lang3}
-
- junit
- junit
- ${junit.version}
- test
-
-
- org.powermock
- powermock-module-junit4
- ${powermock.version}
- test
-
-
- org.javassist
- javassist
-
-
-
-
- org.powermock
- powermock-api-mockito
- ${powermock.version}
- test
-
org.mockito
mockito-core
${mockito.version}
test
-
- org.javassist
- javassist
- ${org.javassist.version}
- test
-
commons-io
commons-io
@@ -222,7 +195,7 @@
com.mycila
license-maven-plugin
- 3.0
+ ${license-maven-plugin.version}
@@ -263,14 +236,16 @@
maven-compiler-plugin
${maven-compiler.version}
- ${java.version}
- ${java.version}
+ ${java.version}
org.apache.maven.plugins
maven-surefire-plugin
${maven-surefire.version}
+
+ --add-opens java.base/java.nio.charset=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED
+
org.apache.maven.plugins
@@ -287,20 +262,17 @@
- org.codehaus.mojo
- cobertura-maven-plugin
- ${cobertura.version}
-
-
- xml
-
-
+ org.jacoco
+ jacoco-maven-plugin
+ ${jacoco-maven-plugin.version}
-
- clean
- check
-
+ prepare-agent
+
+
+ report
+ test
+ report
diff --git a/sdk-extension/pom.xml b/sdk-extension/pom.xml
index a64145c7..316a604d 100644
--- a/sdk-extension/pom.xml
+++ b/sdk-extension/pom.xml
@@ -33,7 +33,7 @@
sdk-root
com.microfocus.adm.almoctane.sdk
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
4.0.0
@@ -53,12 +53,6 @@
-
- junit
- junit
- ${junit.version}
- test
-
com.microfocus.adm.almoctane.sdk
sdk-src
diff --git a/sdk-extension/sdk-extension-src/pom.xml b/sdk-extension/sdk-extension-src/pom.xml
index b3b52736..d9df8a89 100644
--- a/sdk-extension/sdk-extension-src/pom.xml
+++ b/sdk-extension/sdk-extension-src/pom.xml
@@ -34,7 +34,7 @@
com.microfocus.adm.almoctane.sdk.extension
sdk-extension-root
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
ALM Octane REST API SDK Extension
@@ -62,14 +62,6 @@
coverage
-
-
-
- org.codehaus.mojo
- cobertura-maven-plugin
-
-
-
build-deployment
diff --git a/sdk-extension/sdk-extension-src/src/main/java/com/hpe/adm/nga/sdk/extension/businessrules/BusinessRuleEntityModel.java b/sdk-extension/sdk-extension-src/src/main/java/com/hpe/adm/nga/sdk/extension/businessrules/BusinessRuleEntityModel.java
index b603d010..8d458430 100644
--- a/sdk-extension/sdk-extension-src/src/main/java/com/hpe/adm/nga/sdk/extension/businessrules/BusinessRuleEntityModel.java
+++ b/sdk-extension/sdk-extension-src/src/main/java/com/hpe/adm/nga/sdk/extension/businessrules/BusinessRuleEntityModel.java
@@ -53,18 +53,15 @@ public BusinessRuleEntityModel(EntityModel entityModel, boolean convert) {
private EntityModel convert(EntityModel entityModel) {
entityModel.setValues(entityModel.getValues().stream()
.map(fieldModel -> {
- if (fieldModel instanceof ArrayFieldModel) {
- ArrayFieldModel arrayFieldModel = (ArrayFieldModel) fieldModel;
+ if (fieldModel instanceof ArrayFieldModel arrayFieldModel) {
return new ReferenceArrayFieldModel(fieldModel.getName(),
getEntitiesFromArray(new JSONArray(arrayFieldModel.getValue())));
- } else if (fieldModel instanceof ObjectFieldModel) {
- ObjectFieldModel objectFieldModel = (ObjectFieldModel) fieldModel;
+ } else if (fieldModel instanceof ObjectFieldModel objectFieldModel) {
return new ReferenceFieldModel(fieldModel.getName(),
convert(ModelParser.getInstance().getEntityModel(new JSONObject(objectFieldModel.getValue()))));
- } else if (fieldModel instanceof StringFieldModel) {
- StringFieldModel stringFieldModel = (StringFieldModel) fieldModel;
+ } else if (fieldModel instanceof StringFieldModel stringFieldModel) {
if (!Stream.of("comment", "value").collect(Collectors.toSet()).contains(fieldModel.getName())) {
Fact fact = Fact.getFact(stringFieldModel.getValue());
@@ -72,12 +69,10 @@ private EntityModel convert(EntityModel entityModel) {
return new FactFieldModel(stringFieldModel.getName(), fact);
}
}
- } else if (fieldModel instanceof ReferenceFieldModel) {
- ReferenceFieldModel refFieldModel = (ReferenceFieldModel) fieldModel;
+ } else if (fieldModel instanceof ReferenceFieldModel refFieldModel) {
return new ReferenceFieldModel(fieldModel.getName(), convert(refFieldModel.getValue()));
- } else if (fieldModel instanceof MultiReferenceFieldModel) {
- MultiReferenceFieldModel multiReferenceFieldModel = (MultiReferenceFieldModel) fieldModel;
+ } else if (fieldModel instanceof MultiReferenceFieldModel multiReferenceFieldModel) {
return new MultiReferenceFieldModel(multiReferenceFieldModel.getName(),
multiReferenceFieldModel.getValue().stream()
@@ -104,14 +99,11 @@ public Collection getFacts() {
Collection facts = new ArrayList<>();
this.getValues().forEach(fieldModel -> {
- if (fieldModel instanceof FactFieldModel) {
- facts.add(((FactFieldModel) fieldModel).getValue());
- } else if (fieldModel instanceof MultiReferenceFieldModel) {
- MultiReferenceFieldModel multiRefFieldModel = (MultiReferenceFieldModel) fieldModel;
- multiRefFieldModel.getValue().forEach(em -> facts.addAll(new BusinessRuleEntityModel(em, false).getFacts()));
- } else if (fieldModel instanceof ReferenceFieldModel) {
- ReferenceFieldModel refFieldModel = (ReferenceFieldModel) fieldModel;
- facts.addAll(new BusinessRuleEntityModel(refFieldModel.getValue(), false).getFacts());
+ switch (fieldModel) {
+ case FactFieldModel model -> facts.add(model.getValue());
+ case MultiReferenceFieldModel multiRefFieldModel -> multiRefFieldModel.getValue().forEach(em -> facts.addAll(new BusinessRuleEntityModel(em, false).getFacts()));
+ case ReferenceFieldModel refFieldModel -> facts.addAll(new BusinessRuleEntityModel(refFieldModel.getValue(), false).getFacts());
+ case null, default -> {}
}
});
diff --git a/sdk-extension/sdk-extension-usage-examples/pom.xml b/sdk-extension/sdk-extension-usage-examples/pom.xml
index a9e7b416..a02e1c62 100644
--- a/sdk-extension/sdk-extension-usage-examples/pom.xml
+++ b/sdk-extension/sdk-extension-usage-examples/pom.xml
@@ -34,7 +34,7 @@
com.microfocus.adm.almoctane.sdk.extension
sdk-extension-root
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
ALM Octane REST API SDK Extension Examples
diff --git a/sdk-generate-entity-models-maven-plugin/pom.xml b/sdk-generate-entity-models-maven-plugin/pom.xml
index 7160c729..b26753ab 100644
--- a/sdk-generate-entity-models-maven-plugin/pom.xml
+++ b/sdk-generate-entity-models-maven-plugin/pom.xml
@@ -34,7 +34,7 @@
sdk-root
com.microfocus.adm.almoctane.sdk
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
4.0.0
maven-plugin
@@ -103,7 +103,7 @@
org.apache.velocity
- velocity
+ velocity-engine-core
${org.apache.velocity.version}
diff --git a/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GenerateModels.java b/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GenerateModels.java
index 5c1c7bf8..59717041 100644
--- a/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GenerateModels.java
+++ b/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GenerateModels.java
@@ -52,7 +52,6 @@
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -103,10 +102,10 @@ public GenerateModels(final File outputDirectory) {
enumsDirectory.mkdirs();
final VelocityEngine velocityEngine = new VelocityEngine();
- velocityEngine.setProperty("resource.loader", "class");
- velocityEngine.setProperty("class.resource.loader.description", "Velocity Classpath Resource Loader");
- velocityEngine.setProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM, new SLF4JLogChute());
- velocityEngine.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
+ // Velocity 2.x property names (resource.loaders plural, new namespace)
+ velocityEngine.setProperty("resource.loaders", "class");
+ velocityEngine.setProperty("resource.loader.class.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
+ // No log system configuration needed — Velocity 2.x logs via SLF4J natively
velocityEngine.init();
@@ -209,7 +208,7 @@ private Map generateLists(Octane octane) throws IOException {
final String[] listNodeInfo = {name, ((StringFieldModel) listNode.getValue("id")).getValue()};
if (listRootFieldModel instanceof EmptyFieldModel) {
- listHierarchy.add(0, listNodeInfo);
+ listHierarchy.addFirst(listNodeInfo);
} else {
listHierarchy.add(listNodeInfo);
}
@@ -218,9 +217,9 @@ private Map generateLists(Octane octane) throws IOException {
for (final Map.Entry> entry : mappedListNodes.entrySet()) {
final String rootId = entry.getKey();
final List nodes = entry.getValue();
- final String className = nodes.get(0)[0];
+ final String className = nodes.getFirst()[0];
- final Path listDirectoryPath = enumsDirectory.toPath().resolve(Paths.get("lists", getPackageForRootIdForList(rootId).split("\\.")));
+ final Path listDirectoryPath = enumsDirectory.toPath().resolve(Path.of("lists", getPackageForRootIdForList(rootId).split("\\.")));
final File listDirectoryPathFile = listDirectoryPath.toFile();
//noinspection ResultOfMethodCallIgnored
listDirectoryPathFile.mkdirs();
diff --git a/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GeneratorHelper.java b/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GeneratorHelper.java
index aa89d744..2c23c4ee 100644
--- a/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GeneratorHelper.java
+++ b/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/GeneratorHelper.java
@@ -314,7 +314,7 @@ public String getUrl() {
public static EntityMetadataWrapper entityMetadataWrapper(final EntityMetadata entityMetadata) {
final EntityMetadataWrapper entityMetadataWrapper = new EntityMetadataWrapper();
final Optional restFeatureOptional = entityMetadata.features().stream().filter(feature -> feature instanceof RestFeature).findAny();
- if (!restFeatureOptional.isPresent()) {
+ if (restFeatureOptional.isEmpty()) {
return entityMetadataWrapper;
}
diff --git a/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/SLF4JLogChute.java b/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/SLF4JLogChute.java
index 885c98ef..91268b47 100644
--- a/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/SLF4JLogChute.java
+++ b/sdk-generate-entity-models-maven-plugin/src/main/java/com/hpe/adm/nga/sdk/generate/SLF4JLogChute.java
@@ -28,103 +28,14 @@
*/
package com.hpe.adm.nga.sdk.generate;
-import org.apache.velocity.runtime.RuntimeServices;
-import org.apache.velocity.runtime.log.LogChute;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
- * Implementation of a simple SLF4J system that will either latch onto
- * an existing category, or just do a simple rolling file log.
+ * Kept for source compatibility only.
+ * Velocity 2.x removed the LogChute system and routes all logging through SLF4J natively.
+ * This class is no longer used and will be removed in a future release.
*
- * @author Mandus Elfving
- * @see here for the source
+ * @deprecated Velocity 2.x uses SLF4J automatically. No log configuration needed.
*/
-public class SLF4JLogChute implements LogChute {
-
- private static final String RUNTIME_LOG_SLF4J_LOGGER = "runtime.log.logsystem.slf4j.logger";
-
- private Logger logger = null;
-
- /**
- * @see org.apache.velocity.runtime.log.LogChute#init(org.apache.velocity.runtime.RuntimeServices)
- */
- public void init(RuntimeServices rs) {
- String name = (String) rs.getProperty(RUNTIME_LOG_SLF4J_LOGGER);
- if (name != null) {
- logger = LoggerFactory.getLogger(name);
- log(DEBUG_ID, "SLF4JLogChute using logger '" + logger.getName() + '\'');
- } else {
- logger = LoggerFactory.getLogger(this.getClass());
- log(DEBUG_ID, "SLF4JLogChute using logger '" + logger.getClass() + '\'');
- }
- }
-
- /**
- * @see org.apache.velocity.runtime.log.LogChute#log(int, java.lang.String)
- */
- public void log(int level, String message) {
- switch (level) {
- case LogChute.WARN_ID:
- logger.warn(message);
- break;
- case LogChute.INFO_ID:
- logger.info(message);
- break;
- case LogChute.TRACE_ID:
- logger.trace(message);
- break;
- case LogChute.ERROR_ID:
- logger.error(message);
- break;
- case LogChute.DEBUG_ID:
- default:
- logger.debug(message);
- break;
- }
- }
-
- /**
- * @see org.apache.velocity.runtime.log.LogChute#log(int, java.lang.String, java.lang.Throwable)
- */
- public void log(int level, String message, Throwable t) {
- switch (level) {
- case LogChute.WARN_ID:
- logger.warn(message, t);
- break;
- case LogChute.INFO_ID:
- logger.info(message, t);
- break;
- case LogChute.TRACE_ID:
- logger.trace(message, t);
- break;
- case LogChute.ERROR_ID:
- logger.error(message, t);
- break;
- case LogChute.DEBUG_ID:
- default:
- logger.debug(message, t);
- break;
- }
- }
-
- /**
- * @see org.apache.velocity.runtime.log.LogChute#isLevelEnabled(int)
- */
- public boolean isLevelEnabled(int level) {
- switch (level) {
- case LogChute.DEBUG_ID:
- return logger.isDebugEnabled();
- case LogChute.INFO_ID:
- return logger.isInfoEnabled();
- case LogChute.TRACE_ID:
- return logger.isTraceEnabled();
- case LogChute.WARN_ID:
- return logger.isWarnEnabled();
- case LogChute.ERROR_ID:
- return logger.isErrorEnabled();
- default:
- return true;
- }
- }
+@Deprecated
+public class SLF4JLogChute {
+ // No-op — Velocity 2.x logs via SLF4J out of the box.
}
diff --git a/sdk-generate-entity-models-maven-plugin/src/main/resources/EntityModel.vm b/sdk-generate-entity-models-maven-plugin/src/main/resources/EntityModel.vm
index 380518a9..e53ac4f1 100644
--- a/sdk-generate-entity-models-maven-plugin/src/main/resources/EntityModel.vm
+++ b/sdk-generate-entity-models-maven-plugin/src/main/resources/EntityModel.vm
@@ -208,7 +208,7 @@ public ${referenceMetadata.getReferenceClassForSignature()} get${GeneratorHelper
#end
#macro (setListNode $field)
-#set ($listName = ${logicalNameToListsMap.get(${field.getFieldTypedata().getTargets()[0].logicalName()})})
+#set ($listName = ${logicalNameToListsMap.getOrDefault(${field.getFieldTypedata().getTargets()[0].logicalName()}, "OctaneList")})
#if (${field.getFieldTypedata().isMultiple()})#setMultiListNode($field $listName)#else#setSingleListNode($field $listName)#end
#end
diff --git a/sdk-integration-tests/pom.xml b/sdk-integration-tests/pom.xml
index 764f51b9..1f514cdd 100644
--- a/sdk-integration-tests/pom.xml
+++ b/sdk-integration-tests/pom.xml
@@ -33,7 +33,7 @@
sdk-root
com.microfocus.adm.almoctane.sdk
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
4.0.0
@@ -59,8 +59,10 @@
test
- junit
- junit
+ org.junit.jupiter
+ junit-jupiter
+ ${junit-jupiter.version}
+ test
com.microfocus.adm.almoctane.sdk
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestSharedSpaceAdmin.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestSharedSpaceAdmin.java
index 267357ee..b07b5cef 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestSharedSpaceAdmin.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestSharedSpaceAdmin.java
@@ -38,14 +38,16 @@
import com.hpe.adm.nga.sdk.utils.ConfigurationUtils;
import com.hpe.adm.nga.sdk.utils.ContextUtils;
import com.hpe.adm.nga.sdk.utils.HttpUtils;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.UUID;
-public class TestSharedSpaceAdmin {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class TestSharedSpaceAdmin {
static {
// for local execution
if (System.getProperty("should.set.proxy") == null) {
@@ -57,8 +59,8 @@ public class TestSharedSpaceAdmin {
private static Authentication authentication;
private static String sharedSpaceId;
- @BeforeClass
- public static void init() {
+ @BeforeAll
+ static void init() {
HttpUtils.SetSystemKeepAlive(false);
HttpUtils.SetSystemProxy();
@@ -69,23 +71,23 @@ public static void init() {
}
@Test
- public void testGetSharedSpaceAdmin() {
+ void getSharedSpaceAdmin() {
Octane octane = ContextUtils.getContextSharedSpace(url, authentication, null);
final OctaneCollection entityModels = octane.entityList(Octane.NO_ENTITY).get().execute();
- Assert.assertTrue(entityModels.size() > 0);
- Assert.assertEquals("shared_space", entityModels.iterator().next().getValue("type").getValue());
+ assertTrue(entityModels.size() > 0);
+ assertEquals("shared_space", entityModels.iterator().next().getValue("type").getValue());
}
@Test
- public void testGetSharedSpaceUsers() {
+ void getSharedSpaceUsers() {
Octane octane = ContextUtils.getContextSharedSpace(url, authentication, sharedSpaceId);
final OctaneCollection entityModels = octane.entityList("users").get().execute();
- Assert.assertTrue(entityModels.size() > 0);
- Assert.assertEquals("sharedspace_user", entityModels.iterator().next().getValue("type").getValue());
+ assertTrue(entityModels.size() > 0);
+ assertEquals("sharedspace_user", entityModels.iterator().next().getValue("type").getValue());
}
@Test
- public void testCreateSharedSpaceUser() {
+ void createSharedSpaceUser() {
Octane octane = ContextUtils.getContextSharedSpace(url, authentication, sharedSpaceId);
final EntityModel userEntityModel = new EntityModel();
@@ -100,6 +102,6 @@ public void testCreateSharedSpaceUser() {
createUsers.entities(Collections.singleton(userEntityModel));
final OctaneCollection octaneCollection = createUsers.execute();
- Assert.assertEquals(1, octaneCollection.size());
+ assertEquals(1, octaneCollection.size());
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestWorkSpaceAdmin.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestWorkSpaceAdmin.java
index d8f0bf04..3c718ea8 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestWorkSpaceAdmin.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/admin/TestWorkSpaceAdmin.java
@@ -36,11 +36,13 @@
import com.hpe.adm.nga.sdk.utils.ConfigurationUtils;
import com.hpe.adm.nga.sdk.utils.ContextUtils;
import com.hpe.adm.nga.sdk.utils.HttpUtils;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
-public class TestWorkSpaceAdmin {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class TestWorkSpaceAdmin {
static {
// for local execution
@@ -54,8 +56,8 @@ public class TestWorkSpaceAdmin {
private static String sharedSpaceId;
private static String workspaceId;
- @BeforeClass
- public static void init() {
+ @BeforeAll
+ static void init() {
HttpUtils.SetSystemKeepAlive(false);
HttpUtils.SetSystemProxy();
@@ -67,19 +69,19 @@ public static void init() {
}
@Test
- public void testGetWorkSpaceAdmin() {
+ void getWorkSpaceAdmin() {
Octane octane = ContextUtils.getContextWorkspace(url, authentication, sharedSpaceId, String.valueOf(Octane.NO_WORKSPACE_ID));
final OctaneCollection entityModels = octane.entityList(Octane.NO_ENTITY).get().execute();
- Assert.assertTrue(entityModels.size() > 0);
- Assert.assertEquals("workspace", entityModels.iterator().next().getValue("type").getValue());
+ assertTrue(entityModels.size() > 0);
+ assertEquals("workspace", entityModels.iterator().next().getValue("type").getValue());
}
@Test
- public void testGetWorkSpaceUsers() {
+ void getWorkSpaceUsers() {
Octane octane = ContextUtils.getContextWorkspace(url, authentication, sharedSpaceId, workspaceId);
final OctaneCollection entityModels = octane.entityList("workspace_users").get().execute();
- Assert.assertTrue(entityModels.size() > 0);
- Assert.assertEquals("workspace_user", entityModels.iterator().next().getValue("type").getValue());
+ assertTrue(entityModels.size() > 0);
+ assertEquals("workspace_user", entityModels.iterator().next().getValue("type").getValue());
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/attachments/TestAttachments.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/attachments/TestAttachments.java
index 616a37d4..1ab3b890 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/attachments/TestAttachments.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/attachments/TestAttachments.java
@@ -37,9 +37,9 @@
import com.hpe.adm.nga.sdk.query.QueryMethod;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
@@ -53,11 +53,15 @@
import java.util.Collection;
import java.util.Collections;
import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Integration tests for {@link com.hpe.adm.nga.sdk.attachments.AttachmentList}
*/
-public class TestAttachments extends TestBase {
+class TestAttachments extends TestBase {
private static EntityModel attachmentParent;
private static String ownerFieldName;
@@ -65,8 +69,8 @@ public class TestAttachments extends TestBase {
/**
* Create a parent defect for all tests
*/
- @BeforeClass
- public static void createAttachmentParent() {
+ @BeforeAll
+ static void createAttachmentParent() {
try {
Collection entities = DataGenerator.generateEntityModel(octane, "defects");
entities = octane.entityList("defects").create().entities(entities).execute();
@@ -82,7 +86,7 @@ public static void createAttachmentParent() {
* Create a text attachment. File extensions has to be .txt
*/
@Test
- public void testTextAttachment() {
+ void textAttachment() {
EntityModel initialAttachment = new EntityModel();
initialAttachment.setValue(new StringFieldModel("name", UUID.randomUUID().toString() + ".txt"));
@@ -111,7 +115,7 @@ public void testTextAttachment() {
* Create a text attachment using ISO-8859-1 encoding. File extensions has to be .txt
*/
@Test
- public void testAttachmentName() {
+ void attachmentName() {
String defaultCharset = Charset.defaultCharset().displayName();
setEncoding("ISO-8859-1");
@@ -145,7 +149,7 @@ public void testAttachmentName() {
* the server will compute the mime type and compare it to the file extension.
*/
@Test
- public void testImageAttachment() {
+ void imageAttachment() {
EntityModel initialAttachment = new EntityModel();
initialAttachment.setValue(new StringFieldModel("name", UUID.randomUUID().toString() + ".png"));
@@ -176,7 +180,7 @@ public void testImageAttachment() {
* The owner fields are also read only, so you cannot move an attachment to another entity.
*/
@Test
- public void testUpdateAttachment() {
+ void updateAttachment() {
EntityModel initialAttachment = new EntityModel();
initialAttachment.setValue(new StringFieldModel("name", UUID.randomUUID().toString() + ".txt"));
@@ -229,7 +233,7 @@ public void testUpdateAttachment() {
* Create an attachment, then delete it
*/
@Test
- public void testDeleteAttachment() {
+ void deleteAttachment() {
EntityModel initialAttachment = new EntityModel();
initialAttachment.setValue(new StringFieldModel("name", UUID.randomUUID().toString() + ".txt"));
@@ -261,7 +265,7 @@ public void testDeleteAttachment() {
.query(Query.statement("id", QueryMethod.EqualTo, uploadedAttachment.getValue("id").getValue()).build())
.execute();
- Assert.assertEquals(entities.size(), 0);
+ assertEquals(0, entities.size());
}
/**
@@ -270,7 +274,7 @@ public void testDeleteAttachment() {
* @param ownerFieldName name of owner field to fetch
*/
private EntityModel reloadEntityModel(Collection createResponse, String ownerFieldName) {
- Assert.assertTrue("One attachment should have been created", createResponse.size() == 1);
+ assertEquals(1, createResponse.size(), "One attachment should have been created");
EntityModel entityModel = createResponse.iterator().next();
String id = entityModel.getValue("id").getValue().toString();
@@ -289,17 +293,17 @@ private EntityModel reloadEntityModel(Collection createResponse, St
* @param ownerFieldName name of owner field to compare
*/
private void checkAttachmentJson(EntityModel initialEntityModel, EntityModel uploadedEntityModel, String ownerFieldName) {
- Assert.assertEquals(
+ assertEquals(
initialEntityModel.getValue("name").getValue(),
uploadedEntityModel.getValue("name").getValue());
- Assert.assertEquals(
+ assertEquals(
initialEntityModel.getValue("description").getValue(),
uploadedEntityModel.getValue("description").getValue());
EntityModel uploadedOwner = (EntityModel) initialEntityModel.getValue(ownerFieldName).getValue();
EntityModel createdOwner = (EntityModel) uploadedEntityModel.getValue(ownerFieldName).getValue();
- Assert.assertEquals(uploadedOwner.getValue("id").getValue(),
+ assertEquals(uploadedOwner.getValue("id").getValue(),
createdOwner.getValue("id").getValue());
}
@@ -311,15 +315,13 @@ private void checkAttachmentJson(EntityModel initialEntityModel, EntityModel upl
private void checkAttachmentContent(byte[] requestContent, EntityModel attachmentEntityModel) {
String id = attachmentEntityModel.getValue("id").getValue().toString();
InputStream responseInputStream = octane.attachmentList().at(id).getBinary().execute();
- try {
+ Assertions.assertDoesNotThrow(() -> {
byte[] responseContent = ByteStreams.toByteArray(responseInputStream);
- Assert.assertTrue(
- "Content of fetched attachment must be the same as what was uploaded",
- Arrays.equals(requestContent, responseContent));
+ assertTrue(
+ Arrays.equals(requestContent, responseContent),
+ "Content of fetched attachment must be the same as what was uploaded");
- } catch (IOException e) {
- Assert.fail("Failed to read response attachment, " + e.getMessage());
- }
+ }, "Failed to read response attachment, ");
}
/**
@@ -356,9 +358,9 @@ private static byte[] generateImageAttachmentContent() {
* @return random rgb represented as an int
*/
private static int getRandomRgb() {
- int r = (int) (Math.random() * 256); //red
- int g = (int) (Math.random() * 256); //green
- int b = (int) (Math.random() * 256); //blue
+ int r = (int) (ThreadLocalRandom.current().nextDouble() * 256); //red
+ int g = (int) (ThreadLocalRandom.current().nextDouble() * 256); //green
+ int b = (int) (ThreadLocalRandom.current().nextDouble() * 256); //blue
return (255 << 24) | (r << 16) | (g << 8) | b;
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/authentication/TestAuthentication.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/authentication/TestAuthentication.java
index be5baffa..f8121d45 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/authentication/TestAuthentication.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/authentication/TestAuthentication.java
@@ -31,23 +31,24 @@
import com.hpe.adm.nga.sdk.exception.OctaneException;
import com.hpe.adm.nga.sdk.model.EntityModel;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
+import static org.junit.jupiter.api.Assertions.fail;
+
/**
*
* Created by leufl on 14/11/2016.
*/
-public class TestAuthentication extends TestBase {
+class TestAuthentication extends TestBase {
@Test
- public void testSignOut() throws Exception {
+ void signOut() throws Exception {
octane.signOut();
try {
Collection defectModel = octane.entityList("stories").get().execute();
- Assert.fail("Sign out failed.");
+ fail("Sign out failed.");
} catch (OctaneException e) {}
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/base/TestBase.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/base/TestBase.java
index 5d5df6fc..426a8dba 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/base/TestBase.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/base/TestBase.java
@@ -37,8 +37,8 @@
import com.hpe.adm.nga.sdk.utils.ConfigurationUtils;
import com.hpe.adm.nga.sdk.utils.ContextUtils;
import com.hpe.adm.nga.sdk.utils.HttpUtils;
-import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
/**
*
@@ -59,8 +59,8 @@ public class TestBase {
}
}
- @BeforeClass
- public static void init() {
+ @BeforeAll
+ static void init() {
HttpUtils.SetSystemKeepAlive(false);
HttpUtils.SetSystemProxy();
@@ -75,8 +75,8 @@ public static void init() {
metadata = octane.metadata();
}
- @Before
- public void before() {
+ @BeforeEach
+ void before() {
if (!entityName.equals(entityTypeOld)) {
entityList = octane.entityList(entityName);
entityTypeOld = entityName;
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/comments/TestComments.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/comments/TestComments.java
index 47127ff5..168d82f3 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/comments/TestComments.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/comments/TestComments.java
@@ -34,14 +34,15 @@
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Guy Guetta on 02/05/2016.
@@ -52,7 +53,7 @@ public TestComments() {
}
@Test
- public void testCreateCommentForDefect() throws Exception {
+ void createCommentForDefect() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModel(octane, "defects");
Collection entityModels = octane.entityList("defects").create().entities(generatedEntity).execute();
@@ -60,7 +61,7 @@ public void testCreateCommentForDefect() throws Exception {
Collection actualComments = octane.entityList("comments").get().execute();
- Assert.assertTrue(CommonUtils.isCollectionAInCollectionB(expectedComments, actualComments));
+ assertTrue(CommonUtils.isCollectionAInCollectionB(expectedComments, actualComments));
}
private Collection createComments(String fieldEntityType, Collection entityModels) throws Exception {
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/context/TestSwitchContext.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/context/TestSwitchContext.java
index 1db54f2c..1577fdad 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/context/TestSwitchContext.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/context/TestSwitchContext.java
@@ -38,7 +38,7 @@
import com.hpe.adm.nga.sdk.utils.AuthenticationUtils;
import com.hpe.adm.nga.sdk.utils.ConfigurationUtils;
import com.hpe.adm.nga.sdk.utils.ContextUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
@@ -58,7 +58,7 @@ public void contextSiteAdmin() {
}
@Test
- public void contextSharedSpace() {
+ void contextSharedSpace() {
final ConfigurationUtils configuration = ConfigurationUtils.getInstance();
String url = configuration.getString("sdk.url");
Authentication authentication = AuthenticationUtils.getAuthentication();
@@ -72,7 +72,7 @@ public void contextSharedSpace() {
}
@Test
- public void contextWorkspace() {
+ void contextWorkspace() {
final ConfigurationUtils configuration = ConfigurationUtils.getInstance();
String url = configuration.getString("sdk.url");
Authentication authentication = AuthenticationUtils.getAuthentication();
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/cookieupdate/TestCookieUpdate.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/cookieupdate/TestCookieUpdate.java
index fee4f701..a07ef2eb 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/cookieupdate/TestCookieUpdate.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/cookieupdate/TestCookieUpdate.java
@@ -32,17 +32,18 @@
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Dmitry Zavyalov on 08/05/2016.
*/
-@Ignore // before to execute this test change mockssso.xml on server -> tokenIdleTimeout="1"
+@Disabled // before to execute this test change mockssso.xml on server -> tokenIdleTimeout="1"
public class TestCookieUpdate extends TestBase {
public TestCookieUpdate() {
@@ -50,7 +51,7 @@ public TestCookieUpdate() {
}
@Test
- public void testCookieUpdate() throws Exception {
+ void cookieUpdate() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModel(octane, entityName);
Collection entityModels = entityList.create().entities(generatedEntity).execute();
EntityModel entityModel = entityModels.iterator().next();
@@ -60,7 +61,7 @@ public void testCookieUpdate() throws Exception {
while (counter < 2) {
sleepTime(70);
EntityModel getEntity = entityList.at(entityId).get().execute();
- Assert.assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity.iterator().next(), getEntity));
+ assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity.iterator().next(), getEntity));
counter++;
}
}
@@ -74,7 +75,7 @@ private static void sleepTime(int sleepTimeInSec) {
}
@Test
- public void testCookieUpdateForPost() throws Exception {
+ void cookieUpdateForPost() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModel(octane, entityName);
int counter = 0;
while (counter < 2) {
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestCreateEntity.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestCreateEntity.java
index 7ce4bd36..bad5c2da 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestCreateEntity.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestCreateEntity.java
@@ -34,12 +34,13 @@
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.QueryUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.List;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Guy Guetta on 12/04/2016.
@@ -51,7 +52,7 @@ public TestCreateEntity() {
}
@Test
- public void testCreateEntity() throws Exception {
+ void createEntity() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModel(octane, entityName);
Collection entityModels = entityList.create().entities(generatedEntity).execute();
EntityModel entityModel = entityModels.iterator().next();
@@ -59,11 +60,11 @@ public void testCreateEntity() throws Exception {
EntityModel getEntity = entityList.at(entityId).get().addFields("parent", "name").execute();
- Assert.assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity.iterator().next(), getEntity));
+ assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity.iterator().next(), getEntity));
}
@Test
- public void testCreateEntityCollection() throws Exception {
+ void createEntityCollection() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModelCollection(octane, entityName);
Collection entityModels = entityList.create().entities(generatedEntity).execute();
List entityIds = CommonUtils.getIdFromEntityModelCollection(entityModels);
@@ -71,7 +72,7 @@ public void testCreateEntityCollection() throws Exception {
Collection getEntity = entityList.get().addFields("parent", "name").query(query).execute();
- Assert.assertTrue(CommonUtils.isCollectionAInCollectionB(generatedEntity, getEntity));
+ assertTrue(CommonUtils.isCollectionAInCollectionB(generatedEntity, getEntity));
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestDeleteEntity.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestDeleteEntity.java
index 5b8a9ab3..c6b02e06 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestDeleteEntity.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestDeleteEntity.java
@@ -34,12 +34,14 @@
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.QueryUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.List;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Guy Guetta on 25/04/2016.
@@ -50,7 +52,7 @@ public TestDeleteEntity() {
}
@Test
- public void testDeleteEntityById() throws Exception{
+ void deleteEntityById() throws Exception{
Collection generatedEntity = DataGenerator.generateEntityModel(octane, entityName);
Collection entityModels = entityList.create().entities(generatedEntity).execute();
@@ -63,11 +65,11 @@ public void testDeleteEntityById() throws Exception{
List entityIds = CommonUtils.getIdFromEntityModelCollection(getEntity);
- Assert.assertFalse(entityIds.contains(entityId));
+ assertFalse(entityIds.contains(entityId));
}
@Test
- public void testDeleteEntitiesByQuery() throws Exception{
+ void deleteEntitiesByQuery() throws Exception{
Collection generatedEntity = DataGenerator.generateEntityModelCollection(octane, entityName);
Collection entityModels = entityList.create().entities(generatedEntity).execute();
List entityIds = CommonUtils.getIdFromEntityModelCollection(entityModels);
@@ -83,6 +85,6 @@ public void testDeleteEntitiesByQuery() throws Exception{
//check there are no common ids
actualEntityIds.retainAll(entityIds);
- Assert.assertTrue(actualEntityIds.isEmpty());
+ assertTrue(actualEntityIds.isEmpty());
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestUpdateEntity.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestUpdateEntity.java
index a6e3c20b..32c82cd8 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestUpdateEntity.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/crud/TestUpdateEntity.java
@@ -37,13 +37,14 @@
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.QueryUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
* Created by Guy Guetta on 21/04/2016.
*/
@@ -54,7 +55,7 @@ public TestUpdateEntity() {
}
@Test
- public void testUpdateEntityById() throws Exception {
+ void updateEntityById() throws Exception {
String updatedNameValue = "updatedName" + UUID.randomUUID();
Set fields = new HashSet<>();
@@ -71,11 +72,11 @@ public void testUpdateEntityById() throws Exception {
EntityModel getEntity = entityList.at(entityId).get().addFields("name").execute();
- Assert.assertTrue(CommonUtils.isEntityAInEntityB(updatedEntity, getEntity));
+ assertTrue(CommonUtils.isEntityAInEntityB(updatedEntity, getEntity));
}
@Test
- public void testUpdateEntityCollectionIdInBody() throws Exception {
+ void updateEntityCollectionIdInBody() throws Exception {
List updatedNameValues = DataGenerator.generateNamesForUpdate();
Collection generatedEntity = DataGenerator.generateEntityModelCollection(octane, entityName);
@@ -99,12 +100,13 @@ public void testUpdateEntityCollectionIdInBody() throws Exception {
Collection getEntity = entityList.get().addFields("name").query(query).execute();
- Assert.assertTrue(CommonUtils.isCollectionAInCollectionB(updatedEntityCollection, getEntity));
+ assertTrue(CommonUtils.isCollectionAInCollectionB(updatedEntityCollection, getEntity));
}
- @Test // for release entity only
- public void testUpdateEntityCollectionWithQuery() throws Exception {
+ // for release entity only
+ @Test
+ void updateEntityCollectionWithQuery() throws Exception {
String entityName = "releases";
@@ -129,6 +131,6 @@ public void testUpdateEntityCollectionWithQuery() throws Exception {
Collection getEntity = octane.entityList(entityName).get().addFields("end_date").query(query).execute();
- Assert.assertTrue(CommonUtils.isCollectionAInCollectionB(updatedEntityCollection, getEntity));
+ assertTrue(CommonUtils.isCollectionAInCollectionB(updatedEntityCollection, getEntity));
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/errrohandling/TestOctaneException.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/errrohandling/TestOctaneException.java
index 3384441a..8381a28f 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/errrohandling/TestOctaneException.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/errrohandling/TestOctaneException.java
@@ -35,14 +35,15 @@
import com.hpe.adm.nga.sdk.model.LongFieldModel;
import com.hpe.adm.nga.sdk.model.StringFieldModel;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.fail;
/**
* Test octane server specific runtime exceptions
@@ -54,7 +55,7 @@ public TestOctaneException() {
}
@Test
- public void testOctanePartialException() {
+ void octanePartialException() {
EntityModel entityModel1 = new EntityModel();
entityModel1.setValue(new StringFieldModel("name", "potato1"));
@@ -69,20 +70,20 @@ public void testOctanePartialException() {
try {
entityList.create().entities(Arrays.asList(entityModel1, entityModel2)).execute();
} catch (Exception ex) {
- Assert.assertTrue(ex instanceof OctanePartialException);
+ assertInstanceOf(OctanePartialException.class, ex);
//One should pass, one should fail
assertEquals(1, ((OctanePartialException) ex).getEntitiesModels().size());
return;
}
- Assert.fail("Should have thrown an " + OctanePartialException.class.getName());
+ fail("Should have thrown an " + OctanePartialException.class.getName());
}
/**
* Update a single entity with an invalid field
*/
@Test
- public void testOctaneException() {
+ void octaneException() {
EntityModel entityModel = new EntityModel();
entityModel.setValue(new StringFieldModel("name", "potato"));
@@ -90,7 +91,7 @@ public void testOctaneException() {
Collection entityModels = entityList.create().entities(Collections.singletonList(entityModel)).execute();
if(entityModels.size() != 1) {
- Assert.fail("Failed to create entity model for test");
+ fail("Failed to create entity model for test");
}
entityModel = entityModels.iterator().next();
@@ -102,7 +103,7 @@ public void testOctaneException() {
try {
entityList.at(entityModel.getId()).update().entity(entityModel).execute();
} catch (Exception ex) {
- Assert.assertTrue(ex instanceof OctaneException);
+ assertInstanceOf(OctaneException.class, ex);
OctaneException octaneException = (OctaneException) ex;
assertEquals("platform.modify_non_editable_field", octaneException.getError().getValue("error_code").getValue());
@@ -110,7 +111,7 @@ public void testOctaneException() {
return;
}
- Assert.fail("Should have thrown an " + OctaneException.class.getName());
+ fail("Should have thrown an " + OctaneException.class.getName());
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestCrossFiltering.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestCrossFiltering.java
index ffd5e522..06e57790 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestCrossFiltering.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestCrossFiltering.java
@@ -36,15 +36,17 @@
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
/**
*
* Created by Guy Guetta on 02/05/2016.
@@ -59,18 +61,18 @@ public TestCrossFiltering() {
}
@Test
- public void simpleCrossFilter() throws Exception {
+ void simpleCrossFilter() throws Exception {
Query query = Query.statement("release", QueryMethod.EqualTo,
(Query.statement("id",QueryMethod.EqualTo, releaseId))
).build();
Collection defects = octane.entityList("defects").get().query(query).execute();
String newDefectId = CommonUtils.getIdFromEntityModel(defects.iterator().next());
- Assert.assertEquals("More defects than expected in response", 1, defects.size());
- Assert.assertEquals("Wrong defect id in response", defectId, newDefectId);
+ assertEquals(1, defects.size(), "More defects than expected in response");
+ assertEquals(defectId, newDefectId, "Wrong defect id in response");
}
@Test
- public void simpleCrossFilterReverse() throws Exception {
+ void simpleCrossFilterReverse() throws Exception {
Query query = Query.statement("release", QueryMethod.EqualTo,
Query.not("id", QueryMethod.EqualTo, releaseId)
).build();
@@ -78,39 +80,36 @@ public void simpleCrossFilterReverse() throws Exception {
// it could be that there are no other defects. So if defects is empty that's also good
if (defects != null && defects.size() > 0) {
String newDefectId = CommonUtils.getIdFromEntityModel(defects.iterator().next());
- Assert.assertNotEquals("Wrong defect id in response", defectId, newDefectId);
+ assertNotEquals(defectId, newDefectId, "Wrong defect id in response");
}
}
- @Ignore
@Test
- public void crossFilterTwoHopes() throws Exception {
- Query query = Query.statement("id", QueryMethod.EqualTo,
- Query.statement("release", QueryMethod.EqualTo,
- Query.statement("id", QueryMethod.EqualTo, releaseId)
- )
- ).build();
+ void crossFilterTwoHopes() throws Exception {
+ Query query = Query.statement("release", QueryMethod.EqualTo,
+ Query.statement("id", QueryMethod.EqualTo, releaseId)
+ ).build();
Collection defects = octane.entityList("defects").get().query(query).execute();
String newDefectId = CommonUtils.getIdFromEntityModel(defects.iterator().next());
- Assert.assertEquals("More defects than expected in response", 1, defects.size());
- Assert.assertEquals("Wrong defect id in response", defectId, newDefectId);
+ assertEquals(1, defects.size(), "More defects than expected in response");
+ assertEquals(defectId, newDefectId, "Wrong defect id in response");
}
- @Ignore
@Test
- public void crossFilterTwoHopesReverse() throws Exception {
- Query query = Query.statement("id", QueryMethod.EqualTo,
- Query.not("release", QueryMethod.EqualTo,
- Query.statement("id", QueryMethod.EqualTo, releaseId)
- )
- ).build();
+ void crossFilterTwoHopesReverse() throws Exception {
+ Query query = Query.not("release", QueryMethod.EqualTo,
+ Query.statement("id", QueryMethod.EqualTo, releaseId)
+ ).build();
Collection defects = octane.entityList("defects").get().query(query).execute();
- String newDefectId = CommonUtils.getIdFromEntityModel(defects.iterator().next());
- Assert.assertNotEquals("Wrong defect id in response", defectId, newDefectId);
+ // It is valid to get no matching defects, so assert only when results exist.
+ if (defects != null && defects.size() > 0) {
+ String newDefectId = CommonUtils.getIdFromEntityModel(defects.iterator().next());
+ assertNotEquals(defectId, newDefectId, "Wrong defect id in response");
+ }
}
- @BeforeClass
- public static void initTests() throws Exception {
+ @BeforeAll
+ static void initTests() throws Exception {
Set fields = new HashSet<>();
Collection releaseEntity = DataGenerator.generateEntityModel(octane, "releases", fields);
Collection releases = octane.entityList("releases").create().entities(releaseEntity).execute();
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestFieldsFilter.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestFieldsFilter.java
index 165c633b..b80f0b29 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestFieldsFilter.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestFieldsFilter.java
@@ -33,11 +33,12 @@
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.*;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Guy Guetta on 25/04/2016.
@@ -48,7 +49,7 @@ public TestFieldsFilter() {
}
@Test
- public void testFieldsFilterWithIdOneField() throws Exception {
+ void fieldsFilterWithIdOneField() throws Exception {
List filterFields = Arrays.asList("attachments");
Set fields = new HashSet<>();
@@ -59,11 +60,11 @@ public void testFieldsFilterWithIdOneField() throws Exception {
EntityModel getEntity = entityList.at(entityId).get().addFields("attachments").execute();
- Assert.assertTrue(isOnlyRequestedFieldsExistInEntity(getEntity, filterFields));
+ assertTrue(isOnlyRequestedFieldsExistInEntity(getEntity, filterFields));
}
@Test
- public void testFieldsFilterWithIdMultipleFields() throws Exception {
+ void fieldsFilterWithIdMultipleFields() throws Exception {
List filterFields = Arrays.asList("attachments", "creation_time", "has_attachments");
Set fields = new HashSet<>();
@@ -74,11 +75,11 @@ public void testFieldsFilterWithIdMultipleFields() throws Exception {
EntityModel getEntity = entityList.at(entityId).get().addFields("attachments", "creation_time", "has_attachments").execute();
- Assert.assertTrue(isOnlyRequestedFieldsExistInEntity(getEntity, filterFields));
+ assertTrue(isOnlyRequestedFieldsExistInEntity(getEntity, filterFields));
}
@Test
- public void testFieldsFilterMultipleFields() throws Exception {
+ void fieldsFilterMultipleFields() throws Exception {
List filterFields = Arrays.asList("done_work", "description", "expected_velocity");
Collection generatedEntity = DataGenerator.generateEntityModelCollection(octane, entityName);
@@ -86,7 +87,7 @@ public void testFieldsFilterMultipleFields() throws Exception {
Collection getEntity = entityList.get().addFields("done_work", "description", "expected_velocity").execute();
- Assert.assertTrue(getIdFromEntityModelCollection(getEntity, filterFields));
+ assertTrue(getIdFromEntityModelCollection(getEntity, filterFields));
}
public static boolean isOnlyRequestedFieldsExistInEntity(EntityModel entityModel, List fields) {
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLimit.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLimit.java
index feffc3ca..94aea199 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLimit.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLimit.java
@@ -31,11 +31,12 @@
import com.hpe.adm.nga.sdk.model.EntityModel;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
/**
*
* Created by perach on 08/05/2016.
@@ -47,7 +48,7 @@ public TestLimit() {
}
@Test
- public void testLimit() throws Exception {
+ void limit() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModelCollection(octane, entityName);
entityList.create().entities(generatedEntity).execute();
@@ -60,7 +61,7 @@ public void testLimit() throws Exception {
Collection getLimitEntities = entityList.get().limit(totalCount - 1).execute();
int limit = getLimitEntities.size();
- Assert.assertTrue(limit + 1 == totalCount);
+ assertEquals(limit + 1, totalCount);
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLogicalOperators.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLogicalOperators.java
index 9cc0ae2d..7e8ae58c 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLogicalOperators.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestLogicalOperators.java
@@ -37,9 +37,8 @@
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Collection;
@@ -47,6 +46,9 @@
import java.util.List;
import java.util.Set;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
* Created by dherasymchuk on 12/29/2016.
*/
@@ -63,48 +65,48 @@ public TestLogicalOperators() {
@Test
- public void testQueryWithOr() {
- Query query = Query.statement("id", QueryMethod.EqualTo, defectIds.get(0)).or("id", QueryMethod.EqualTo, defectIds.get(1)).build();
+ void queryWithOr() {
+ Query query = Query.statement("id", QueryMethod.EqualTo, defectIds.getFirst()).or("id", QueryMethod.EqualTo, defectIds.get(1)).build();
Collection getEntity = entityList.get().query(query).execute();
- Assert.assertEquals("Wrong amount of defects in response", 2, getEntity.size());
- Assert.assertTrue("Wrong defect id in response", defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(getEntity)));
+ assertEquals(2, getEntity.size(), "Wrong amount of defects in response");
+ assertTrue(defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(getEntity)), "Wrong defect id in response");
}
@Test
- public void testQueryWithAnd() {
- Query query = Query.statement("id", QueryMethod.EqualTo, defectIds.get(0)).and("name", QueryMethod.EqualTo, defectNames.get(0)).build();
+ void queryWithAnd() {
+ Query query = Query.statement("id", QueryMethod.EqualTo, defectIds.getFirst()).and("name", QueryMethod.EqualTo, defectNames.getFirst()).build();
Collection getEntity = entityList.get().addFields("name").query(query).execute();
- Assert.assertEquals("Wrong amount of defects in response", 1, getEntity.size());
- Assert.assertEquals("Wrong defect id in response", defectIds.get(0), CommonUtils.getIdFromEntityModelCollection(getEntity).get(0));
+ assertEquals(1, getEntity.size(), "Wrong amount of defects in response");
+ assertEquals(defectIds.getFirst(), CommonUtils.getIdFromEntityModelCollection(getEntity).getFirst(), "Wrong defect id in response");
}
@Test
- public void testQueryWithAndPlusOr() {
- Query query1 = Query.statement("id", QueryMethod.EqualTo, defectIds.get(0)).and("name", QueryMethod.EqualTo, defectNames.get(0)).or("id", QueryMethod.EqualTo, defectIds.get(1)).and("name", QueryMethod.EqualTo, defectNames.get(1)).build();
+ void queryWithAndPlusOr() {
+ Query query1 = Query.statement("id", QueryMethod.EqualTo, defectIds.getFirst()).and("name", QueryMethod.EqualTo, defectNames.getFirst()).or("id", QueryMethod.EqualTo, defectIds.get(1)).and("name", QueryMethod.EqualTo, defectNames.get(1)).build();
Collection getEntity = entityList.get().addFields("name").query(query1).execute();
- Assert.assertEquals("Wrong amount of defects in response", 2, getEntity.size());
- Assert.assertTrue("Wrong defect id in response", defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(getEntity)));
+ assertEquals(2, getEntity.size(), "Wrong amount of defects in response");
+ assertTrue(defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(getEntity)), "Wrong defect id in response");
}
@Test
- public void testQueryWithBtw() {
+ void queryWithBtw() {
final Query query = Query.statement("story_points", QueryMethod.Between, new QueryMethod.Between(time - 1L, time + 2L)).build();
final OctaneCollection entities = entityList.get().addFields("story_points").query(query).execute();
- Assert.assertEquals("Wrong amount of defects in response", 2, entities.size());
- Assert.assertTrue("Wrong defect id in response", defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(entities)));
+ assertEquals(2, entities.size(), "Wrong amount of defects in response");
+ assertTrue(defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(entities)), "Wrong defect id in response");
}
@Test
- public void testQueryWithIn() {
+ void queryWithIn() {
final Query query = Query.statement("story_points", QueryMethod.In, new Object[]{time, time + 1L}).build();
final OctaneCollection entities = entityList.get().addFields("story_points").query(query).execute();
- Assert.assertEquals("Wrong amount of defects in response", 2, entities.size());
- Assert.assertTrue("Wrong defect id in response", defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(entities)));
+ assertEquals(2, entities.size(), "Wrong amount of defects in response");
+ assertTrue(defectIds.containsAll(CommonUtils.getIdFromEntityModelCollection(entities)), "Wrong defect id in response");
}
- @BeforeClass
- public static void setUp() throws Exception {
+ @BeforeAll
+ static void setUp() throws Exception {
Set fields = new HashSet<>();
fields.add(new LongFieldModel("story_points", time));
Collection generatedEntity1 = DataGenerator.generateEntityModel(octane, "defects", fields);
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestSupportFiltering.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestSupportFiltering.java
index 4585c43c..f44f4716 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestSupportFiltering.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/filtering/TestSupportFiltering.java
@@ -35,13 +35,14 @@
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Guy Guetta on 25/04/2016.
@@ -53,27 +54,27 @@ public TestSupportFiltering() {
}
@Test
- public void supportEqual() throws Exception {
+ void supportEqual() throws Exception {
testFiltering("EQ");
}
@Test
- public void supportLessThan() throws Exception {
+ void supportLessThan() throws Exception {
testFiltering("LT");
}
@Test
- public void supportGreaterThan() throws Exception {
+ void supportGreaterThan() throws Exception {
testFiltering("GT");
}
@Test
- public void supportLessEqual() throws Exception {
+ void supportLessEqual() throws Exception {
testFiltering("LE");
}
@Test
- public void supportGreaterEqual() throws Exception {
+ void supportGreaterEqual() throws Exception {
testFiltering("GE");
}
@@ -90,23 +91,17 @@ private void testFiltering(String logicalOperation) throws Exception {
Collection getEntity = entityList.get().addFields("name").query(query).execute();
- Assert.assertTrue(CommonUtils.isCollectionAInCollectionB(entityModels, getEntity));
+ assertTrue(CommonUtils.isCollectionAInCollectionB(entityModels, getEntity));
}
private Query getQuery(String entityName, String logicalOperation) {
- switch (logicalOperation) {
- case "EQ":
- return Query.statement("name", QueryMethod.EqualTo, entityName).build();
- case "LT":
- return Query.statement("name", QueryMethod.LessThan, "z_" + entityName).build();
- case "GT":
- return Query.statement("name", QueryMethod.GreaterThan, "a_" + entityName).build();
- case "LE":
- return Query.statement("name", QueryMethod.LessThanOrEqualTo, entityName).build();
- case "GE":
- return Query.statement("name", QueryMethod.GreaterThanOrEqualTo, entityName).build();
- default:
- return null;
- }
+ return switch (logicalOperation) {
+ case "EQ" -> Query.statement("name", QueryMethod.EqualTo, entityName).build();
+ case "LT" -> Query.statement("name", QueryMethod.LessThan, "z_" + entityName).build();
+ case "GT" -> Query.statement("name", QueryMethod.GreaterThan, "a_" + entityName).build();
+ case "LE" -> Query.statement("name", QueryMethod.LessThanOrEqualTo, entityName).build();
+ case "GE" -> Query.statement("name", QueryMethod.GreaterThanOrEqualTo, entityName).build();
+ default -> null;
+ };
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/generate/TestGenerateModels.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/generate/TestGenerateModels.java
index b40c6cd1..09579b56 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/generate/TestGenerateModels.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/generate/TestGenerateModels.java
@@ -41,8 +41,8 @@
import com.hpe.adm.nga.sdk.utils.ContextUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
import org.apache.commons.io.FileUtils;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import javax.tools.*;
import java.io.File;
@@ -50,13 +50,18 @@
import java.net.URLClassLoader;
import java.util.*;
-public class TestGenerateModels {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.fail;
+
+class TestGenerateModels {
private static final String TEST_NAME = "testName";
private static final String TEST_DESCRIPTION = "testDescription";
@Test
- public void testGenerateModels() throws Exception {
+ void generateModels() throws Exception {
final File generatedSourcesDirectory = new File("target/test-test-sources");
FileUtils.deleteDirectory(generatedSourcesDirectory);
//noinspection ResultOfMethodCallIgnored
@@ -100,7 +105,7 @@ private void compileClasses(File generatedDirectory) {
}
if (hasError) {
- Assert.fail(stringBuilder.toString());
+ fail(stringBuilder.toString());
}
}
@@ -111,11 +116,9 @@ private void generateSources(File generatedDirectory) {
final String sharedSpaceId = configuration.getString("sdk.sharedSpaceId");
final String workspaceId = configuration.getString("sdk.workspaceId");
- try {
+ Assertions.assertDoesNotThrow(() -> {
new GenerateModels(generatedDirectory).generate(authentication, url, Long.parseLong(sharedSpaceId), Long.parseLong(workspaceId));
- } catch (Exception e) {
- Assert.fail("Test failed whilst building test sources; " + e.getMessage());
- }
+ }, "Test failed whilst building test sources; ");
}
private void testGeneratedClass(File generatedDirectory) throws Exception {
@@ -153,8 +156,8 @@ private void testGeneratedClass(File generatedDirectory) throws Exception {
final String getDescription = (String) defectTypedEntityModel.getClass().getMethod("getDescription").invoke(defectTypedEntityModel);
final Object getAuthor = defectTypedEntityModel.getClass().getMethod("getAuthor").invoke(defectTypedEntityModel);
- Assert.assertEquals(entityName, getName);
- Assert.assertNull(getDescription);
- Assert.assertNotNull(getAuthor);
+ assertEquals(entityName, getName);
+ assertNull(getDescription);
+ assertNotNull(getAuthor);
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/metadata/TestReadMetadata.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/metadata/TestReadMetadata.java
index 089e4ea1..a7164f20 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/metadata/TestReadMetadata.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/metadata/TestReadMetadata.java
@@ -32,11 +32,12 @@
import com.hpe.adm.nga.sdk.metadata.FieldMetadata;
import com.hpe.adm.nga.sdk.metadata.Metadata;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
/**
*
* Created by Dmitry Zavyalov on 08/05/2016.
@@ -48,14 +49,14 @@ public TestReadMetadata() {
}
@Test
- public void testReadMetadataEntities() throws Exception {
+ void readMetadataEntities() throws Exception {
Metadata metadata = octane.metadata();
Collection entityMetadata = metadata.entities().execute();
Collection entityMetadataTwoEntities = metadata.entities("defects").execute();
}
@Test
- public void testReadMetadataFields() throws Exception {
+ void readMetadataFields() throws Exception {
Metadata metadata = octane.metadata();
Collection fieldMetadata = metadata.fields().execute();
@@ -67,6 +68,6 @@ public void testReadMetadataFields() throws Exception {
}
String message = "[field_type_data] is null for field type [reference] " + referenceTypeDataIsEmpty + " times in \"Metadata.fields().execute()\"";
- Assert.assertFalse(message, referenceTypeDataIsEmpty > 0);
+ assertFalse(referenceTypeDataIsEmpty > 0, message);
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/orderby/TestOrderBy.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/orderby/TestOrderBy.java
index 82c50557..31905911 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/orderby/TestOrderBy.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/orderby/TestOrderBy.java
@@ -34,24 +34,25 @@
import com.hpe.adm.nga.sdk.utils.CommonUtils;
import com.hpe.adm.nga.sdk.utils.QueryUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Guy Guetta on 03/05/2016.
*/
-public class TestOrderBy extends TestBase {
+class TestOrderBy extends TestBase {
private static Query idQuery;
- @BeforeClass
- public static void initTest() throws Exception {
+ @BeforeAll
+ static void initTest() throws Exception {
Collection generatedEntity = new ArrayList<>();
for (int i = 0; i < 5; i++) {
generatedEntity.addAll(DataGenerator.generateEntityModel(octane, "releases"));
@@ -62,43 +63,43 @@ public static void initTest() throws Exception {
}
@Test
- public void orderByOneFieldAscending() throws Exception {
+ void orderByOneFieldAscending() throws Exception {
Collection entityModels = octane.entityList("releases").get().addFields("name").query(idQuery).addOrderBy("name", true).execute();
List names = CommonUtils.getValuesFromEntityModelCollection(entityModels, "name");
- Assert.assertTrue("Names are not sorted ascending", isSortedAsc(names));
+ assertTrue(isSortedAsc(names), "Names are not sorted ascending");
}
@Test
- public void orderByOneFieldDescending() throws Exception {
+ void orderByOneFieldDescending() throws Exception {
Collection entityModels = octane.entityList("releases").get().addFields("name").query(idQuery).addOrderBy("name", false).execute();
List names = CommonUtils.getValuesFromEntityModelCollection(entityModels, "name");
- Assert.assertTrue("Names are not sorted descending", isSortedDes(names));
+ assertTrue(isSortedDes(names), "Names are not sorted descending");
}
@Test
- public void orderByTwoFieldAscending() throws Exception {
+ void orderByTwoFieldAscending() throws Exception {
Collection entityModels = octane.entityList("releases").get().addFields("name", "end_date").query(idQuery).addOrderBy("end_date,name", true).execute();
List names = CommonUtils.getValuesFromEntityModelCollection(entityModels, "name");
- Assert.assertTrue("Names are not sorted ascending", isSortedAsc(names));
+ assertTrue(isSortedAsc(names), "Names are not sorted ascending");
}
@Test
- public void orderByTwoFieldDescending() throws Exception {
+ void orderByTwoFieldDescending() throws Exception {
Collection entityModels = octane.entityList("releases").get().addFields("name", "end_date").query(idQuery).addOrderBy("end_date", true).addOrderBy("name", false).execute();
List names = CommonUtils.getValuesFromEntityModelCollection(entityModels, "name");
- Assert.assertTrue("Names are not sorted descending", isSortedDes(names));
+ assertTrue(isSortedDes(names), "Names are not sorted descending");
}
private boolean isSortedAsc(List list) {
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/parallelexecution/TestParallelExecution.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/parallelexecution/TestParallelExecution.java
index c27f5d0c..782c6642 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/parallelexecution/TestParallelExecution.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/parallelexecution/TestParallelExecution.java
@@ -39,22 +39,23 @@
import com.hpe.adm.nga.sdk.utils.ConfigurationUtils;
import com.hpe.adm.nga.sdk.utils.ContextUtils;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
*
* Created by Dmitry Zavyalov on 09/05/2016.
*/
-@Ignore //Before remove ignore, please support username = "rest2@hpe.com" with password = "Welcome2"
-public class TestParallelExecution extends TestBase {
+//Before remove ignore, please support username = "rest2@hpe.com" with password = "Welcome2"
+@Disabled class TestParallelExecution extends TestBase {
@Test
- public void testParallelExecution_two_clients() throws Exception {
+ void parallelExecutionTwoClients() throws Exception {
String entityName1 = "product_areas";
String entityName2 = "defects";
@@ -77,10 +78,10 @@ public void testParallelExecution_two_clients() throws Exception {
int counter = 0;
do {
EntityModel getEntity1 = entityList1.at(entityId1).get().execute();
- Assert.assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity1.iterator().next(), getEntity1));
+ assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity1.iterator().next(), getEntity1));
sleepTime(5);
EntityModel getEntity2 = entityList2.at(entityId2).get().execute();
- Assert.assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity2.iterator().next(), getEntity2));
+ assertTrue(CommonUtils.isEntityAInEntityB(generatedEntity2.iterator().next(), getEntity2));
sleepTime(5);
counter++;
} while (counter < 5);
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/sandbox/Demo.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/sandbox/Demo.java
index beb16474..2ae5b5f6 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/sandbox/Demo.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/sandbox/Demo.java
@@ -31,7 +31,7 @@
import com.hpe.adm.nga.sdk.model.EntityModel;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
import com.hpe.adm.nga.sdk.utils.generator.DataGenerator;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
@@ -46,7 +46,7 @@ public Demo() {
}
@Test
- public void demoTest() throws Exception {
+ void demoTest() throws Exception {
Collection generatedEntity = DataGenerator.generateEntityModel(octane, entityName);
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/siteadmin/server/TestGetServerVersion.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/siteadmin/server/TestGetServerVersion.java
index d3b999a5..516961d2 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/siteadmin/server/TestGetServerVersion.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/siteadmin/server/TestGetServerVersion.java
@@ -30,21 +30,23 @@
import com.hpe.adm.nga.sdk.siteadmin.version.Version;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
* Used to test the {@link com.hpe.adm.nga.sdk.siteadmin.version.GetServerVersion} API
*/
-public class TestGetServerVersion extends TestBase {
+class TestGetServerVersion extends TestBase {
/**
* Tests getting the server version
*/
@Test
- public void testGetServerVersion() {
+ void getServerVersion() {
final Version serverVersion = siteAdmin.getServer().getServerVersion().execute();
- Assert.assertNotNull(serverVersion);
- Assert.assertFalse(serverVersion.getVersion().isEmpty());
+ assertNotNull(serverVersion);
+ assertFalse(serverVersion.getVersion().isEmpty());
}
}
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestGherkinScript.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestGherkinScript.java
index 179f0a8b..47549d8c 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestGherkinScript.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestGherkinScript.java
@@ -38,15 +38,17 @@
import com.hpe.adm.nga.sdk.model.ReferenceFieldModel;
import com.hpe.adm.nga.sdk.model.StringFieldModel;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.*;
-public class TestGherkinScript extends TestBase {
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class TestGherkinScript extends TestBase {
@Test
- public void testTestStepCreation() {
+ void testStepCreation() {
final String createdTestId = createTest();
// this will fail if incorrect
final EntityList.TestEntities test_manual = (EntityList.TestEntities) octane.entityList("gherkin_tests").at(createdTestId);
@@ -55,20 +57,20 @@ public void testTestStepCreation() {
final GetTestScriptModel getTestScriptModel = testSteps.get().execute();
final String asString = getTestScriptModel.getTestStepsAsString();
- Assert.assertTrue("Returned test script is not correct!", asString.startsWith("#Auto generated Octane revision tag\n@TID")
- && asString.endsWith("\nFeature:\n"));
+ assertTrue(asString.startsWith("#Auto generated Octane revision tag\n@TID")
+ && asString.endsWith("\nFeature:\n"), "Returned test script is not correct!");
}
private void updateTestSteps(TestStepList testSteps) {
final UpdateTestSteps update = testSteps.update();
// check test steps are created
- Assert.assertTrue("Script not created correctly!", update.testSteps(new UpdateTestScriptModel().setTestSteps("#Auto generated Octane revision tag\n@TID2010REV0.2.0\nFeature:\n")).execute());
+ assertTrue(update.testSteps(new UpdateTestScriptModel().setTestSteps("#Auto generated Octane revision tag\n@TID2010REV0.2.0\nFeature:\n")).execute(), "Script not created correctly!");
}
@Test
- public void testIncorrectNonTypedTestStepCreation() {
+ void incorrectNonTypedTestStepCreation() {
final EntityList.Entities not_test_manual = octane.entityList("not_gherkin").at("1001");
- Assert.assertFalse("Entities is not the right type!", not_test_manual instanceof EntityList.TestEntities);
+ assertFalse(not_test_manual instanceof EntityList.TestEntities, "Entities is not the right type!");
}
private String createTest() {
diff --git a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestTestSteps.java b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestTestSteps.java
index b20152a4..24f2da92 100644
--- a/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestTestSteps.java
+++ b/sdk-integration-tests/src/test/java/com/hpe/adm/nga/sdk/tests/tests/TestTestSteps.java
@@ -42,15 +42,19 @@
import com.hpe.adm.nga.sdk.model.ReferenceFieldModel;
import com.hpe.adm.nga.sdk.model.StringFieldModel;
import com.hpe.adm.nga.sdk.tests.base.TestBase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.*;
-public class TestTestSteps extends TestBase {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class TestTestSteps extends TestBase {
@Test
- public void testTestStepCreation() {
+ void testStepCreation() {
final String createdTestId = createTest();
// this will fail if incorrect
final EntityList.TestEntities test_manual = (EntityList.TestEntities) octane.entityList("manual_tests").at(createdTestId);
@@ -59,21 +63,21 @@ public void testTestStepCreation() {
final GetTestScriptModel getTestScriptModel = testSteps.get().execute();
final String asString = getTestScriptModel.getTestStepsAsString();
- Assert.assertEquals("Returned test script is not correct!", "- Step 1\n- ?Validating Step 1\n- @2002 link to test\n", asString);
+ assertEquals("- Step 1\n- ?Validating Step 1\n- @2002 link to test\n", asString, "Returned test script is not correct!");
final List testStepsAsObjects = getTestScriptModel.getTestStepsAsObjects();
- Assert.assertNotNull("test script as objects is null", testStepsAsObjects);
- Assert.assertEquals("test script as objects is not length 3", 3, testStepsAsObjects.size());
+ assertNotNull(testStepsAsObjects, "test script as objects is null");
+ assertEquals(3, testStepsAsObjects.size(), "test script as objects is not length 3");
- final TestStep testStep = (TestStep) testStepsAsObjects.get(0);
- Assert.assertEquals("TestStep object string is incorrect", "Step 1", testStep.getTestStep());
+ final TestStep testStep = (TestStep) testStepsAsObjects.getFirst();
+ assertEquals("Step 1", testStep.getTestStep(), "TestStep object string is incorrect");
final ValidationTestStep validationTestStep = (ValidationTestStep) testStepsAsObjects.get(1);
- Assert.assertEquals("ValidationTestStep object string is incorrect", "Validating Step 1", validationTestStep.getTestStep());
+ assertEquals("Validating Step 1", validationTestStep.getTestStep(), "ValidationTestStep object string is incorrect");
final CallTestStep callTestStep = (CallTestStep) testStepsAsObjects.get(2);
- Assert.assertEquals("CallTestStep object string is incorrect", "link to test", callTestStep.getCallStepString());
- Assert.assertEquals("CallTestStep object test id is incorrect", "2002", callTestStep.getTestId());
+ assertEquals("link to test", callTestStep.getCallStepString(), "CallTestStep object string is incorrect");
+ assertEquals("2002", callTestStep.getTestId(), "CallTestStep object test id is incorrect");
}
private void updateTestSteps(TestStepList testSteps) {
@@ -85,13 +89,13 @@ private void updateTestSteps(TestStepList testSteps) {
testStepList.add(new CallTestStep("2002", "link to test"));
// check test steps are created
- Assert.assertTrue("Script not created correctly!", update.testSteps(new UpdateTestScriptModel().setTestSteps(testStepList)).execute());
+ assertTrue(update.testSteps(new UpdateTestScriptModel().setTestSteps(testStepList)).execute(), "Script not created correctly!");
}
@Test
- public void testIncorrectNonTypedTestStepCreation() {
+ void incorrectNonTypedTestStepCreation() {
final EntityList.Entities not_test_manual = octane.entityList("not_test_manual").at("1001");
- Assert.assertFalse("Entities is not the right type!", not_test_manual instanceof EntityList.TestEntities);
+ assertFalse(not_test_manual instanceof EntityList.TestEntities, "Entities is not the right type!");
}
private String createTest() {
diff --git a/sdk-src/pom.xml b/sdk-src/pom.xml
index 9c5b7649..ac5b1ff9 100644
--- a/sdk-src/pom.xml
+++ b/sdk-src/pom.xml
@@ -33,7 +33,7 @@
sdk-root
com.microfocus.adm.almoctane.sdk
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
ALM Octane REST API SDK
@@ -74,40 +74,26 @@
jetty-client
${jetty.version}
-
- org.eclipse.jetty.http2
- http2-client
- ${jetty.version}
-
-
- org.eclipse.jetty.http2
- http2-http-client-transport
- ${jetty.version}
-
org.json
json
- junit
- junit
-
-
- org.powermock
- powermock-module-junit4
+ jakarta.annotation
+ jakarta.annotation-api
+ ${jakarta.annotation-api.version}
+ provided
- org.powermock
- powermock-api-mockito
+ org.junit.jupiter
+ junit-jupiter
+ ${junit-jupiter.version}
+ test
org.mockito
mockito-core
-
- org.javassist
- javassist
-
org.apache.commons
commons-lang3
@@ -115,13 +101,13 @@
org.mock-server
mockserver-netty
- 5.12.0
+ ${mockserver.version}
test
org.mock-server
mockserver-core
- 5.12.0
+ ${mockserver.version}
test
@@ -153,14 +139,6 @@
coverage
-
-
-
- org.codehaus.mojo
- cobertura-maven-plugin
-
-
-
build-deployment
diff --git a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/metadata/FieldMetadata.java b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/metadata/FieldMetadata.java
index b5edfe02..a4429bae 100644
--- a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/metadata/FieldMetadata.java
+++ b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/metadata/FieldMetadata.java
@@ -67,7 +67,7 @@ public enum AccessLevel {
@SerializedName("PRIVATE")
Private,
@SerializedName("PUBLIC_TECH_PREVIEW")
- TechPreview;
+ TechPreview
}
// Private
diff --git a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/model/EntityUtil.java b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/model/EntityUtil.java
index 3aba3129..7b0ad11c 100644
--- a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/model/EntityUtil.java
+++ b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/model/EntityUtil.java
@@ -103,9 +103,9 @@ public static boolean areFieldModelsEqualByContent(FieldModel leftFieldModel, Fi
EntityModel refRightEntityModel = (EntityModel) rightFieldModel.getValue();
return areEqualByContent(refLeftEntityModel, refRightEntityModel);
}
- if(leftFieldModel instanceof MultiReferenceFieldModel && rightFieldModel instanceof MultiReferenceFieldModel) {
- Collection refLeftEntityModel = ((MultiReferenceFieldModel)leftFieldModel).getValue();
- Collection refRightEntityModel = ((MultiReferenceFieldModel)rightFieldModel).getValue();
+ if(leftFieldModel instanceof MultiReferenceFieldModel model && rightFieldModel instanceof MultiReferenceFieldModel model1) {
+ Collection refLeftEntityModel = model.getValue();
+ Collection refRightEntityModel = model1.getValue();
return containsSameEntities(refLeftEntityModel, refRightEntityModel, EntityUtil::areEqualByContent);
}
//simple field, just equals the value
diff --git a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/TokenExchangeHelper.java b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/TokenExchangeHelper.java
index 22ecdaee..f91c98a8 100644
--- a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/TokenExchangeHelper.java
+++ b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/TokenExchangeHelper.java
@@ -32,9 +32,7 @@
* Helper class to perform token exchange operations.
*/
public final class TokenExchangeHelper {
- private TokenExchangeHelper() {};
-
- /**
+ private TokenExchangeHelper() {}/**
* Minimal helper to extract "access_token" from JSON string
* Works without external JSON libraries.
*/
diff --git a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/google/GoogleHttpClient.java b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/google/GoogleHttpClient.java
index 34b173b3..166ed27e 100644
--- a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/google/GoogleHttpClient.java
+++ b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/google/GoogleHttpClient.java
@@ -463,8 +463,7 @@ private OctaneHttpResponse execute(OctaneHttpRequest octaneHttpRequest, int retr
}
//Handle session timeout exception
- if (retryCount > 0 && exception instanceof OctaneException) {
- OctaneException octaneException = (OctaneException) exception;
+ if (retryCount > 0 && exception instanceof OctaneException octaneException) {
StringFieldModel errorCodeFieldModel = (StringFieldModel) octaneException.getError().getValue("errorCode");
LongFieldModel httpStatusCode = (LongFieldModel) octaneException.getError().getValue(ErrorModel.HTTP_STATUS_CODE_PROPERTY_NAME);
@@ -507,7 +506,7 @@ private synchronized void registerNewRequest() {
requestPhaser.register();
}
- private HttpResponse executeRequest(final HttpRequest httpRequest) {
+ protected HttpResponse executeRequest(final HttpRequest httpRequest) {
logger.debug(LOGGER_REQUEST_FORMAT, httpRequest.getRequestMethod(), httpRequest.getUrl().toString(), httpRequest.getHeaders().toString());
final HttpContent content = httpRequest.getContent();
@@ -530,9 +529,7 @@ private HttpResponse executeRequest(final HttpRequest httpRequest) {
}
private static RuntimeException wrapException(Exception exception, HttpRequest httpRequest) {
- if (exception instanceof HttpResponseException) {
-
- HttpResponseException httpResponseException = (HttpResponseException) exception;
+ if (exception instanceof HttpResponseException httpResponseException) {
logger.debug(LOGGER_RESPONSE_FORMAT, httpResponseException.getStatusCode(), httpResponseException.getStatusMessage(), httpResponseException.getHeaders().toString());
// It seems that Octane returns a message in 401 but this is swallowed by the HttpConnection as expected by the HTTP spec
@@ -594,8 +591,8 @@ private static RuntimeException wrapException(Exception exception, HttpRequest h
* @param content {@link HttpContent}
*/
private static void logHttpContent(HttpContent content) {
- if (content instanceof MultipartContent) {
- MultipartContent multipartContent = ((MultipartContent) content);
+ if (content instanceof MultipartContent multipartContent1) {
+ MultipartContent multipartContent = multipartContent1;
logger.debug("MultipartContent: {}", content.getType());
multipartContent.getParts().forEach(part -> {
logger.debug("Part: encoding: {}, headers: {}", part.getEncoding(), part.getHeaders());
@@ -603,8 +600,8 @@ private static void logHttpContent(HttpContent content) {
});
} else if (content instanceof InputStreamContent) {
logger.debug("InputStreamContent: type: {}", content.getType());
- } else if (content instanceof FileContent) {
- logger.debug("FileContent: type: {}, filepath: {}", content.getType(), ((FileContent) content).getFile().getAbsolutePath());
+ } else if (content instanceof FileContent fileContent) {
+ logger.debug("FileContent: type: {}, filepath: {}", content.getType(), fileContent.getFile().getAbsolutePath());
} else {
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
diff --git a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/jetty/JettyHttpClient.java b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/jetty/JettyHttpClient.java
index 9e5b2e18..59c4db34 100644
--- a/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/jetty/JettyHttpClient.java
+++ b/sdk-src/src/main/java/com/hpe/adm/nga/sdk/network/jetty/JettyHttpClient.java
@@ -31,6 +31,7 @@
import com.google.api.client.http.GenericUrl;
import com.hpe.adm.nga.sdk.Octane;
import com.hpe.adm.nga.sdk.authentication.*;
+import com.hpe.adm.nga.sdk.authentication.BasicAuthentication;
import com.hpe.adm.nga.sdk.exception.OctaneException;
import com.hpe.adm.nga.sdk.exception.OctanePartialException;
import com.hpe.adm.nga.sdk.model.EntityModel;
@@ -42,42 +43,34 @@
import com.hpe.adm.nga.sdk.network.OctaneHttpRequest;
import com.hpe.adm.nga.sdk.network.OctaneHttpResponse;
import com.hpe.adm.nga.sdk.network.TokenExchangeHelper;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.tuple.Triple;
+import org.eclipse.jetty.client.BytesRequestContent;
+import org.eclipse.jetty.client.CompletableResponseListener;
+import org.eclipse.jetty.client.ContentResponse;
+import org.eclipse.jetty.client.FormRequestContent;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.HttpClientTransport;
-import org.eclipse.jetty.client.HttpContent;
-import org.eclipse.jetty.client.HttpContentResponse;
import org.eclipse.jetty.client.HttpResponseException;
-import org.eclipse.jetty.client.api.ContentProvider;
-import org.eclipse.jetty.client.api.ContentResponse;
-import org.eclipse.jetty.client.api.Request;
-import org.eclipse.jetty.client.api.Response;
-import org.eclipse.jetty.client.util.ByteBufferContentProvider;
-import org.eclipse.jetty.client.util.FormContentProvider;
-import org.eclipse.jetty.client.util.FutureResponseListener;
-import org.eclipse.jetty.client.util.MultiPartContentProvider;
+import org.eclipse.jetty.client.MultiPartRequestContent;
+import org.eclipse.jetty.client.Request;
+import org.eclipse.jetty.client.Response;
import org.eclipse.jetty.http.HttpFields;
+import org.eclipse.jetty.http.HttpCookie;
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.http.HttpMethod;
+import org.eclipse.jetty.http.MultiPart;
import org.eclipse.jetty.http.HttpStatus;
-import org.eclipse.jetty.http2.client.HTTP2Client;
-import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2;
import org.eclipse.jetty.util.Fields;
-import org.eclipse.jetty.util.log.StdErrLog;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.HttpCookie;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.URI;
-import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.*;
@@ -102,7 +95,7 @@ public class JettyHttpClient implements OctaneHttpClient {
private static final int HTTP_REQUEST_RETRY_COUNT = 1;
private boolean areNewCookiesReceived;
- protected RequestFactory requestFactory;
+ private final RequestFactory requestFactory;
protected String lwssoValue = "";
protected String accessTokenValue = "";
protected String octaneUserValue;
@@ -121,9 +114,7 @@ public JettyHttpClient(final String urlDomain, final Authentication authenticati
this.lastUsedAuthentication = authentication;
logSystemProperties();
- org.eclipse.jetty.util.log.Log.setLog(new StdErrLog());
-
- HttpClient client = new HttpClient(new HttpClientTransportOverHTTP2(new HTTP2Client()), new SslContextFactory.Client());
+ HttpClient client = new HttpClient();
addAuthentication(client);
client.setIdleTimeout(6000);
@@ -131,7 +122,7 @@ public JettyHttpClient(final String urlDomain, final Authentication authenticati
try {
client.start();
} catch (Exception e) {
- e.printStackTrace();
+ logger.error("Failed to start HTTP client", e);
throw new RuntimeException(e);
}
@@ -144,13 +135,17 @@ public JettyHttpClient(final String urlDomain, final Authentication authenticati
this.lastUsedAuthentication = authentication;
logSystemProperties();
- org.eclipse.jetty.util.log.Log.setLog(new StdErrLog());
-
HttpClientTransport httpTransport = (HttpClientTransport) settings.get(Octane.OctaneCustomSettings.Setting.SHARED_HTTP_TRANSPORT);
boolean trustAllCerts = (boolean) settings.get(Octane.OctaneCustomSettings.Setting.TRUST_ALL_CERTS);
- HttpClient client = httpTransport != null ?
- new HttpClient(httpTransport, new SslContextFactory.Client(trustAllCerts)) :
- new HttpClient(new HttpClientTransportOverHTTP2(new HTTP2Client()), new SslContextFactory.Client(trustAllCerts));
+ HttpClient client;
+ if (httpTransport != null) {
+ client = new HttpClient(httpTransport);
+ } else {
+ SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
+ sslContextFactory.setTrustAll(trustAllCerts);
+ client = new HttpClient();
+ client.setSslContextFactory(sslContextFactory);
+ }
addAuthentication(client);
client.setConnectTimeout((int) settings.get(Octane.OctaneCustomSettings.Setting.CONNECTION_TIMEOUT));
@@ -159,7 +154,7 @@ public JettyHttpClient(final String urlDomain, final Authentication authenticati
try {
client.start();
} catch (Exception e) {
- e.printStackTrace();
+ logger.error("Failed to start HTTP client", e);
throw new RuntimeException(e);
}
@@ -170,8 +165,8 @@ private void addAuthentication(HttpClient client) {
if (lastUsedAuthentication != null) {
if (AuthenticationType.BASIC.equals(lastUsedAuthentication.getAuthenticationType())) {
final BasicAuthentication basicAuthentication = (BasicAuthentication) lastUsedAuthentication;
- client.getAuthenticationStore().addAuthentication(new org.eclipse.jetty.client.util.BasicAuthentication(URI.create(urlDomain),
- org.eclipse.jetty.client.api.Authentication.ANY_REALM,
+ client.getAuthenticationStore().addAuthentication(new org.eclipse.jetty.client.BasicAuthentication(URI.create(urlDomain),
+ org.eclipse.jetty.client.Authentication.ANY_REALM,
basicAuthentication.getAuthenticationId(),
basicAuthentication.getAuthenticationSecret()));
}
@@ -199,15 +194,15 @@ public boolean authenticate() {
accessTokenValue = null;
octaneUserValue = null;
- final ByteBufferContentProvider content = new ByteBufferContentProvider("application/json",
- ByteBuffer.wrap(((JSONAuthentication) lastUsedAuthentication).getAuthenticationString().getBytes(StandardCharsets.UTF_8)));
+ final BytesRequestContent content = new BytesRequestContent("application/json",
+ ((JSONAuthentication) lastUsedAuthentication).getAuthenticationString().getBytes(StandardCharsets.UTF_8));
Request httpRequest = requestFactory.buildPostRequest(URI.create(urlDomain + OAUTH_AUTH_URL), content);
// Authenticate request should never set the api mode header.
// Newer versions of the Octane server will not accept a private access level HPE_CLIENT_TYPE on the authentication request.
// Using this kind of header for future requests will still work.
lastUsedAuthentication.getAPIMode().ifPresent(apiMode ->
- httpRequest.getHeaders().remove(apiMode.getHeaderKey())
+ httpRequest.headers(fields -> fields.remove(apiMode.getHeaderKey()))
);
ContentResponse response = executeRequest(httpRequest);
if (HttpStatus.isSuccess(response.getStatus())) {
@@ -234,19 +229,19 @@ public boolean authenticate() {
form.add(TOKEN_EXCHANGE_SUBJECT_TOKEN_KEY, ((OAuth2Authentication) lastUsedAuthentication).getAccessToken());
Request httpRequest = requestFactory.buildPostRequest(URI.create(urlDomain + EXCHANGE_TOKEN_URL),
- new FormContentProvider(form));
+ new FormRequestContent(form));
String clientId = authentication.getClientId();
String clientSecret = authentication.getClientSecret();
String basicAuth = Base64.getEncoder()
.encodeToString((clientId + ":" + clientSecret).getBytes(StandardCharsets.UTF_8));
- httpRequest.getHeaders().add(HttpHeader.AUTHORIZATION, "Basic " + basicAuth);
+ httpRequest.headers(fields -> fields.put(HttpHeader.AUTHORIZATION, "Basic " + basicAuth));
// Authenticate request should never set the api mode header.
// Newer versions of the Octane server will not accept a private access level HPE_CLIENT_TYPE on the authentication request.
// Using this kind of header for future requests will still work.
lastUsedAuthentication.getAPIMode().ifPresent(apiMode ->
- httpRequest.getHeaders().remove(apiMode.getHeaderKey())
+ httpRequest.headers(fields -> fields.remove(apiMode.getHeaderKey()))
);
ContentResponse response = executeRequest(httpRequest);
@@ -302,10 +297,10 @@ protected Request convertOctaneRequestToGoogleHttpRequest(OctaneHttpRequest octa
GenericUrl domain = new GenericUrl(octaneHttpRequest.getRequestUrl());
httpRequest = requestFactory.buildGetRequest(domain.toURI());
if (((OctaneHttpRequest.GetOctaneHttpRequest) octaneHttpRequest).getAcceptType() != null)
- httpRequest.getHeaders().add(HttpHeader.ACCEPT, ((OctaneHttpRequest.GetOctaneHttpRequest) octaneHttpRequest).getAcceptType());
+ httpRequest.headers(fields -> fields.put(HttpHeader.ACCEPT, ((OctaneHttpRequest.GetOctaneHttpRequest) octaneHttpRequest).getAcceptType()));
final String eTagHeader = requestToEtagMap.get(octaneHttpRequest);
if (eTagHeader != null) {
- httpRequest.getHeaders().add(HttpHeader.ETAG, eTagHeader);
+ httpRequest.headers(fields -> fields.put(HttpHeader.ETAG, eTagHeader));
}
break;
}
@@ -313,10 +308,10 @@ protected Request convertOctaneRequestToGoogleHttpRequest(OctaneHttpRequest octa
GenericUrl domain = new GenericUrl(octaneHttpRequest.getRequestUrl());
OctaneHttpRequest.PostOctaneHttpRequest postOctaneHttpRequest = (OctaneHttpRequest.PostOctaneHttpRequest) octaneHttpRequest;
httpRequest = requestFactory.buildPostRequest(domain.toURI(),
- new ByteBufferContentProvider(postOctaneHttpRequest.getContentType(),
- ByteBuffer.wrap(postOctaneHttpRequest.getContent().getBytes(StandardCharsets.UTF_8))));
+ new BytesRequestContent(postOctaneHttpRequest.getContentType(),
+ postOctaneHttpRequest.getContent().getBytes(StandardCharsets.UTF_8)));
if (postOctaneHttpRequest.getAcceptType() != null)
- httpRequest.getHeaders().add(HttpHeader.ACCEPT, postOctaneHttpRequest.getAcceptType());
+ httpRequest.headers(fields -> fields.put(HttpHeader.ACCEPT, postOctaneHttpRequest.getAcceptType()));
break;
}
case POST_BINARY: {
@@ -329,17 +324,17 @@ protected Request convertOctaneRequestToGoogleHttpRequest(OctaneHttpRequest octa
httpRequest = requestFactory.buildPostRequest(domain.toURI(),
generateBinaryBulkPostRequest(postBinaryBulkOctaneHttpRequest));
if (postBinaryBulkOctaneHttpRequest.getAcceptType() != null)
- httpRequest.getHeaders().add(HttpHeader.ACCEPT, postBinaryBulkOctaneHttpRequest.getAcceptType());
+ httpRequest.headers(fields -> fields.put(HttpHeader.ACCEPT, postBinaryBulkOctaneHttpRequest.getAcceptType()));
break;
}
case PUT: {
GenericUrl domain = new GenericUrl(octaneHttpRequest.getRequestUrl());
OctaneHttpRequest.PutOctaneHttpRequest putHttpOctaneHttpRequest = (OctaneHttpRequest.PutOctaneHttpRequest) octaneHttpRequest;
httpRequest = requestFactory.buildPutRequest(domain.toURI(),
- new ByteBufferContentProvider(putHttpOctaneHttpRequest.getContentType(),
- ByteBuffer.wrap(putHttpOctaneHttpRequest.getContent().getBytes(StandardCharsets.UTF_8))));
+ new BytesRequestContent(putHttpOctaneHttpRequest.getContentType(),
+ putHttpOctaneHttpRequest.getContent().getBytes(StandardCharsets.UTF_8)));
if (putHttpOctaneHttpRequest.getAcceptType() != null)
- httpRequest.getHeaders().add(HttpHeader.ACCEPT, putHttpOctaneHttpRequest.getAcceptType());
+ httpRequest.headers(fields -> fields.put(HttpHeader.ACCEPT, putHttpOctaneHttpRequest.getAcceptType()));
break;
}
case DELETE: {
@@ -354,7 +349,7 @@ protected Request convertOctaneRequestToGoogleHttpRequest(OctaneHttpRequest octa
// Process any custom set headers
octaneHttpRequest.getHeaders()
- .forEach(header -> httpRequest.getHeaders().add(header.getHeaderKey(), header.getHeaderValue()));
+ .forEach(header -> httpRequest.headers(fields -> fields.put(header.getHeaderKey(), header.getHeaderValue())));
} catch (IOException e) {
throw new RuntimeException(e);
@@ -416,8 +411,7 @@ private OctaneHttpResponse execute(OctaneHttpRequest octaneHttpRequest, int retr
} catch (RuntimeException exception) {
//Return cached response
- if (exception.getCause() instanceof HttpResponseException) {
- HttpResponseException httpResponseException = (HttpResponseException) exception.getCause();
+ if (exception.getCause() instanceof HttpResponseException httpResponseException) {
final int statusCode = httpResponseException.getResponse().getStatus();
if (statusCode == HttpStatus.NOT_MODIFIED_304) {
return cachedRequestToResponse.get(octaneHttpRequest);
@@ -425,8 +419,7 @@ private OctaneHttpResponse execute(OctaneHttpRequest octaneHttpRequest, int retr
}
//Handle session timeout exception
- if (retryCount > 0 && exception instanceof OctaneException) {
- OctaneException octaneException = (OctaneException) exception;
+ if (retryCount > 0 && exception instanceof OctaneException octaneException) {
StringFieldModel errorCodeFieldModel = (StringFieldModel) octaneException.getError().getValue("errorCode");
LongFieldModel httpStatusCode = (LongFieldModel) octaneException.getError().getValue(ErrorModel.HTTP_STATUS_CODE_PROPERTY_NAME);
@@ -464,20 +457,15 @@ private OctaneHttpResponse execute(OctaneHttpRequest octaneHttpRequest, int retr
private ContentResponse executeRequest(final Request httpRequest) {
logger.debug(LOGGER_REQUEST_FORMAT, httpRequest.getMethod(), httpRequest.getURI().toString(), httpRequest.getHeaders().stream().collect(Collectors.toList()));
- final ContentProvider content = httpRequest.getContent();
-
// Make sure you don't log any http content send to the login rest api, since you don't want credentials in the logs
- if (content != null && logger.isDebugEnabled() && !httpRequest.getURI().toString().contains(OAUTH_AUTH_URL)) {
- logHttpContent(new HttpContent(content));
- }
+ // Note: HttpContent-based body logging is intentionally disabled because Jetty internal HttpContent is unavailable.
ContentResponse response;
try {
requestStartTime.set(System.currentTimeMillis());
if (httpRequest.getPath().contains("metadata")) {
- FutureResponseListener listener = new FutureResponseListener(httpRequest, 10 * 1024 * 1024);
- httpRequest.send(listener);
- response = listener.get(2, TimeUnit.SECONDS);
+ CompletableResponseListener listener = new CompletableResponseListener(httpRequest, 10 * 1024 * 1024);
+ response = listener.send().get(2, TimeUnit.SECONDS);
} else {
response = httpRequest.send();
}
@@ -508,33 +496,33 @@ public RequestFactory(JettyHttpClient jetty, HttpClient client) {
this.jetty = jetty;
}
- public Request buildRequest(Request request, ContentProvider contentProvider) {
+ public Request buildRequest(Request request, Request.Content contentProvider) {
if (lastUsedAuthentication != null && !AuthenticationType.OAUTH2.equals(lastUsedAuthentication.getAuthenticationType())) {
request.onResponseSuccess(jetty::updateLWSSOCookieValue);
}
if (jetty.lwssoValue != null && !jetty.lwssoValue.isEmpty()) {
- request.cookie(new HttpCookie(OctaneHttpClient.LWSSO_COOKIE_KEY, jetty.lwssoValue));
+ request.cookie(HttpCookie.from(OctaneHttpClient.LWSSO_COOKIE_KEY, jetty.lwssoValue));
} else if (jetty.accessTokenValue != null && !jetty.accessTokenValue.isEmpty()) {
- request.cookie(new HttpCookie(OctaneHttpClient.ACCESS_TOKEN_COOKIE_KEY, jetty.accessTokenValue));
+ request.cookie(HttpCookie.from(OctaneHttpClient.ACCESS_TOKEN_COOKIE_KEY, jetty.accessTokenValue));
}
if (jetty.octaneUserValue != null && !jetty.octaneUserValue.isEmpty()) {
- request.cookie(new HttpCookie(OctaneHttpClient.OCTANE_USER_COOKIE_KEY, jetty.octaneUserValue));
+ request.cookie(HttpCookie.from(OctaneHttpClient.OCTANE_USER_COOKIE_KEY, jetty.octaneUserValue));
}
if (jetty.lastUsedAuthentication != null) {
- lastUsedAuthentication.getAPIMode().ifPresent(apiMode -> request.getHeaders().add(apiMode.getHeaderKey(), apiMode.getHeaderValue()));
+ jetty.lastUsedAuthentication.getAPIMode().ifPresent(apiMode -> request.headers(fields -> fields.put(apiMode.getHeaderKey(), apiMode.getHeaderValue())));
}
- request.content(contentProvider);
+ request.body(contentProvider);
return request;
}
- public Request buildPostRequest(URI uri, ContentProvider contentProvider) {
+ public Request buildPostRequest(URI uri, Request.Content contentProvider) {
return buildRequest(client.newRequest(uri).method(HttpMethod.POST), contentProvider);
}
- public Request buildPutRequest(URI uri, ContentProvider contentProvider) {
+ public Request buildPutRequest(URI uri, Request.Content contentProvider) {
return buildRequest(client.newRequest(uri).method(HttpMethod.PUT), contentProvider);
}
@@ -546,10 +534,12 @@ public Request buildDeleteRequest(URI uri) {
return buildRequest(client.newRequest(uri).method(HttpMethod.DELETE), null);
}
- public Request buildPatchRequest(URI uri, ContentProvider contentProvider) {
+ @SuppressWarnings("unused")
+ public Request buildPatchRequest(URI uri, Request.Content contentProvider) {
return buildRequest(client.newRequest(uri).method(HttpMethod.PATCH), contentProvider);
}
+ @SuppressWarnings("unused")
public Request buildHeadRequest(URI uri) {
return buildRequest(client.newRequest(uri).method(HttpMethod.HEAD), null);
}
@@ -562,13 +552,13 @@ private Request buildBinaryPostRequest(OctaneHttpRequest.PostBinaryOctaneHttpReq
final Request httpRequest = requestFactory.buildPostRequest(domain.toURI(),
generateMultiPartContent(octaneHttpRequest));
if (octaneHttpRequest.getAcceptType() != null)
- httpRequest.getHeaders().add(HttpHeader.ACCEPT, octaneHttpRequest.getAcceptType());
+ httpRequest.headers(fields -> fields.put(HttpHeader.ACCEPT, octaneHttpRequest.getAcceptType()));
return httpRequest;
}
- private MultiPartContentProvider generateBinaryBulkPostRequest(OctaneHttpRequest.PostBinaryBulkOctaneHttpRequest postBinaryBulkOctaneHttpRequest) {
- MultiPartContentProvider content = new MultiPartContentProvider(HTTP_MULTIPART_BOUNDARY_VALUE);
+ private MultiPartRequestContent generateBinaryBulkPostRequest(OctaneHttpRequest.PostBinaryBulkOctaneHttpRequest postBinaryBulkOctaneHttpRequest) {
+ MultiPartRequestContent content = new MultiPartRequestContent(HTTP_MULTIPART_BOUNDARY_VALUE);
postBinaryBulkOctaneHttpRequest.getBinaryFileInfo()
.forEach(binaryFile -> addBinaryFileToMultiPart(content, postBinaryBulkOctaneHttpRequest.getBinaryContentType(), binaryFile));
@@ -581,24 +571,24 @@ private MultiPartContentProvider generateBinaryBulkPostRequest(OctaneHttpRequest
* @param octaneHttpRequest - JSON entity model.
* @return - Generated HTTP content.
*/
- private MultiPartContentProvider generateMultiPartContent(OctaneHttpRequest.PostBinaryOctaneHttpRequest octaneHttpRequest) {
+ @SuppressWarnings("resource")
+ private MultiPartRequestContent generateMultiPartContent(OctaneHttpRequest.PostBinaryOctaneHttpRequest octaneHttpRequest) {
- MultiPartContentProvider content = new MultiPartContentProvider(HTTP_MULTIPART_BOUNDARY_VALUE);
+ MultiPartRequestContent content = new MultiPartRequestContent(HTTP_MULTIPART_BOUNDARY_VALUE);
return addBinaryFileToMultiPart(content, octaneHttpRequest.getBinaryContentType(), Triple.of(octaneHttpRequest.getContent(), octaneHttpRequest.getBinaryInputStream(), octaneHttpRequest.getBinaryContentName()));
}
- private MultiPartContentProvider addBinaryFileToMultiPart(MultiPartContentProvider content, String contentType, Triple binaryContent) {
- ByteBufferContentProvider byteArrayContent = new ByteBufferContentProvider("application/json", ByteBuffer.wrap(binaryContent.getLeft().getBytes(StandardCharsets.UTF_8)));
- HttpFields httpHeaders = new HttpFields();
+ private MultiPartRequestContent addBinaryFileToMultiPart(MultiPartRequestContent content, String contentType, Triple binaryContent) {
+ BytesRequestContent byteArrayContent = new BytesRequestContent("application/json", binaryContent.getLeft().getBytes(StandardCharsets.UTF_8));
+ HttpFields.Mutable httpHeaders = HttpFields.build();
httpHeaders.add(HttpHeader.ACCEPT_ENCODING, "gzip");
- content.addFilePart(HTTP_MULTIPART_PART1_DISPOSITION_ENTITY_VALUE, "blob", byteArrayContent, httpHeaders);
+ content.addPart(new MultiPart.ContentSourcePart(HTTP_MULTIPART_PART1_DISPOSITION_ENTITY_VALUE, null, httpHeaders, byteArrayContent));
// Add Stream
try {
- byteArrayContent = new ByteBufferContentProvider(contentType, ByteBuffer.wrap(IOUtils.toByteArray(binaryContent.getMiddle())));
- HttpFields httpHeaders1 = new HttpFields();
- httpHeaders1.add(HttpHeader.ACCEPT_ENCODING, "gzip");
- content.addFilePart("content", binaryContent.getRight(), byteArrayContent, null);
+ byte[] fileBytes = binaryContent.getMiddle().readAllBytes();
+ BytesRequestContent fileContent = new BytesRequestContent(contentType, fileBytes);
+ content.addPart(new MultiPart.ContentSourcePart("content", binaryContent.getRight(), null, fileContent));
return content;
} catch (IOException e) {
throw new RuntimeException(e);
@@ -610,14 +600,12 @@ private MultiPartContentProvider addBinaryFileToMultiPart(MultiPartContentProvid
* Retrieve new cookie from set-cookie header
*
* @param response The response containing the set-cookie header or not
- * @return true if LWSSO cookie is renewed
*/
- private boolean updateLWSSOCookieValue(Response response) {
+ private void updateLWSSOCookieValue(Response response) {
HttpFields headers = response.getHeaders();
- boolean renewed = false;
List cookieHeaderValue = headers.getValuesList(SET_COOKIE);
if (cookieHeaderValue.isEmpty()) {
- return false;
+ return;
}
String url = response.getRequest().getURI().getRawPath();
@@ -632,30 +620,27 @@ private boolean updateLWSSOCookieValue(Response response) {
// Sadly the server seems to send back empty cookies for some reason
cookies = java.net.HttpCookie.parse(strCookie);
} catch (Exception ex) {
- logger.error("Failed to parse SET_COOKIE header, issue with cookie: \"{}\", {}", strCookie, ex);
+ logger.error("Failed to parse SET_COOKIE header, issue with cookie: \"{}\"", strCookie, ex);
continue;
}
Optional lwssoCookie = cookies.stream().filter(a -> a.getName().equals(LWSSO_COOKIE_KEY)).findFirst();
if (lwssoCookie.isPresent()) {
lwssoValue = lwssoCookie.get().getValue();
- renewed = true;
} else {
cookies.stream().filter(cookie -> cookie.getName().equals(OCTANE_USER_COOKIE_KEY)).findAny().ifPresent(cookie -> octaneUserValue = cookie.getValue());
}
}
-
- return renewed;
}
+ @SuppressWarnings("unused")
public static int getHttpRequestRetryCount() {
return HTTP_REQUEST_RETRY_COUNT;
}
private static RuntimeException wrapException(Exception exception, Request httpRequest) {
- if (exception.getCause() instanceof HttpResponseException) {
+ if (exception.getCause() instanceof HttpResponseException httpResponseException) {
- HttpResponseException httpResponseException = (HttpResponseException) exception.getCause();
logger.debug(LOGGER_RESPONSE_FORMAT, httpResponseException.getResponse().getStatus(), httpResponseException.getResponse().getReason(), httpResponseException.getResponse().getHeaders().stream().collect(Collectors.toList()));
// It seems that Octane returns a message in 401 but this is swallowed by the HttpConnection as expected by the HTTP spec
@@ -664,18 +649,16 @@ private static RuntimeException wrapException(Exception exception, Request httpR
if (httpResponseException.getResponse().getStatus() == 401) {
try {
final String cookie = httpRequest.getCookies().stream()
+ .map(HttpCookie::asJavaNetHttpCookie)
.map(java.net.HttpCookie::toString)
.collect(Collectors.joining(";"));
- ;
- if (cookie != null) {
- for (String splitCookie : cookie.split(";")) {
- if (splitCookie.startsWith(LWSSO_COOKIE_KEY)) {
- final LongFieldModel statusFieldModel = new LongFieldModel(ErrorModel.HTTP_STATUS_CODE_PROPERTY_NAME, (long) httpResponseException.getResponse().getStatus());
- final ErrorModel errorModel = new ErrorModel(Collections.singleton(statusFieldModel));
- // assuming that we have a cookie and therefore can go for re-authentication...
- errorModel.setValue(new StringFieldModel("errorCode", ERROR_CODE_TOKEN_EXPIRED));
- return new OctaneException(errorModel);
- }
+ for (String splitCookie : cookie.split(";")) {
+ if (splitCookie.startsWith(LWSSO_COOKIE_KEY)) {
+ final LongFieldModel statusFieldModel = new LongFieldModel(ErrorModel.HTTP_STATUS_CODE_PROPERTY_NAME, (long) httpResponseException.getResponse().getStatus());
+ final ErrorModel errorModel = new ErrorModel(Collections.singleton(statusFieldModel));
+ // assuming that we have a cookie and therefore can go for re-authentication...
+ errorModel.setValue(new StringFieldModel("errorCode", ERROR_CODE_TOKEN_EXPIRED));
+ return new OctaneException(errorModel);
}
}
} catch (NullPointerException e) {
@@ -684,9 +667,11 @@ private static RuntimeException wrapException(Exception exception, Request httpR
}
List exceptionContentList = new ArrayList<>();
- HttpContentResponse response = (HttpContentResponse) httpResponseException.getResponse();
+ Response response = httpResponseException.getResponse();
exceptionContentList.add(response.getReason());
- exceptionContentList.add(response.getContentAsString());
+ if (response instanceof ContentResponse contentResponse) {
+ exceptionContentList.add(contentResponse.getContentAsString());
+ }
for (String exceptionContent : exceptionContentList) {
@@ -713,21 +698,6 @@ private static RuntimeException wrapException(Exception exception, Request httpR
return new RuntimeException(exception);
}
- /**
- * Util method to debug log {@link HttpContent}
- *
- * @param content {@link HttpContent}
- */
- private static void logHttpContent(HttpContent content) {
-
- try {
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- content.advance();
- byteArrayOutputStream.write(content.getContent().array());
- } catch (IOException ex) {
- logger.error("Failed to log content of {} {}", content, ex);
- }
- }
/**
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/attachments/TestAttachments.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/attachments/TestAttachments.java
index 5dd96501..5f7d82e4 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/attachments/TestAttachments.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/attachments/TestAttachments.java
@@ -30,33 +30,26 @@
import com.hpe.adm.nga.sdk.Octane;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonMethods;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.internal.util.reflection.Whitebox;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-@PowerMockIgnore("javax.management.*")
-@RunWith(PowerMockRunner.class)
-public class TestAttachments {
+class TestAttachments {
private static Octane octane;
- private static AttachmentList spiedAttachments;
-
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
+ private static AttachmentList attachments;
+
+ @BeforeAll
+ static void setUpBeforeClass() {
octane = CommonMethods.getOctaneForTest();
- AttachmentList attachments = octane.attachmentList();
- spiedAttachments = PowerMockito.spy(attachments);
+ attachments = octane.attachmentList();
}
-
- @Test
- public void testCorrectUrl(){
- String expectedResult = CommonMethods.getDomain() + "/api/shared_spaces/" + CommonMethods.getSharedSpace() + "/workspaces/" + CommonMethods.getWorkSpace() + "/attachments";
- String internalUrl = (String)Whitebox.getInternalState(spiedAttachments, "attachmentListDomain");
- assertEquals(expectedResult, internalUrl);
+
+ @Test
+ void correctUrl() throws Exception {
+ String expectedResult = CommonMethods.getDomain() + "/api/shared_spaces/" + CommonMethods.getSharedSpace() + "/workspaces/" + CommonMethods.getWorkSpace() + "/attachments";
+ String internalUrl = (String) FieldUtils.readField(attachments, "attachmentListDomain", true);
+ assertEquals(expectedResult, internalUrl);
}
}
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestCreateEntities.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestCreateEntities.java
index 9c804398..95558a46 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestCreateEntities.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestCreateEntities.java
@@ -42,20 +42,17 @@
import com.hpe.adm.nga.sdk.network.google.GoogleHttpClient;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonMethods;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonUtils;
+import org.apache.commons.lang3.reflect.FieldUtils;
import org.json.JSONArray;
import org.json.JSONObject;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
import org.mockserver.integration.ClientAndServer;
import org.mockserver.matchers.Times;
import org.mockserver.model.Cookie;
import org.mockserver.model.Header;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.modules.junit4.PowerMockRunner;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -64,70 +61,65 @@
import java.util.function.Predicate;
import java.util.stream.IntStream;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
-import static org.powermock.api.mockito.PowerMockito.spy;
-@PowerMockIgnore("javax.management.*")
-@RunWith(PowerMockRunner.class)
-public class TestCreateEntities {
+class TestCreateEntities {
private final static String JSON_DATA_NAME = "data";
private static Octane octane;
- @BeforeClass
- public static void setUpBeforeClass() {
+ @BeforeAll
+ static void setUpBeforeClass() {
octane = CommonMethods.getOctaneForTest();
-
}
- @SuppressWarnings("unchecked")
- @Test
- public void testCreateEntity() {
+ @SuppressWarnings("unchecked")
+ @Test
+ void createEntity() {
final String jsonCreateString = "{\"data\":[{\"parent\":{\"id\":1002,\"type\":\"feature\"},\"phase\":{\"id\":1007,\"type\":\"phase\"},\"severity\":{\"id\":1004,\"type\":\"list_node\"},\"id\":1,\"name\":\"moris2\"}],\"total_count\":1}";
EntityList defects = octane.entityList("defects");
- CreateEntities spiedCreateEntity = PowerMockito.spy(defects.create());
+ // No spy needed — we only read internal state, we don't stub any behaviour
+ CreateEntities createEntity = defects.create();
- try {
- Collection entityModelsIn = testGetEntityModels(jsonCreateString);
+ Assertions.assertDoesNotThrow(() -> {
+ Collection entityModelsIn = testGetEntityModels(jsonCreateString);
- spiedCreateEntity.entities(entityModelsIn);
+ createEntity.entities(entityModelsIn);
- Collection internalModels = (Collection) Whitebox.getInternalState(spiedCreateEntity, "entityModels");
- JSONObject jsonEntity = ModelParser.getInstance().getEntitiesJSONObject(internalModels);
-
- Collection entityModelsOut = testGetEntityModels(jsonEntity.toString());
- Assert.assertTrue(CommonUtils.isCollectionAInCollectionB(entityModelsIn, entityModelsOut));
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ Collection internalModels = (Collection) FieldUtils.readField(createEntity, "entityModels", true);
+ JSONObject jsonEntity = ModelParser.getInstance().getEntitiesJSONObject(internalModels);
+ Collection entityModelsOut = testGetEntityModels(jsonEntity.toString());
+ assertTrue(CommonUtils.isCollectionAInCollectionB(entityModelsIn, entityModelsOut));
+ }, "Failed with exception: ");
}
- @Test
- public void testCustomPath(){
+ @Test
+ void customPath() throws Exception {
EntityList defects = octane.entityList("defects");
+ // Spy is required here: execute() is stubbed to avoid making a real HTTP call
+ GetEntities get = spy(defects.get());
+ doReturn(ModelParser.getInstance().getEntities("{data:[]}")).when(get).execute();
- GetEntities get = PowerMockito.spy(defects.get());
-
- PowerMockito.doReturn(ModelParser.getInstance().getEntities("{data:[]}")).when(get).execute();
-
- OctaneRequest reqBefore = (OctaneRequest)Whitebox.getInternalState(get, "octaneRequest");
+ OctaneRequest reqBefore = (OctaneRequest) FieldUtils.readField(get, "octaneRequest", true);
String expectedUrl = reqBefore.getOctaneUrl().toString() + "/custom/path";
get.addPath("custom").addPath("path").execute();
- OctaneRequest reqAfter = (OctaneRequest)Whitebox.getInternalState(get, "octaneRequest");
- Assert.assertEquals("Url's don't match", expectedUrl, reqAfter.getOctaneUrl().toString());
+ OctaneRequest reqAfter = (OctaneRequest) FieldUtils.readField(get, "octaneRequest", true);
+ assertEquals(expectedUrl, reqAfter.getOctaneUrl().toString(), "Url's don't match");
}
- @Test
- public void testEntitiesCustomApiMode() throws Exception {
+ @Test
+ void entitiesCustomApiMode() throws Exception {
ClientAndServer clientAndServer = startClientAndServer();
Cookie firstCookie = new Cookie("LWSSO_COOKIE_KEY", "one");
@@ -143,14 +135,16 @@ public void testEntitiesCustomApiMode() throws Exception {
try {
Authentication authentication = new SimpleUserAuthentication("", "");
String url = "http://localhost:" + clientAndServer.getLocalPort();
- GoogleHttpClient spyGoogleHttpClient = spy(new GoogleHttpClient(url, authentication));
+ // Plain Mockito spy — no PowerMock, no bytecode manipulation
+ GoogleHttpClient spyGoogleHttpClient = Mockito.spy(new GoogleHttpClient(url, authentication));
Octane octane = new Octane.Builder(authentication, spyGoogleHttpClient).Server(url).workSpace(1002).sharedSpace(1001).build();
EntityList defects = octane.entityList("defects");
- GetEntities get = PowerMockito.spy(defects.get());
- DeleteEntities delete = PowerMockito.spy(defects.delete());
- CreateEntities create = PowerMockito.spy(defects.create());
- UpdateEntities update = PowerMockito.spy(defects.update());
+ // No stubbing needed on these objects — MockServer handles the HTTP responses
+ GetEntities get = defects.get();
+ DeleteEntities delete = defects.delete();
+ CreateEntities create = defects.create();
+ UpdateEntities update = defects.update();
Collection models = new ArrayList<>();
create.entities(models);
@@ -164,7 +158,6 @@ public void testEntitiesCustomApiMode() throws Exception {
clientAndServer
.when(request()
- //.withMethod("GET")
.withPath("/api/shared_spaces/1001/workspaces/1002/defects")
.withHeaders(Header.header("testHeader","testHeaderValue")))
.respond(response()
@@ -212,9 +205,6 @@ private Collection testGetEntityModels(String jason) {
JSONArray jasoDataArr = jasonObj.getJSONArray(JSON_DATA_NAME);
Collection entityModels = new ArrayList<>();
IntStream.range(0, jasoDataArr.length()).forEach((i) -> entityModels.add(ModelParser.getInstance().getEntityModel(jasoDataArr.getJSONObject(i))));
-
return entityModels;
}
-
-
}
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestUpdateEntities.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestUpdateEntities.java
index 49fc1792..4e682341 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestUpdateEntities.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/entities/TestUpdateEntities.java
@@ -35,51 +35,38 @@
import com.hpe.adm.nga.sdk.unit_tests.common.CommonMethods;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonUtils;
import org.json.JSONObject;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.internal.util.reflection.Whitebox;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.apache.commons.lang3.reflect.FieldUtils;
+import org.mockito.Mockito;
-import static org.junit.Assert.fail;
-@PowerMockIgnore("javax.management.*")
-@RunWith(PowerMockRunner.class)
-public class TestUpdateEntities {
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class TestUpdateEntities {
private static Octane octane;
private static EntityList defects;
-
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
+
+ @BeforeAll
+ static void setUpBeforeClass() throws Exception {
octane = CommonMethods.getOctaneForTest();
defects = octane.entityList("defects");
}
-
- @Test
- public void testUpdateEntity(){
+
+ @Test
+ void updateEntity() {
final String jsonUpdateString = "{\"parent\":{\"id\":1002,\"type\":\"feature\"},\"phase\":{\"id\":1007,\"type\":\"phase\"},\"severity\":{\"id\":1004,\"type\":\"list_node\"},\"id\":1,\"name\":\"name\"}";
- // test single entity
- UpdateEntity spiedUpdateEntity = PowerMockito.spy(defects.at("1002").update());
-
- try{
- // convert string to json object
- JSONObject inJsonEntity = new JSONObject(jsonUpdateString);
- // run protected method which converts to EntityModel
- EntityModel entityModelIn = ModelParser.getInstance().getEntityModel(inJsonEntity);
-
- // Insert data to update entity
- spiedUpdateEntity.entity(entityModelIn);
- // get internal state of EntityModel
- EntityModel entityModelOut = (EntityModel) Whitebox.getInternalState(spiedUpdateEntity, "entityModel");
- // convert internal data to JSONObject via internal method and convert it to EntityModel
+ UpdateEntity spiedUpdateEntity = Mockito.spy(defects.at("1002").update());
+
+ Assertions.assertDoesNotThrow(() -> {
+ JSONObject inJsonEntity = new JSONObject(jsonUpdateString);
+ EntityModel entityModelIn = ModelParser.getInstance().getEntityModel(inJsonEntity);
+
+ spiedUpdateEntity.entity(entityModelIn);
+ EntityModel entityModelOut = (EntityModel) FieldUtils.readField(spiedUpdateEntity, "entityModel", true);
+
+ assertTrue(CommonUtils.isEntityAInEntityB(entityModelIn, entityModelOut));
+ }, "Failed with exception: ");
- Assert.assertTrue(CommonUtils.isEntityAInEntityB(entityModelIn, entityModelOut));
- }
- catch(Exception ex){
- fail("Failed with exception: " + ex);
- }
-
}
}
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/exception/TestOctaneExceptions.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/exception/TestOctaneExceptions.java
index eee88548..bbd03835 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/exception/TestOctaneExceptions.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/exception/TestOctaneExceptions.java
@@ -31,36 +31,37 @@
import com.hpe.adm.nga.sdk.model.*;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonMethods;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonUtils;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-public class TestOctaneExceptions {
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
+class TestOctaneExceptions {
private static FieldModel stringField;
private static FieldModel booleanField;
private static FieldModel longField;
private static Set set;
-
- @BeforeClass
- public static void beforeClass(){
+
+ @BeforeAll
+ static void beforeClass(){
stringField = new StringFieldModel("stringField", "value");
booleanField = new BooleanFieldModel("booleanField", true);
- longField = new LongFieldModel("longField", new Long(5));
+ longField = new LongFieldModel("longField", Long.valueOf(5));
set = new HashSet();
set.add(stringField);
set.add(booleanField);
set.add(longField);
}
-
- @Test
- public void testOctaneException(){
+
+ @Test
+ void octaneException(){
ErrorModel err = new ErrorModel(set);
OctaneException exc = new OctaneException(err);
@@ -68,9 +69,9 @@ public void testOctaneException(){
ErrorModel internalError = exc.getError();
assertTrue(checkEquivalence(internalError.getValues()));
}
-
- @Test
- public void testOctanePartialException(){
+
+ @Test
+ void octanePartialException(){
Collection errorCol = new ArrayList();
Collection entityCol = new ArrayList();
errorCol.add(new ErrorModel(set));
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestEntityUtil.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestEntityUtil.java
index 11933a6d..7970c8d1 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestEntityUtil.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestEntityUtil.java
@@ -28,69 +28,69 @@
*/
package com.hpe.adm.nga.sdk.model;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.time.ZonedDateTime;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-public class TestEntityUtil {
+class TestEntityUtil {
private FieldModel fieldModelOne;
private FieldModel fieldModelTwo;
@Test
- public void testLongFieldModelEquals() {
+ void longFieldModelEquals() {
fieldModelOne = new LongFieldModel("id", 1L);
fieldModelTwo = new LongFieldModel("id", 1L);
assertTrue(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testBooleanFieldModelEquals() {
+ void booleanFieldModelEquals() {
fieldModelOne = new BooleanFieldModel("field", true);
fieldModelTwo = new BooleanFieldModel("field", false);
assertFalse(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testStringFieldModelEquals() {
+ void stringFieldModelEquals() {
fieldModelOne = new StringFieldModel("field", "string");
fieldModelTwo = new StringFieldModel("field", "string");
assertTrue(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testDifferentFieldModelEquals() {
+ void differentFieldModelEquals() {
fieldModelOne = new StringFieldModel("fieldOne", "string");
fieldModelTwo = new StringFieldModel("fieldTwo", "string");
assertFalse(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testLongStringFieldModelEquals() {
+ void longStringFieldModelEquals() {
fieldModelOne = new LongFieldModel("id", 1L);
fieldModelTwo = new StringFieldModel("id", "1");
assertFalse(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testFloatLongFieldModelEquals() {
+ void floatLongFieldModelEquals() {
fieldModelOne = new FloatFieldModel("id", 1.0F);
fieldModelTwo = new LongFieldModel("id", 1L);
assertFalse(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testBooleanStringFieldModelEquals() {
+ void booleanStringFieldModelEquals() {
fieldModelOne = new BooleanFieldModel("field", true);
fieldModelTwo = new StringFieldModel("field", "true");
assertFalse(EntityUtil.areFieldModelsEqualByContent(fieldModelOne, fieldModelTwo));
}
@Test
- public void testDateFieldModelEquals() {
+ void dateFieldModelEquals() {
ZonedDateTime dateTime = ZonedDateTime.now();
fieldModelOne = new DateFieldModel("field", dateTime);
fieldModelTwo = new DateFieldModel("field", dateTime);
@@ -102,7 +102,7 @@ public void testDateFieldModelEquals() {
}
@Test
- public void testEntityModelEqualsByIdAndType() {
+ void entityModelEqualsByIdAndType() {
EntityModel entityModelOne = new EntityModel();
EntityModel entityModelTwo = new EntityModel();
@@ -129,7 +129,7 @@ public void testEntityModelEqualsByIdAndType() {
}
@Test
- public void testEntityModelEqualsByContent() {
+ void entityModelEqualsByContent() {
EntityModel entityModelOne = new EntityModel();
EntityModel entityModelTwo = new EntityModel();
@@ -159,7 +159,7 @@ public void testEntityModelEqualsByContent() {
}
@Test
- public void testReferenceFieldModelEqualsByContent() {
+ void referenceFieldModelEqualsByContent() {
EntityModel entityModelOne = new EntityModel();
EntityModel refEntityModelOne = new EntityModel();
refEntityModelOne.setValue(new LongFieldModel("newField", 1337L));
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestModel.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestModel.java
index cd7e468d..2c5a3a92 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestModel.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestModel.java
@@ -29,74 +29,70 @@
package com.hpe.adm.nga.sdk.model;
import org.json.JSONObject;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import static org.hamcrest.CoreMatchers.*;
-import static org.hamcrest.MatcherAssert.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-public class TestModel {
+class TestModel {
private static Set set;
private EntityModel model;
private String expectedResult;
private String gotResult;
- @BeforeClass
- public static void initializeOnCreate() {
+ @BeforeAll
+ static void initializeOnCreate() {
set = new HashSet<>();
}
- @Before
- public void beforeEachMethod() {
+ @BeforeEach
+ void beforeEachMethod() {
set.clear();
}
- @After
- public void afterEachMethod() {
+ @AfterEach
+ void afterEachMethod() {
assertEquals(expectedResult, gotResult);
}
@Test
- public void testEntityModelWithBooleanField() {
+ void entityModelWithBooleanField() {
expectedResult = "{\"falseValue\":false,\"trueValue\":true}";
set.add(new BooleanFieldModel("trueValue", true));
set.add(new BooleanFieldModel("falseValue", false));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testEntityModelWithStringField() {
+ void entityModelWithStringField() {
expectedResult = "{\"firstValue\":\"first\",\"secondValue\":\"second\",\"thirdValue\":\"third\"}";
set.add(new StringFieldModel("firstValue", "first"));
set.add(new StringFieldModel("secondValue", "second"));
set.add(new StringFieldModel("thirdValue", "third"));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testEntityModelWithReferenceField() {
+ void entityModelWithReferenceField() {
expectedResult = "{\"firstRef\":{\"falseValue\":false,\"trueValue\":true},\"secondRef\":{\"falseValue\":false,\"trueValue\":true}}";
Set refSet = new HashSet<>();
refSet.add(new BooleanFieldModel("trueValue", true));
@@ -106,16 +102,14 @@ public void testEntityModelWithReferenceField() {
set.add(new ReferenceFieldModel("firstRef", refModel));
set.add(new ReferenceFieldModel("secondRef", refModel));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testEntityModelWithMultiReferenceField() {
+ void entityModelWithMultiReferenceField() {
expectedResult = "{\"field\":{\"exceeds_total_count\":false,\"data\":[{\"falseValue\":false,\"trueValue\":true},{\"falseValue\":false,\"trueValue\":true}],\"total_count\":2}}";
Set firstSet = new HashSet<>();
firstSet.add(new BooleanFieldModel("trueValue", true));
@@ -133,44 +127,38 @@ public void testEntityModelWithMultiReferenceField() {
set.add(new MultiReferenceFieldModel("field", entityCol));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testEntityModelWithLongField() {
+ void entityModelWithLongField() {
expectedResult = "{\"secondField\":200,\"firstField\":-200}";
set.add(new LongFieldModel("firstField", -200L));
set.add(new LongFieldModel("secondField", 200L));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testEntityModelWithDateField_fromModelToJsonObject() {
+ void entityModelWithDateFieldFromModelToJsonObject() {
ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(ZoneId.of("Z"));
expectedResult = "{\"field\":\"" + now.toString() + "\"}";
set.add(new DateFieldModel("field", now));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testEntityModelWithDateField_fromJsonObjectToModel_dateWithMillis() {
+ void entityModelWithDateFieldFromJsonObjectToModelDateWithMillis() {
JSONObject jsonObject = new JSONObject("{\"creation_time\":\"2022-09-07T14:26:44.143Z\"}");
EntityModel entityModel = ModelParser.getInstance().getEntityModel(jsonObject);
@@ -180,7 +168,7 @@ public void testEntityModelWithDateField_fromJsonObjectToModel_dateWithMillis()
}
@Test
- public void testEntityModelWithDateField_fromJsonObjectToModel_dateWithoutMillis() {
+ void entityModelWithDateFieldFromJsonObjectToModelDateWithoutMillis() {
JSONObject jsonObject = new JSONObject("{\"creation_time\":\"2022-09-07T14:26:44Z\"}");
EntityModel entityModel = ModelParser.getInstance().getEntityModel(jsonObject);
@@ -190,21 +178,19 @@ public void testEntityModelWithDateField_fromJsonObjectToModel_dateWithoutMillis
}
@Test
- public void testErrorModel() {
+ void errorModel() {
expectedResult = "{\"secondField\":651651651,\"firstField\":0}";
set.add(new LongFieldModel("firstField", 0L));
set.add(new LongFieldModel("secondField", 651651651L));
ErrorModel model = new ErrorModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testComplexEntityModel() {
+ void complexEntityModel() {
ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(ZoneId.of("Z"));
expectedResult = "{\"longField\":200,\"RefField\":{\"falseValue\":false,\"trueValue\":true},\"dateField\":\"" + now.toString() + "\",\"stringField\":\"first\",\"multiRefField\":{\"exceeds_total_count\":false,\"data\":[{\"falseValue\":false,\"trueValue\":true},{\"falseValue\":false,\"trueValue\":true}],\"total_count\":2},\"boolField\":true}";
@@ -233,46 +219,40 @@ public void testComplexEntityModel() {
set.add(new StringFieldModel("stringField", "first"));
set.add(new BooleanFieldModel("boolField", true));
model = new EntityModel(set);
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
assertEquals(expectedResult, gotResult);
assertEquals(expectedResult, model.toString());
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testAddSingleValue() {
+ void addSingleValue() {
expectedResult = "{\"trueValue\":true}";
model = new EntityModel();
model.setValue(new BooleanFieldModel("trueValue", true));
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testUpdateSingleValue() {
+ void updateSingleValue() {
expectedResult = "{\"trueValue\":true}";
Set fieldSet = new HashSet<>();
fieldSet.add(new BooleanFieldModel("trueValue", false));
model = new EntityModel(fieldSet);
model.setValue(new BooleanFieldModel("trueValue", true));
- try {
+ Assertions.assertDoesNotThrow(() -> {
JSONObject outJsonEntity = ModelParser.getInstance().getEntityJSONObject(model);
gotResult = outJsonEntity.toString();
- } catch (Exception ex) {
- fail("Failed with exception: " + ex);
- }
+ }, "Failed with exception: ");
}
@Test
- public void testDirtyEntity() {
+ void dirtyEntity() {
// all fields should be dirty
model = new EntityModel();
model.setValue(new StringFieldModel("testKey", "testValue"));
@@ -282,7 +262,7 @@ public void testDirtyEntity() {
}
@Test
- public void testNonDirtyEntity() {
+ void nonDirtyEntity() {
// all fields should be dirty
model = new EntityModel(Collections.singleton(new StringFieldModel("testKey", "testValue")), EntityModel.EntityState.CLEAN);
final Set values = model.getValues();
@@ -291,7 +271,7 @@ public void testNonDirtyEntity() {
}
@Test
- public void testNonDirtyEntityWithAddition() {
+ void nonDirtyEntityWithAddition() {
// all fields should be dirty
model = new EntityModel(Collections.singleton(new StringFieldModel("testKey", "testValue")), EntityModel.EntityState.CLEAN);
model.setValue(new StringFieldModel("testKey2", "testValue2"));
@@ -303,7 +283,7 @@ public void testNonDirtyEntityWithAddition() {
}
@Test
- public void testCleanEntityWithId() {
+ void cleanEntityWithId() {
// all fields should be dirty
model = new EntityModel(Collections.singleton(new StringFieldModel("id", "idValue")), EntityModel.EntityState.CLEAN);
final Set values = model.getValues();
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestQuery.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestQuery.java
index ef99c94a..034c8ed4 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestQuery.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/model/TestQuery.java
@@ -31,53 +31,54 @@
import com.hpe.adm.nga.sdk.query.Query;
import com.hpe.adm.nga.sdk.query.Query.QueryBuilder;
import com.hpe.adm.nga.sdk.query.QueryMethod;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
-import static org.junit.Assert.assertEquals;
-public class TestQuery {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class TestQuery {
private static final String DATE_TIME_ISO_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
private static final String DATE_TIME_UTC_ZONE_NAME = "UTC";
private String expectedResult;
private QueryBuilder queryBuilder;
private static Date now;
private static SimpleDateFormat dateFormat;
-
- @BeforeClass
- public static void initialize(){
+
+ @BeforeAll
+ static void initialize(){
now = new Date();
dateFormat = new SimpleDateFormat(DATE_TIME_ISO_FORMAT);
TimeZone utc = TimeZone.getTimeZone(DATE_TIME_UTC_ZONE_NAME);
dateFormat.setTimeZone(utc);
}
-
- @Test
- public void testEquality() {
+
+ @Test
+ void equality() {
expectedResult = "(id EQ 5)";
queryBuilder = Query.statement("id", QueryMethod.EqualTo, 5);
assertEquals(expectedResult, queryBuilder.build().getQueryString());
}
-
- @Test
- public void testStringEquality(){
+
+ @Test
+ void stringEquality(){
expectedResult = "(name EQ 'test')";
queryBuilder = Query.statement("name", QueryMethod.EqualTo, "test");
assertEquals(expectedResult, queryBuilder.build().getQueryString());
}
-
- @Test
- public void testDateFormat(){
+
+ @Test
+ void dateFormat(){
expectedResult = "(createn_time LT '" + dateFormat.format(now) + "')";
queryBuilder = Query.statement("createn_time", QueryMethod.LessThan, now);
assertEquals(expectedResult, queryBuilder.build().getQueryString());
}
-
- @Test
- public void testComplexStatementOr(){
+
+ @Test
+ void complexStatementOr(){
expectedResult = "(creation_time LT '" + dateFormat.format(now) + "')||(id EQ '5028')||(id EQ '5015')";
queryBuilder = Query.statement("creation_time", QueryMethod.LessThan, now)
.or("id", QueryMethod.EqualTo, "5028")
@@ -85,15 +86,15 @@ public void testComplexStatementOr(){
assertEquals(expectedResult, queryBuilder.build().getQueryString());
}
- @Test
- public void testComplexStatementAndNegate(){
+ @Test
+ void complexStatementAndNegate(){
expectedResult = "!(id GE '5028');!(name EQ '5028')";
queryBuilder = Query.not("id", QueryMethod.GreaterThanOrEqualTo, "5028").andNot("name", QueryMethod.EqualTo, "5028");
assertEquals(expectedResult, queryBuilder.build().getQueryString());
}
@Test
- public void testQueryBuilderComposition(){
+ void queryBuilderComposition(){
expectedResult = "(id GE '5028')||!(name EQ '5028')";
QueryBuilder qb = Query.not("name", QueryMethod.EqualTo, "5028");
queryBuilder = Query.statement("id", QueryMethod.GreaterThanOrEqualTo, "5028").or(qb);
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/TestOctaneUrl.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/TestOctaneUrl.java
index c609f744..8a535b4b 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/TestOctaneUrl.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/TestOctaneUrl.java
@@ -29,21 +29,21 @@
package com.hpe.adm.nga.sdk.network;
import com.hpe.adm.nga.sdk.unit_tests.common.CommonMethods;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Test for {@link OctaneUrl}
*/
-public class TestOctaneUrl {
+class TestOctaneUrl {
/**
* Test correct build of URL with field specification, limits, offset and orderBy.
* The method invokes internal protected method with retrieved private parameters.
*/
@Test
- public void testUrlBuilder() {
+ void urlBuilder() {
final String expectedResult = CommonMethods.getDomain() + "?offset=1&limit=10&order_by=-version_stamp&fields=version_stamp,item_type";
OctaneUrl octaneUrl = new OctaneUrl(CommonMethods.getDomain());
octaneUrl.addFieldsParam("version_stamp", "item_type");
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/google/TestGoogleHttpClient.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/google/TestGoogleHttpClient.java
index 401f045e..001cf8a5 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/google/TestGoogleHttpClient.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/network/google/TestGoogleHttpClient.java
@@ -28,7 +28,6 @@
*/
package com.hpe.adm.nga.sdk.network.google;
-import com.google.api.client.http.HttpRequest;
import com.hpe.adm.nga.sdk.Octane;
import com.hpe.adm.nga.sdk.authentication.Authentication;
import com.hpe.adm.nga.sdk.authentication.SimpleUserAuthentication;
@@ -37,11 +36,8 @@
import com.hpe.adm.nga.sdk.model.LongFieldModel;
import com.hpe.adm.nga.sdk.model.StringFieldModel;
import com.hpe.adm.nga.sdk.network.OctaneHttpRequest;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.mockserver.integration.ClientAndServer;
import org.mockserver.matchers.TimeToLive;
@@ -50,41 +46,32 @@
import org.mockserver.model.Cookie;
import org.mockserver.model.Delay;
import org.mockserver.model.HttpResponse;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.lang.reflect.Field;
import java.net.SocketTimeoutException;
import java.time.Duration;
import java.time.LocalDateTime;
-import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
-import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times;
import static org.mockserver.integration.ClientAndServer.startClientAndServer;
import static org.mockserver.model.HttpClassCallback.callback;
import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
-import static org.powermock.api.mockito.PowerMockito.doReturn;
-import static org.powermock.api.mockito.PowerMockito.doThrow;
-import static org.powermock.api.mockito.PowerMockito.spy;
-import static org.powermock.api.mockito.PowerMockito.verifyPrivate;
-
-@PowerMockIgnore("javax.management.*")
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(GoogleHttpClient.class)
+
public class TestGoogleHttpClient {
public static final String OAUTH_AUTH_URL = "/authentication/sign_in";
public static final String LWSSO_COOKIE_KEY = "LWSSO_COOKIE_KEY";
@@ -92,48 +79,55 @@ public class TestGoogleHttpClient {
private static final Logger logger = LoggerFactory.getLogger(TestGoogleHttpClient.class);
@Test
- public void testRequestRetry() throws Exception {
+ void requestRetry() throws Exception {
Authentication authentication = new SimpleUserAuthentication("", "");
- GoogleHttpClient googleHttpClientSpy = spy(new GoogleHttpClient("http://url.com", authentication));
+ GoogleHttpClient googleHttpClientSpy = Mockito.spy(new GoogleHttpClient("http://url.com", authentication));
- doReturn(null).when(googleHttpClientSpy, "convertOctaneRequestToGoogleHttpRequest", any(OctaneHttpRequest.class));
- doReturn(true).when(googleHttpClientSpy, "authenticate");
- Whitebox.setInternalState(googleHttpClientSpy, "lastUsedAuthentication", PowerMockito.mock(Authentication.class));
- long currentTimeMs = System.currentTimeMillis();
- Whitebox.setInternalState(googleHttpClientSpy, "lastSuccessfulAuthTimestamp", currentTimeMs);
- Whitebox.setInternalState(googleHttpClientSpy, "requestStartTime", ThreadLocal.withInitial(() -> currentTimeMs + 1));
+ // Stub protected and public methods directly via Mockito — no PowerMock needed
+ doReturn(null).when(googleHttpClientSpy).convertOctaneRequestToGoogleHttpRequest(any(OctaneHttpRequest.class));
+ doReturn(true).when(googleHttpClientSpy).authenticate();
- //Create timeout exception, the same way octane does
+ // Protected fields are accessible from the same package (com.hpe.adm.nga.sdk.network.google)
+ googleHttpClientSpy.lastUsedAuthentication = Mockito.mock(Authentication.class);
+ long currentTimeMs = System.currentTimeMillis();
+ googleHttpClientSpy.lastSuccessfulAuthTimestamp = currentTimeMs;
+
+ // requestStartTime is a private final ThreadLocal — we cannot replace the field,
+ // but we CAN set the value for the current thread. setAccessible works here because
+ // GoogleHttpClient is in the unnamed module (classpath), same as this test.
+ Field requestStartTimeField = GoogleHttpClient.class.getDeclaredField("requestStartTime");
+ requestStartTimeField.setAccessible(true);
+ @SuppressWarnings("unchecked")
+ ThreadLocal requestStartTime = (ThreadLocal) requestStartTimeField.get(googleHttpClientSpy);
+ requestStartTime.set(currentTimeMs + 1); // ensures lastSuccessfulAuthTimestamp < requestStartTime
+
+ // Create a token-expired exception, the same way the real server returns one
ErrorModel errorModel = new ErrorModel(new HashSet<>());
errorModel.setValue(new StringFieldModel("errorCode", "VALIDATION_TOKEN_EXPIRED_IDLE_TIME_OUT"));
errorModel.setValue(new LongFieldModel(ErrorModel.HTTP_STATUS_CODE_PROPERTY_NAME, 401L));
OctaneException octaneException = new OctaneException(errorModel);
- doThrow(octaneException)
- .when(googleHttpClientSpy, "executeRequest", Matchers.any(HttpRequest.class));
+ // executeRequest is now protected, so Mockito spy can stub it directly.
+ // Use any() (not any(HttpRequest.class)) so it also matches null — convertOctaneRequestToGoogleHttpRequest
+ // is stubbed to return null, so executeRequest receives null here.
+ doThrow(octaneException).when(googleHttpClientSpy).executeRequest(any());
OctaneHttpRequest request = new OctaneHttpRequest.GetOctaneHttpRequest("http://url.com");
try {
googleHttpClientSpy.execute(request);
} catch (Exception ex) {
- //this is supposed to fail, eventually
+ // expected to fail eventually after all retries are exhausted
}
- /*
- Check if the method retried the right amount of times
- */
- verifyPrivate(
- googleHttpClientSpy,
- times(GoogleHttpClient.getHttpRequestRetryCount() + 1))
- .invoke("execute", any(), anyInt());
+ // Verify executeRequest was called once per attempt: initial + retries
+ Mockito.verify(googleHttpClientSpy, times(GoogleHttpClient.getHttpRequestRetryCount() + 1))
+ .executeRequest(any());
}
@Test
- public void testCustomSettings() {
- int connTimeout = 2345;
-
+ void customSettings() {
Octane.OctaneCustomSettings settings = new Octane.OctaneCustomSettings() {{
set(Setting.READ_TIMEOUT, 55000);
set(Setting.CONNECTION_TIMEOUT, 2345);
@@ -148,16 +142,15 @@ public void testCustomSettings() {
} catch (Exception e) {
long end = System.currentTimeMillis();
- Assert.assertTrue(e.getCause() instanceof SocketTimeoutException);
+ assertInstanceOf(SocketTimeoutException.class, e.getCause());
long duration = end - start;
- Assert.assertTrue(duration < 3000 && duration > 2000);
+ assertTrue(duration < 3000 && duration > 2000);
}
}
@Test
- @Ignore
- public void testParallelRequestRetry() {
+ void parallelRequestRetry() {
ClientAndServer clientAndServer = startClientAndServer();
Octane octane;
long totalExecutionTime = 500;
@@ -166,7 +159,7 @@ public void testParallelRequestRetry() {
initServerResponse(clientAndServer, cookieExpirationTime);
Authentication authentication = new SimpleUserAuthentication("", "");
String url = "http://localhost:" + clientAndServer.getLocalPort();
- GoogleHttpClient spyGoogleHttpClient = spy(new GoogleHttpClient(url, authentication));
+ GoogleHttpClient spyGoogleHttpClient = Mockito.spy(new GoogleHttpClient(url, authentication));
octane = new Octane.Builder(authentication, spyGoogleHttpClient).Server(url).workSpace(1002).sharedSpace(1001).build();
int nrCores = Math.max(Runtime.getRuntime().availableProcessors(),2);
@@ -239,7 +232,7 @@ public void initServerResponse(ClientAndServer clientAndServer, long cookieExpir
}
@Test
- public void testCookieCollision() {
+ void cookieCollision() {
try (ClientAndServer clientAndServer = startClientAndServer()) {
int nrCores = Math.max(Runtime.getRuntime().availableProcessors(), 4);
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/query/TestQueryMethod.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/query/TestQueryMethod.java
index d6cb5447..207af05b 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/query/TestQueryMethod.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/query/TestQueryMethod.java
@@ -28,48 +28,48 @@
*/
package com.hpe.adm.nga.sdk.query;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import static com.hpe.adm.nga.sdk.query.QueryMethod.COMPARISON_OPERATOR_BETWEEN;
import static com.hpe.adm.nga.sdk.query.QueryMethod.COMPARISON_OPERATOR_IN;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-public class TestQueryMethod {
+class TestQueryMethod {
@Test
- public void testInString() {
+ void inString() {
final String queryResult = QueryMethod.In.getAction().apply("testField", new String[]{"1", "2", "3"});
- Assert.assertEquals("(testField " + COMPARISON_OPERATOR_IN + " '1','2','3')", queryResult);
+ assertEquals("(testField " + COMPARISON_OPERATOR_IN + " '1','2','3')", queryResult);
}
@Test
- public void testInNumber() {
+ void inNumber() {
final String queryResult = QueryMethod.In.getAction().apply("testField", new Long[]{1L, 2L, 3L});
- Assert.assertEquals("(testField " + COMPARISON_OPERATOR_IN + " 1,2,3)", queryResult);
+ assertEquals("(testField " + COMPARISON_OPERATOR_IN + " 1,2,3)", queryResult);
}
@Test
- public void testInNull() {
+ void inNull() {
final String queryResult = QueryMethod.In.getAction().apply("testField", null);
- Assert.assertEquals("", queryResult);
+ assertEquals("", queryResult);
}
@Test
- public void testInEmpty() {
+ void inEmpty() {
final String queryResult = QueryMethod.In.getAction().apply("testField", new String[]{""});
- Assert.assertEquals("(testField " + COMPARISON_OPERATOR_IN + " '')", queryResult);
+ assertEquals("(testField " + COMPARISON_OPERATOR_IN + " '')", queryResult);
}
@Test
- public void testBetweenNumber() {
+ void betweenNumber() {
final String queryResult = QueryMethod.Between.getAction().apply("testField", new QueryMethod.Between("1000", "1020"));
- Assert.assertEquals("(testField " + COMPARISON_OPERATOR_BETWEEN + " '1000' ...'1020')", queryResult);
+ assertEquals("(testField " + COMPARISON_OPERATOR_BETWEEN + " '1000' ...'1020')", queryResult);
}
@Test
- public void testBetweenDate() {
+ void betweenDate() {
final String queryResult = QueryMethod.Between.getAction().apply("testField", new QueryMethod.Between("1000", "1020"));
- Assert.assertEquals("(testField " + COMPARISON_OPERATOR_BETWEEN + " '1000' ...'1020')", queryResult);
+ assertEquals("(testField " + COMPARISON_OPERATOR_BETWEEN + " '1000' ...'1020')", queryResult);
}
}
diff --git a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/unit_tests/common/CommonMethods.java b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/unit_tests/common/CommonMethods.java
index b6557cf8..554267f1 100644
--- a/sdk-src/src/test/java/com/hpe/adm/nga/sdk/unit_tests/common/CommonMethods.java
+++ b/sdk-src/src/test/java/com/hpe/adm/nga/sdk/unit_tests/common/CommonMethods.java
@@ -35,7 +35,7 @@
import com.hpe.adm.nga.sdk.model.MultiReferenceFieldModel;
import com.hpe.adm.nga.sdk.model.ReferenceFieldModel;
import com.hpe.adm.nga.sdk.network.OctaneHttpClient;
-import org.powermock.api.mockito.PowerMockito;
+import org.mockito.Mockito;
import java.util.Collection;
import java.util.Set;
@@ -47,8 +47,8 @@ public class CommonMethods {
private final static int workSpace = 1002;
public static Octane getOctaneForTest() {
- final OctaneHttpClient octaneHttpClient = PowerMockito.mock(OctaneHttpClient.class);
- PowerMockito.when(octaneHttpClient.authenticate()).thenReturn(true);
+ final OctaneHttpClient octaneHttpClient = Mockito.mock(OctaneHttpClient.class);
+ Mockito.when(octaneHttpClient.authenticate()).thenReturn(true);
return new Octane.Builder(new SimpleUserAuthentication("user", "password"), octaneHttpClient)
.Server(getDomain())
diff --git a/sdk-usage-examples/pom.xml b/sdk-usage-examples/pom.xml
index 03761c28..a29c6f13 100644
--- a/sdk-usage-examples/pom.xml
+++ b/sdk-usage-examples/pom.xml
@@ -33,7 +33,7 @@
sdk-root
com.microfocus.adm.almoctane.sdk
- 25.4-SNAPSHOT
+ 26.4-SNAPSHOT
4.0.0