Test check complete of distribution set (#859)

* fix the logic that marks distributionSet as complete
* DistributionSets without SoftwareModules shall not be marked as complete, when no Software Module is assigned

Signed-off-by: Ravindranath Sandeep (INST-IOT/ESW-Imb) <Sandeep.Ravindranath@bosch-si.com>

* test to verify that the distributionSet is complete or not
* change test description

Signed-off-by: Nazife Basbaz <nazife.basbaz@bosch-si.com>
This commit is contained in:
Nazife Basbaz
2019-07-01 11:28:24 +02:00
committed by Stefan Behl
parent effb1e24ad
commit 2e37f85c2f
2 changed files with 18 additions and 2 deletions

View File

@@ -210,8 +210,8 @@ public class JpaDistributionSetType extends AbstractJpaNamedEntity implements Di
@Override
public boolean checkComplete(final DistributionSet distributionSet) {
List<SoftwareModuleType> smTypes = distributionSet.getModules().stream().map(SoftwareModule::getType)
.collect(Collectors.toList());
final List<SoftwareModuleType> smTypes = distributionSet.getModules().stream().map(SoftwareModule::getType)
.distinct().collect(Collectors.toList());
if (smTypes.isEmpty()) {
return false;
}

View File

@@ -12,6 +12,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -33,6 +34,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSet;
import org.eclipse.hawkbit.repository.model.DistributionSetType;
import org.eclipse.hawkbit.repository.model.NamedEntity;
import org.eclipse.hawkbit.repository.model.NamedVersionedEntity;
import org.eclipse.hawkbit.repository.model.SoftwareModule;
import org.eclipse.hawkbit.repository.test.matcher.Expect;
import org.eclipse.hawkbit.repository.test.matcher.ExpectEvents;
import org.junit.Test;
@@ -347,4 +349,18 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes
assertThat(distributionSetTypeManagement.getByKey("softdeleted").get().isDeleted()).isEqualTo(true);
}
@Test
@Description("Verifies that when no SoftwareModules are assigned to a Distribution then the DistributionSet is not complete.")
public void shouldFailWhenDistributionSetHasNoSoftwareModulesAssigned() {
final JpaDistributionSetType jpaDistributionSetType = (JpaDistributionSetType) distributionSetTypeManagement
.create(entityFactory.distributionSetType().create().key("newType").name("new Type"));
final List<SoftwareModule> softwareModules = new ArrayList<>();
final DistributionSet distributionSet = testdataFactory.createDistributionSet("DistributionOne", "3.1.2",
jpaDistributionSetType, softwareModules);
assertThat(jpaDistributionSetType.checkComplete(distributionSet)).isFalse();
}
}