improved test code-coverage
This commit is contained in:
parent
d3ca9a9d95
commit
c5cca96506
@ -121,7 +121,8 @@ public abstract class HsHostingAssetEntityValidator extends HsEntityValidator<Hs
|
|||||||
|
|
||||||
private List<String> validateIdentifierPattern(final HsHostingAssetEntity assetEntity) {
|
private List<String> validateIdentifierPattern(final HsHostingAssetEntity assetEntity) {
|
||||||
final var expectedIdentifierPattern = identifierPattern(assetEntity);
|
final var expectedIdentifierPattern = identifierPattern(assetEntity);
|
||||||
if (!expectedIdentifierPattern.matcher(assetEntity.getIdentifier()).matches()) {
|
if (assetEntity.getIdentifier() == null ||
|
||||||
|
!expectedIdentifierPattern.matcher(assetEntity.getIdentifier()).matches()) {
|
||||||
return List.of("'identifier' expected to match '"+expectedIdentifierPattern+"', but is '" + assetEntity.getIdentifier() + "'");
|
return List.of("'identifier' expected to match '"+expectedIdentifierPattern+"', but is '" + assetEntity.getIdentifier() + "'");
|
||||||
}
|
}
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
@ -0,0 +1,64 @@
|
|||||||
|
package net.hostsharing.hsadminng.hs.hosting.asset.validators;
|
||||||
|
|
||||||
|
import net.hostsharing.hsadminng.hs.booking.item.HsBookingItemEntity;
|
||||||
|
import net.hostsharing.hsadminng.hs.booking.item.HsBookingItemType;
|
||||||
|
import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetEntity;
|
||||||
|
import net.hostsharing.hsadminng.hs.hosting.asset.HsHostingAssetType;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.assertj.core.api.Assertions.catchThrowable;
|
||||||
|
import static org.assertj.core.api.Assertions.entry;
|
||||||
|
|
||||||
|
class HsHostingAssetEntityValidatorRegistryUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void forTypeWithUnknownTypeThrowsException() {
|
||||||
|
// when
|
||||||
|
final var thrown = catchThrowable(() -> {
|
||||||
|
HsHostingAssetEntityValidatorRegistry.forType(null);
|
||||||
|
});
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(thrown).hasMessage("no validator found for type null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void typesReturnsAllImplementedTypes() {
|
||||||
|
// when
|
||||||
|
final var types = HsHostingAssetEntityValidatorRegistry.types();
|
||||||
|
|
||||||
|
// then
|
||||||
|
// TODO.test: when all types are implemented, replace with set of all types:
|
||||||
|
// assertThat(types).isEqualTo(EnumSet.allOf(HsHostingAssetType.class));
|
||||||
|
// also remove "Implemented" from the test method name.
|
||||||
|
assertThat(types).containsExactlyInAnyOrder(
|
||||||
|
HsHostingAssetType.CLOUD_SERVER,
|
||||||
|
HsHostingAssetType.MANAGED_SERVER,
|
||||||
|
HsHostingAssetType.MANAGED_WEBSPACE,
|
||||||
|
HsHostingAssetType.UNIX_USER
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void validatedDoesNotThrowAnExceptionForValidEntity() {
|
||||||
|
final var givenBookingItem = HsBookingItemEntity.builder()
|
||||||
|
.type(HsBookingItemType.CLOUD_SERVER)
|
||||||
|
.resources(Map.ofEntries(
|
||||||
|
entry("CPUs", 4),
|
||||||
|
entry("RAM", 20),
|
||||||
|
entry("SSD", 50),
|
||||||
|
entry("Traffic", 250)
|
||||||
|
))
|
||||||
|
.build();
|
||||||
|
final var validEntity = HsHostingAssetEntity.builder()
|
||||||
|
.type(HsHostingAssetType.CLOUD_SERVER)
|
||||||
|
.bookingItem(givenBookingItem)
|
||||||
|
.identifier("vm1234")
|
||||||
|
.caption("some valid cloud server")
|
||||||
|
.build();
|
||||||
|
HsHostingAssetEntityValidatorRegistry.validated(validEntity);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user