improving branch coverage for AssetValidator+ShareValidator
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
			
		||||
package org.hostsharing.hsadminng.service;
 | 
			
		||||
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import org.apache.commons.lang3.RandomUtils;
 | 
			
		||||
import org.assertj.core.api.AbstractThrowableAssert;
 | 
			
		||||
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
 | 
			
		||||
import org.hostsharing.hsadminng.service.dto.AssetDTO;
 | 
			
		||||
@@ -18,12 +20,25 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    private AssetValidator assetValidator = new AssetValidator();
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldAcceptValidAssetDTO() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAction(AssetAction.PAYMENT).withAmount("64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isNull();
 | 
			
		||||
    public void shouldAcceptValidIncreasingTransaction() {
 | 
			
		||||
        for (AssetAction action : ImmutableList.of(AssetAction.PAYMENT, AssetAction.ADOPTION)) {
 | 
			
		||||
            new GivenAssetValidationTestCase()
 | 
			
		||||
                .withAnyValidDateValues()
 | 
			
		||||
                .withAction(action).withAmount("64.00")
 | 
			
		||||
                .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
                .thenActualException().isNull();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldAcceptValidDecreasingTransaction() {
 | 
			
		||||
        for (AssetAction action : ImmutableList.of(AssetAction.PAYBACK, AssetAction.HANDOVER, AssetAction.CLEARING, AssetAction.LOSS)) {
 | 
			
		||||
            new GivenAssetValidationTestCase()
 | 
			
		||||
                .withAnyValidDateValues()
 | 
			
		||||
                .withAction(action).withAmount("-64.00")
 | 
			
		||||
                .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
                .thenActualException().isNull();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
@@ -35,6 +50,15 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
            .thenActualException().isNull();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectUpdates() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withId(RandomUtils.nextLong())
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
            "Asset transactions are immutable", "asset", "assetTransactionImmutable"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfDocumentDateAfterValueDate() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
@@ -48,7 +72,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfPaymentWithNegativeAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.PAYMENT).withAmount("-64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -58,7 +82,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfPaymentWithZeroAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.PAYMENT).withAmount("0.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -68,7 +92,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfAdoptionWithNegativeAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.ADOPTION).withAmount("-64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -78,7 +102,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfAdoptionWithZeroAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.ADOPTION).withAmount("0.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -88,7 +112,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfPaybackWithPositiveAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.PAYBACK).withAmount("64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -98,7 +122,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfPaybackWithZeroAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.PAYBACK).withAmount("0.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -108,7 +132,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfHandoverWithPositiveAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.HANDOVER).withAmount("64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -118,7 +142,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfHandoverWithZeroAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.HANDOVER).withAmount("0.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -128,7 +152,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfLossWithPositiveAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.LOSS).withAmount("64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -138,7 +162,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfLossWithZeroAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.LOSS).withAmount("0.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -148,7 +172,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfClearingWithPositiveAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.CLEARING).withAmount("64.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -158,7 +182,7 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfClearingWithZeroAmount() {
 | 
			
		||||
        new GivenAssetValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(AssetAction.CLEARING).withAmount("0.00")
 | 
			
		||||
            .when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -173,6 +197,11 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
        private final AssetDTO assetDto = new AssetDTO();
 | 
			
		||||
        private BadRequestAlertException actualException;
 | 
			
		||||
 | 
			
		||||
        public GivenAssetValidationTestCase withId(long id) {
 | 
			
		||||
            assetDto.setId(id);
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        GivenAssetValidationTestCase withDocumentDate(String documentDate) {
 | 
			
		||||
            assetDto.setDocumentDate(LocalDate.parse(documentDate));
 | 
			
		||||
            return this;
 | 
			
		||||
@@ -183,6 +212,10 @@ public class AssetValidatorUnitTest {
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public GivenAssetValidationTestCase withAnyValidDateValues() {
 | 
			
		||||
            return withDocumentDate("2019-04-11").withValueDate("2019-04-12");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        GivenAssetValidationTestCase withAction(AssetAction assetAction) {
 | 
			
		||||
            assetDto.setAction(assetAction);
 | 
			
		||||
            return this;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,9 @@
 | 
			
		||||
package org.hostsharing.hsadminng.service;
 | 
			
		||||
 | 
			
		||||
import org.apache.commons.lang3.RandomUtils;
 | 
			
		||||
import org.assertj.core.api.AbstractThrowableAssert;
 | 
			
		||||
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
 | 
			
		||||
import org.hostsharing.hsadminng.service.dto.AssetDTO;
 | 
			
		||||
import org.hostsharing.hsadminng.service.dto.ShareDTO;
 | 
			
		||||
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
@@ -17,14 +19,23 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
    private ShareValidator shareValidator = new ShareValidator();
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldAcceptValidShareDTO() {
 | 
			
		||||
    public void shouldAcceptValidSubscription() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(ShareAction.SUBSCRIPTION).withQuantity(1)
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isNull();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldAcceptValidCancellation() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(ShareAction.CANCELLATION).withQuantity(-1)
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isNull();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldAcceptIfDocumentDateEqualsValueDate() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
@@ -34,6 +45,15 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
            .thenActualException().isNull();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectUpdates() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withId(RandomUtils.nextLong())
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
            "Share transactions are immutable", "share", "shareTransactionImmutable"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfDocumentDateAfterValueDate() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
@@ -47,7 +67,7 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfSubscriptionWithNegativeQuantity() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(ShareAction.SUBSCRIPTION).withQuantity(-1)
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -57,7 +77,7 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfSubscriptionWithZeroQuantity() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(ShareAction.SUBSCRIPTION).withQuantity(0)
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -67,7 +87,7 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfCancellationWithPositiveQuantity() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(ShareAction.CANCELLATION).withQuantity(1)
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -77,7 +97,7 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
    @Test
 | 
			
		||||
    public void shouldRejectIfCancellationWithZeroQuantity() {
 | 
			
		||||
        new GivenShareValidationTestCase()
 | 
			
		||||
            .withDocumentDate("2019-04-11").withValueDate("2019-04-12")
 | 
			
		||||
            .withAnyValidDateValues()
 | 
			
		||||
            .withAction(ShareAction.CANCELLATION).withQuantity(0)
 | 
			
		||||
            .when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
 | 
			
		||||
            .thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
 | 
			
		||||
@@ -92,6 +112,11 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
        private final ShareDTO shareDto = new ShareDTO();
 | 
			
		||||
        private BadRequestAlertException actualException;
 | 
			
		||||
 | 
			
		||||
        public GivenShareValidationTestCase withId(long id) {
 | 
			
		||||
            shareDto.setId(id);
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        GivenShareValidationTestCase withDocumentDate(String documentDate) {
 | 
			
		||||
            shareDto.setDocumentDate(LocalDate.parse(documentDate));
 | 
			
		||||
            return this;
 | 
			
		||||
@@ -102,6 +127,10 @@ public class ShareValidatorUnitTest {
 | 
			
		||||
            return this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public GivenShareValidationTestCase withAnyValidDateValues() {
 | 
			
		||||
            return withDocumentDate("2019-04-11").withValueDate("2019-04-12");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        GivenShareValidationTestCase withAction(ShareAction shareAction) {
 | 
			
		||||
            shareDto.setAction(shareAction);
 | 
			
		||||
            return this;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user