Skip to content

Commit

Permalink
[#109] more robust Validation.error() and Validation.errors()
Browse files Browse the repository at this point in the history
  • Loading branch information
mbknor committed Mar 27, 2011
1 parent a851653 commit 1fe4f36
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 2 deletions.
4 changes: 2 additions & 2 deletions framework/src/play/data/validation/Validation.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public static boolean hasErrors() {
*/
public static Error error(String field) {
for (Error error : current.get().errors) {
if (error.key.equals(field)) {
if (error.key!=null && error.key.equals(field)) {
return error;
}
}
Expand All @@ -97,7 +97,7 @@ public static Error error(String field) {
public static List<Error> errors(String field) {
List<Error> errors = new ArrayList<Error>();
for (Error error : current.get().errors) {
if (error.key.equals(field)) {
if (error.key!=null && error.key.equals(field)) {
errors.add(error);
}
}
Expand Down
37 changes: 37 additions & 0 deletions framework/test-src/play/data/validation/ValidationTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package play.data.validation;

import org.junit.Test;
import play.i18n.MessagesBuilder;

import static org.fest.assertions.Assertions.assertThat;

public class ValidationTest {

@Test
public void verifyError() {

new MessagesBuilder().build();

Validation.current.set(new Validation());

final String field = "f1";

assertThat(Validation.error(field)).isNull();
assertThat(Validation.errors(field)).isEmpty();

final String errorMsg = "My errorMessage";

Validation.addError(field, errorMsg);

assertThat( Validation.error(field).message).isEqualTo(errorMsg);
assertThat(Validation.errors(field)).containsOnly(Validation.error(field));

// ticket [#109] - add an error with null-key
Validation.addError(null, errorMsg);
// make sure this null key does not break stuff
assertThat( Validation.error(field).message).isEqualTo(errorMsg);
assertThat(Validation.errors(field)).containsOnly(Validation.error(field));

}

}
16 changes: 16 additions & 0 deletions framework/test-src/play/i18n/MessagesBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package play.i18n;

import java.util.Properties;

/**
* Used to prepare Messages (static) to work while testing
*/
public class MessagesBuilder {


public Properties defaults = new Properties();

public void build() {
Messages.defaults = defaults;
}
}

0 comments on commit 1fe4f36

Please sign in to comment.