From 1d981802f4e0ea139f2632ba1292def59d054bb1 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Mon, 19 Feb 2024 14:57:53 +0200 Subject: [PATCH] Remove TestHelper (#1654) in favor of placing implicitLock helpers into AbstractJpaIntegrationTest as it is done in rest tests Signed-off-by: Marinov Avgustin --- .../jpa/AbstractJpaIntegrationTest.java | 11 +++++++ .../hawkbit/repository/jpa/TestHelper.java | 29 ------------------- .../autoassign/AutoAssignCheckerIntTest.java | 13 ++++----- .../management/DeploymentManagementTest.java | 15 +++++----- .../DistributionSetManagementTest.java | 7 ++--- .../SoftwareModuleManagementTest.java | 7 ++--- .../TargetFilterQueryManagementTest.java | 7 ++--- .../jpa/management/TargetManagementTest.java | 5 ++-- 8 files changed, 35 insertions(+), 59 deletions(-) delete mode 100644 hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/TestHelper.java diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java index 75060b822..0a347712c 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java @@ -24,8 +24,10 @@ import org.assertj.core.api.Assertions; import org.assertj.core.api.ThrowableAssert.ThrowingCallable; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; import org.eclipse.hawkbit.repository.jpa.model.JpaAction; +import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; import org.eclipse.hawkbit.repository.jpa.model.JpaRollout; import org.eclipse.hawkbit.repository.jpa.model.JpaRolloutGroup; +import org.eclipse.hawkbit.repository.jpa.model.JpaSoftwareModule; import org.eclipse.hawkbit.repository.jpa.repository.ActionRepository; import org.eclipse.hawkbit.repository.jpa.repository.ActionStatusRepository; import org.eclipse.hawkbit.repository.jpa.repository.DistributionSetRepository; @@ -48,6 +50,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSetTag; import org.eclipse.hawkbit.repository.model.DistributionSetTagAssignmentResult; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; +import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.TargetTag; import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult; @@ -220,4 +223,12 @@ public abstract class AbstractJpaIntegrationTest extends AbstractIntegrationTest } return array; } + + protected static void implicitLock(final DistributionSet set) { + ((JpaDistributionSet) set).setOptLockRevision(set.getOptLockRevision() + 1); + } + + protected static void implicitLock(final SoftwareModule module) { + ((JpaSoftwareModule) module).setOptLockRevision(module.getOptLockRevision() + 1); + } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/TestHelper.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/TestHelper.java deleted file mode 100644 index 2f137a98b..000000000 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/TestHelper.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2024 Contributors to the Eclipse Foundation - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.eclipse.hawkbit.repository.jpa; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; -import org.eclipse.hawkbit.repository.jpa.model.JpaSoftwareModule; -import org.eclipse.hawkbit.repository.model.DistributionSet; -import org.eclipse.hawkbit.repository.model.SoftwareModule; - -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class TestHelper { - - public static void implicitLock(final DistributionSet set) { - ((JpaDistributionSet) set).setOptLockRevision(set.getOptLockRevision() + 1); - } - - public static void implicitLock(final SoftwareModule module) { - ((JpaSoftwareModule) module).setOptLockRevision(module.getOptLockRevision() + 1); - } -} \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignCheckerIntTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignCheckerIntTest.java index bd5af4b43..3d6c44408 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignCheckerIntTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/autoassign/AutoAssignCheckerIntTest.java @@ -23,7 +23,6 @@ import java.util.stream.Stream; import org.eclipse.hawkbit.repository.DeploymentManagement; import org.eclipse.hawkbit.repository.exception.IncompleteDistributionSetException; import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest; -import org.eclipse.hawkbit.repository.jpa.TestHelper; import org.eclipse.hawkbit.repository.jpa.specifications.ActionSpecifications; import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.Action.ActionType; @@ -119,7 +118,7 @@ class AutoAssignCheckerIntTest extends AbstractJpaIntegrationTest { .updateAutoAssign(targetFilterQueryManagement .create(entityFactory.targetFilterQuery().create().name("filterA").query("name==*")).getId()) .ds(setA.getId())); - TestHelper.implicitLock(setA); + implicitLock(setA); final String targetDsAIdPref = "targ"; final List targets = testdataFactory.createTargets(25, targetDsAIdPref, @@ -136,7 +135,7 @@ class AutoAssignCheckerIntTest extends AbstractJpaIntegrationTest { // they have now 2 DS in their action history and should not get updated // with dsA assignDistributionSet(setB, targets.subList(0, 5)); - TestHelper.implicitLock(setB); + implicitLock(setB); verifyThatTargetsHaveDistributionSetAssignment(setB, targets.subList(0, 5), targetsCount); // assign set B to next 10 targets @@ -169,7 +168,7 @@ class AutoAssignCheckerIntTest extends AbstractJpaIntegrationTest { .updateAutoAssign(targetFilterQueryManagement .create(entityFactory.targetFilterQuery().create().name("filterA").query("name==*")).getId()) .ds(toAssignDs.getId())); - TestHelper.implicitLock(toAssignDs); + implicitLock(toAssignDs); final List targets = testdataFactory.createTargets(25); final int targetsCount = targets.size(); @@ -270,7 +269,7 @@ class AutoAssignCheckerIntTest extends AbstractJpaIntegrationTest { // target filter query that matches failed bunch of targets targetFilterQueryManagement.create(entityFactory.targetFilterQuery().create().name("filterB") .query("id==" + targetDsAIdPref + "*").autoAssignDistributionSet(setA.getId())); - TestHelper.implicitLock(setA); + implicitLock(setA); final List targetsF = testdataFactory.createTargets(10, targetDsFIdPref, targetDsFIdPref.concat(" description")); @@ -282,7 +281,7 @@ class AutoAssignCheckerIntTest extends AbstractJpaIntegrationTest { // assign set B to first 5 targets of fail group assignDistributionSet(setB, targetsF.subList(0, 5)); - TestHelper.implicitLock(setB); + implicitLock(setB); verifyThatTargetsHaveDistributionSetAssignment(setB, targetsF.subList(0, 5), targetsCount); // Run the check @@ -371,7 +370,7 @@ class AutoAssignCheckerIntTest extends AbstractJpaIntegrationTest { final List targetsA = createTargetsAndAutoAssignDistSet(targetDsAIdPref, 5, distributionSet, ActionType.FORCED); - TestHelper.implicitLock(distributionSet); + implicitLock(distributionSet); final List targetsB = createTargetsAndAutoAssignDistSet(targetDsBIdPref, 10, distributionSet, ActionType.SOFT); final List targetsC = createTargetsAndAutoAssignDistSet(targetDsCIdPref, 10, distributionSet, diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java index 352b5b4cf..52c627780 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java @@ -55,7 +55,6 @@ import org.eclipse.hawkbit.repository.exception.IncompleteDistributionSetExcepti import org.eclipse.hawkbit.repository.exception.InvalidDistributionSetException; import org.eclipse.hawkbit.repository.exception.MultiAssignmentIsNotEnabledException; import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest; -import org.eclipse.hawkbit.repository.jpa.TestHelper; import org.eclipse.hawkbit.repository.jpa.model.JpaAction; import org.eclipse.hawkbit.repository.jpa.model.JpaActionStatus; import org.eclipse.hawkbit.repository.jpa.model.JpaAction_; @@ -456,7 +455,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { private JpaAction assignSet(final Target target, final DistributionSet ds) { assignDistributionSet(ds.getId(), target.getControllerId()); - TestHelper.implicitLock(ds); + implicitLock(ds); assertThat(targetManagement.getByControllerID(target.getControllerId()).get().getUpdateStatus()) .as("wrong update status").isEqualTo(TargetUpdateStatus.PENDING); assertThat(deploymentManagement.getAssignedDistributionSet(target.getControllerId())).as("wrong assigned ds") @@ -1059,7 +1058,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { final DistributionSet ds = testdataFactory.createDistributionSet(""); assignDistributionSet(ds, savedDeployedTargets); - TestHelper.implicitLock(ds); + implicitLock(ds); // verify that one Action for each assignDistributionSet final Page actions = actionRepository.findAll(PAGE); @@ -1385,7 +1384,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { // doing the assignment targs = assignDistributionSet(dsA, targs).getAssignedEntity().stream().map(Action::getTarget) .collect(Collectors.toList()); - TestHelper.implicitLock(dsA); + implicitLock(dsA); Target targ = targetManagement.getByControllerID(targs.iterator().next().getControllerId()).get(); // checking the revisions of the created entities @@ -1427,7 +1426,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { targs = assignDistributionSet(dsB.getId(), "target-id-A").getAssignedEntity().stream().map(Action::getTarget) .collect(Collectors.toList()); - TestHelper.implicitLock(dsB); + implicitLock(dsB); targ = targs.iterator().next(); @@ -1594,7 +1593,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { } deploymentManagement.assignDistributionSets(deploymentRequests); - TestHelper.implicitLock(ds); + implicitLock(ds); final List content = targetManagement.findAll(Pageable.unpaged()).getContent(); @@ -1620,7 +1619,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { final List deploymentRequests = Arrays.asList(deployment1, deployment2); deploymentManagement.assignDistributionSets(deploymentRequests); - TestHelper.implicitLock(ds); + implicitLock(ds); final Optional assignedDsTarget1 = targetManagement .getByControllerID(target1.getControllerId()).map(JpaTarget.class::cast) @@ -1708,7 +1707,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest { for (final DistributionSet ds : dsList) { deployedTargets = assignDistributionSet(ds, deployedTargets).getAssignedEntity().stream() .map(Action::getTarget).collect(Collectors.toList()); - TestHelper.implicitLock(ds); + implicitLock(ds); } return new DeploymentResult(deployedTargets, nakedTargets, dsList, deployedTargetPrefix, undeployedTargetPrefix, diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java index cd333de82..205e82bd7 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java @@ -45,7 +45,6 @@ import org.eclipse.hawkbit.repository.exception.InvalidDistributionSetException; import org.eclipse.hawkbit.repository.exception.LockedException; import org.eclipse.hawkbit.repository.exception.UnsupportedSoftwareModuleForThisDistributionSetException; import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest; -import org.eclipse.hawkbit.repository.jpa.TestHelper; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSetMetadata; import org.eclipse.hawkbit.repository.model.Action.Status; @@ -641,15 +640,15 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest { // set assigned assignDistributionSet(dsSecond.getId(), tSecond.getControllerId()); - TestHelper.implicitLock(dsSecond); + implicitLock(dsSecond); assignDistributionSet(dsThree.getId(), tFirst.getControllerId()); - TestHelper.implicitLock(dsThree); + implicitLock(dsThree); // set installed testdataFactory.sendUpdateActionStatusToTargets(Collections.singleton(tSecond), Status.FINISHED, singletonList("some message")); assignDistributionSet(dsFour.getId(), tSecond.getControllerId()); - TestHelper.implicitLock(dsFour); + implicitLock(dsFour); final DistributionSetFilter distributionSetFilter = DistributionSetFilter.builder() diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java index 27d1159a9..8e9fb5e20 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java @@ -31,7 +31,6 @@ import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException; import org.eclipse.hawkbit.repository.exception.LockedException; import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest; import org.eclipse.hawkbit.repository.jpa.RandomGeneratedInputStream; -import org.eclipse.hawkbit.repository.jpa.TestHelper; import org.eclipse.hawkbit.repository.jpa.model.JpaAction_; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet_; @@ -197,8 +196,8 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { final JpaTarget target = (JpaTarget) testdataFactory.createTarget(); ds = (JpaDistributionSet) assignSet(target, ds).getDistributionSet(); - TestHelper.implicitLock(os); - TestHelper.implicitLock(jvm); + implicitLock(os); + implicitLock(jvm); // standard searches assertThat(softwareModuleManagement.findByTextAndType(PAGE, "poky", osType.getId()).getContent()).hasSize(1); @@ -222,7 +221,7 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest { private Action assignSet(final JpaTarget target, final JpaDistributionSet ds) { assignDistributionSet(ds.getId(), target.getControllerId()); - TestHelper.implicitLock(ds); + implicitLock(ds); assertThat(targetManagement.getByControllerID(target.getControllerId()).get().getUpdateStatus()) .isEqualTo(TargetUpdateStatus.PENDING); final Optional assignedDistributionSet = deploymentManagement diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetFilterQueryManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetFilterQueryManagementTest.java index 4570a07cc..5baab7500 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetFilterQueryManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetFilterQueryManagementTest.java @@ -37,7 +37,6 @@ import org.eclipse.hawkbit.repository.exception.InvalidAutoAssignActionTypeExcep import org.eclipse.hawkbit.repository.exception.InvalidDistributionSetException; import org.eclipse.hawkbit.repository.exception.RSQLParameterUnsupportedFieldException; import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest; -import org.eclipse.hawkbit.repository.jpa.TestHelper; import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.Action.ActionType; import org.eclipse.hawkbit.repository.model.DistributionSet; @@ -220,7 +219,7 @@ public class TargetFilterQueryManagementTest extends AbstractJpaIntegrationTest final TargetFilterQuery targetFilterQuery, final DistributionSet distributionSet) { targetFilterQueryManagement.updateAutoAssignDS(entityFactory.targetFilterQuery() .updateAutoAssign(targetFilterQuery.getId()).ds(distributionSet.getId())); - TestHelper.implicitLock(distributionSet); + implicitLock(distributionSet); verifyAutoAssignDsAndActionType(filterName, distributionSet, ActionType.FORCED); } @@ -324,7 +323,7 @@ public class TargetFilterQueryManagementTest extends AbstractJpaIntegrationTest targetFilterQueryManagement.updateAutoAssignDS(entityFactory.targetFilterQuery() .updateAutoAssign(targetFilterQuery.getId()).ds(distributionSet.getId())); - TestHelper.implicitLock(distributionSet); + implicitLock(distributionSet); // Check if target filter query is there TargetFilterQuery tfq = targetFilterQueryManagement.getByName(filterName).get(); @@ -356,7 +355,7 @@ public class TargetFilterQueryManagementTest extends AbstractJpaIntegrationTest .getId(); targetFilterQueryManagement.updateAutoAssignDS( entityFactory.targetFilterQuery().updateAutoAssign(filterId).ds(distributionSet.getId())); - TestHelper.implicitLock(distributionSet); + implicitLock(distributionSet); // Check if target filter query is there with the distribution set TargetFilterQuery tfq = targetFilterQueryManagement.getByName(filterName).get(); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java index e26621308..71609a077 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java @@ -55,7 +55,6 @@ import org.eclipse.hawkbit.repository.exception.RSQLParameterSyntaxException; import org.eclipse.hawkbit.repository.exception.RSQLParameterUnsupportedFieldException; import org.eclipse.hawkbit.repository.exception.TenantNotExistException; import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest; -import org.eclipse.hawkbit.repository.jpa.TestHelper; import org.eclipse.hawkbit.repository.jpa.model.JpaAction; import org.eclipse.hawkbit.repository.jpa.model.JpaTarget; import org.eclipse.hawkbit.repository.jpa.model.JpaTargetMetadata; @@ -485,12 +484,12 @@ class TargetManagementTest extends AbstractJpaIntegrationTest { controllerManagement.findOrRegisterTargetIfItDoesNotExist("4711", LOCALHOST); final DistributionSetAssignmentResult result = assignDistributionSet(testDs1.getId(), "4711"); - TestHelper.implicitLock(testDs1); + implicitLock(testDs1); controllerManagement.addUpdateActionStatus( entityFactory.actionStatus().create(getFirstAssignedActionId(result)).status(Status.FINISHED)); assignDistributionSet(testDs2.getId(), "4711"); - TestHelper.implicitLock(testDs2); + implicitLock(testDs2); target = targetManagement.getByControllerID("4711").orElseThrow(IllegalStateException::new); // read data