Skip to content

Commit a524679

Browse files
committed
Merge pull request #6 from seedstack/use-standard-exception
Use standard exception
2 parents 01af1b7 + d981e75 commit a524679

37 files changed

+579
-592
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Version 2.2.0 (2016-01-28)
2+
3+
* [new] An `ExceptionMapper` for `ConstraintViolationException` is provided by default.
4+
* [new] The `ValidatorFactory` is now injectable.
5+
* [brk] The `ValidationService` is deprecated.
6+
* [brk] The `org.seedstack.validation.ValidationException` is replaced by the standard `ConstraintViolationException`.
7+

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
<groupId>org.seedstack.addons.validation</groupId>
2121
<artifactId>validation</artifactId>
22-
<version>2.1.1-SNAPSHOT</version>
22+
<version>2.2.0-SNAPSHOT</version>
2323

2424
<properties>
2525
<seed.version>2.1.0</seed.version>

src/it/java/org/seedstack/validation/internal/ValidationPlugin_ValidationErrorIT.java renamed to src/it/java/org/seedstack/validation/internal/FieldValidationKoIT.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@
77
*/
88
package org.seedstack.validation.internal;
99

10-
import org.seedstack.validation.ValidationException;
11-
import org.seedstack.validation.internal.pojo.DummyServiceFieldValidation;
1210
import org.junit.Test;
1311
import org.junit.runner.RunWith;
14-
import org.seedstack.seed.it.SeedITRunner;
1512
import org.seedstack.seed.it.Expect;
13+
import org.seedstack.seed.it.SeedITRunner;
14+
import org.seedstack.validation.internal.pojo.FieldValidationKO;
1615

1716
import javax.inject.Inject;
17+
import javax.validation.ConstraintViolationException;
1818

1919
import static org.assertj.core.api.Assertions.assertThat;
2020

2121
@RunWith(SeedITRunner.class)
22-
@Expect(value = ValidationException.class, step = Expect.TestingStep.INSTANTIATION)
23-
public class ValidationPlugin_ValidationErrorIT {
22+
@Expect(value = ConstraintViolationException.class, step = Expect.TestingStep.INSTANTIATION)
23+
public class FieldValidationKoIT {
2424

2525
@Inject
26-
DummyServiceFieldValidation serviceField;
26+
FieldValidationKO serviceField;
2727

2828
@Test
2929
public void trigger() {

src/it/java/org/seedstack/validation/internal/ValidationPlugin_ValidationOkIT.java renamed to src/it/java/org/seedstack/validation/internal/FieldValidationOkIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
package org.seedstack.validation.internal;
99

10-
import org.seedstack.validation.internal.pojo.DummyServiceFieldValidationOK;
10+
import org.seedstack.validation.internal.pojo.FieldValidationOK;
1111
import org.assertj.core.api.Assertions;
1212
import org.junit.Test;
1313
import org.junit.runner.RunWith;
@@ -16,10 +16,10 @@
1616
import javax.inject.Inject;
1717

1818
@RunWith(SeedITRunner.class)
19-
public class ValidationPlugin_ValidationOkIT {
19+
public class FieldValidationOkIT {
2020

2121
@Inject
22-
DummyServiceFieldValidationOK serviceField;
22+
FieldValidationOK serviceField;
2323

2424
@Test
2525
public void trigger() {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Copyright (c) 2013-2015, The SeedStack authors <http://seedstack.org>
3+
*
4+
* This Source Code Form is subject to the terms of the Mozilla Public
5+
* License, v. 2.0. If a copy of the MPL was not distributed with this
6+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
7+
*/
8+
package org.seedstack.validation.internal;
9+
10+
import org.assertj.core.api.Assertions;
11+
import org.junit.Test;
12+
import org.junit.runner.RunWith;
13+
import org.seedstack.seed.it.SeedITRunner;
14+
15+
import javax.inject.Inject;
16+
import javax.validation.Validator;
17+
import javax.validation.ValidatorFactory;
18+
19+
@RunWith(SeedITRunner.class)
20+
public class InjectionsIT {
21+
22+
@Inject
23+
private ValidatorFactory validatorFactory;
24+
25+
@Inject
26+
private Validator validator;
27+
28+
@Test
29+
public void isValidatorFactoryInjectable() {
30+
Assertions.assertThat(validatorFactory).isNotNull();
31+
}
32+
33+
@Test
34+
public void isValidatorInjectable() {
35+
Assertions.assertThat(validator).isNotNull();
36+
}
37+
}

src/it/java/org/seedstack/validation/internal/ValidationPluginIT.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,29 @@
77
*/
88
package org.seedstack.validation.internal;
99

10-
import org.seedstack.validation.ValidationException;
1110
import org.assertj.core.api.Assertions;
1211
import org.junit.Test;
1312
import org.junit.runner.RunWith;
1413
import org.seedstack.seed.it.SeedITRunner;
1514
import org.seedstack.validation.internal.pojo.*;
1615

1716
import javax.inject.Inject;
17+
import javax.validation.ConstraintViolationException;
1818

1919
@RunWith(SeedITRunner.class)
2020
public class ValidationPluginIT {
2121

2222
@Inject
23-
DummyServiceParamValidation serviceParam;
23+
ParamValidation serviceParam;
2424

2525
@Inject
26-
DummyServiceFieldValidationOK serviceField;
26+
FieldValidationOK serviceField;
2727

2828
@Inject
29-
DummyServiceParamReturnType serviceReturnType;
29+
ParamReturnType serviceReturnType;
3030

3131
@Inject
32-
DummyServiceWithoutValidation serviceWithoutValidation;
32+
WithoutValidation serviceWithoutValidation;
3333

3434
@Test
3535
public void services_are_well_injected() {
@@ -44,7 +44,7 @@ public void param_not_null_validations_ok() {
4444
serviceParam.validateNotNullParam("");
4545
}
4646

47-
@Test(expected = ValidationException.class)
47+
@Test(expected = ConstraintViolationException.class)
4848
public void param_not_null_validations_are_well_intercepted() {
4949
serviceParam.validateNotNullParam(null);
5050
}
@@ -55,7 +55,7 @@ public void param_valid_validations_ok() {
5555
}
5656

5757

58-
@Test(expected = ValidationException.class)
58+
@Test(expected = ConstraintViolationException.class)
5959
public void param_valid_validations_are_well_intercepted() {
6060
serviceParam.validateValidParam(new Pojo(Pojo.State.INVALID));
6161
}
@@ -65,7 +65,7 @@ public void not_null_return_validations_ok() {
6565
serviceReturnType.validateNotNullReturn("");
6666
}
6767

68-
@Test(expected = ValidationException.class)
68+
@Test(expected = ConstraintViolationException.class)
6969
public void not_null_return_validations_are_well_intercepted() {
7070
serviceReturnType.validateNotNullReturn(null);
7171
}
@@ -75,7 +75,7 @@ public void valid_return_validations_ok() {
7575
serviceReturnType.validateValidReturn(Pojo.State.VALID);
7676
}
7777

78-
@Test(expected = ValidationException.class)
78+
@Test(expected = ConstraintViolationException.class)
7979
public void valid_return_validations_are_well_intercepted() {
8080
serviceReturnType.validateValidReturn(Pojo.State.INVALID);
8181
}

src/it/java/org/seedstack/validation/internal/ValidationServiceIT.java

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,17 @@
77
*/
88
package org.seedstack.validation.internal;
99

10-
import org.seedstack.validation.ValidationException;
11-
import org.seedstack.validation.ValidationService;
12-
import org.seedstack.validation.internal.pojo.Pojo;
13-
import org.seedstack.validation.internal.pojo.PojoWithDeepValidation;
1410
import org.assertj.core.api.Assertions;
1511
import org.junit.Test;
1612
import org.junit.runner.RunWith;
1713
import org.seedstack.seed.it.SeedITRunner;
14+
import org.seedstack.validation.internal.pojo.Bean;
15+
import org.seedstack.validation.internal.pojo.MyImpl;
16+
import org.seedstack.validation.internal.pojo.Pojo;
17+
import org.seedstack.validation.internal.pojo.PojoWithDeepValidation;
1818

1919
import javax.inject.Inject;
20-
import javax.validation.ConstraintViolation;
21-
import java.util.Set;
20+
import javax.validation.ConstraintViolationException;
2221

2322
import static org.assertj.core.api.Assertions.assertThat;
2423

@@ -29,35 +28,54 @@ public class ValidationServiceIT {
2928
ValidationService validationService;
3029

3130
@Test
32-
public void validation_service_is_well_injected() {
31+
public void validationServiceIsInjected() {
3332
assertThat(validationService).isNotNull();
3433
}
3534

3635
@Test
37-
public void validation_service_work_nominally() {
36+
public void throwsExceptionOnInvalidPojo() {
3837
try {
3938
validationService.staticallyHandle(new Pojo(Pojo.State.INVALID));
40-
41-
Assertions.failBecauseExceptionWasNotThrown(ValidationException.class);
42-
} catch (ValidationException validationException) {
43-
validationException.printStackTrace();
44-
Set<ConstraintViolation<?>> constraintViolations = validationException.get(ValidationService.JAVAX_VALIDATION_CONSTRAINT_VIOLATIONS);
45-
46-
assertThat(constraintViolations.size()).isEqualTo(3);
39+
Assertions.failBecauseExceptionWasNotThrown(ConstraintViolationException.class);
40+
} catch (ConstraintViolationException exception) {
41+
assertThat(exception.getConstraintViolations()).hasSize(3);
4742
}
4843
}
4944

5045
@Test
51-
public void validation_on_cascade() {
46+
public void doNothingOnValidPojo() {
47+
validationService.staticallyHandle(new Pojo(Pojo.State.VALID));
48+
}
49+
50+
@Test
51+
public void throwsExceptionOnDeepValidation() {
5252
try {
5353
validationService.staticallyHandle(new PojoWithDeepValidation());
54+
Assertions.failBecauseExceptionWasNotThrown(ConstraintViolationException.class);
55+
} catch (ConstraintViolationException exception) {
56+
assertThat(exception.getConstraintViolations()).hasSize(4);
57+
}
58+
}
5459

55-
Assertions.failBecauseExceptionWasNotThrown(ValidationException.class);
56-
} catch (ValidationException validationException) {
57-
validationException.printStackTrace();
58-
Set<ConstraintViolation<?>> constraintViolations = validationException.get(ValidationService.JAVAX_VALIDATION_CONSTRAINT_VIOLATIONS);
60+
@Test
61+
public void validationShouldWorkOnInterface() {
62+
try {
63+
validationService.staticallyHandle(new MyImpl());
64+
Assertions.failBecauseExceptionWasNotThrown(ConstraintViolationException.class);
65+
} catch (ConstraintViolationException exception) {
66+
assertThat(exception.getConstraintViolations()).hasSize(1);
67+
}
68+
}
5969

60-
assertThat(constraintViolations.size()).isEqualTo(4);
70+
@Test
71+
public void validationShouldWorkOnGetter() {
72+
try {
73+
Bean candidate = new Bean();
74+
candidate.setHour(25);
75+
validationService.staticallyHandle(candidate);
76+
Assertions.failBecauseExceptionWasNotThrown(ConstraintViolationException.class);
77+
} catch (ConstraintViolationException exception) {
78+
assertThat(exception.getConstraintViolations()).hasSize(1);
6179
}
6280
}
6381
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* Copyright (c) 2013-2015, The SeedStack authors <http://seedstack.org>
3+
*
4+
* This Source Code Form is subject to the terms of the Mozilla Public
5+
* License, v. 2.0. If a copy of the MPL was not distributed with this
6+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
7+
*/
8+
package org.seedstack.validation.internal.pojo;
9+
10+
import javax.validation.constraints.Max;
11+
12+
public class Bean {
13+
14+
private int hour;
15+
16+
@Max(24)
17+
public int getHour() {
18+
return hour;
19+
}
20+
21+
public void setHour(int hour) {
22+
this.hour = hour;
23+
}
24+
}

src/it/java/org/seedstack/validation/internal/pojo/DummyServiceFieldValidation.java renamed to src/it/java/org/seedstack/validation/internal/pojo/FieldValidationKO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414

1515
@ITBind
16-
public class DummyServiceFieldValidation {
16+
public class FieldValidationKO {
1717

1818
@NotNull
1919
private Object param;

src/it/java/org/seedstack/validation/internal/pojo/DummyServiceFieldValidationOK.java renamed to src/it/java/org/seedstack/validation/internal/pojo/FieldValidationOK.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
import javax.validation.constraints.NotNull;
1313

1414

15-
1615
@ITBind
17-
public class DummyServiceFieldValidationOK {
16+
public class FieldValidationOK {
1817

1918
@NotNull
2019
private Object param = new Object();

0 commit comments

Comments
 (0)