001: package org.strecks.validator.factory;
002:
003: import java.lang.annotation.Annotation;
004: import java.lang.reflect.Method;
005: import java.util.List;
006:
007: import org.strecks.util.ReflectHelper;
008: import org.strecks.validator.Validator;
009: import org.strecks.validator.internal.ValidatorWrapper;
010: import org.strecks.validator.message.DefaultMessageParameterProvider;
011: import org.strecks.validator.message.MessageParameterProvider;
012: import org.testng.annotations.Test;
013:
014: /**
015: * @author Phil Zoio
016: */
017: public class TestBaseFactory {
018:
019: @Test
020: public void testGetProvider() {
021:
022: BaseFactory factory = new ValidateRequiredFactory();
023: assert factory.newMessageParameterProvider() instanceof DefaultMessageParameterProvider;
024:
025: factory = new MyFactory();
026: assert factory.newMessageParameterProvider() instanceof MyMessageParamProvider;
027:
028: }
029:
030: @Test
031: public void testUseConvertedValue() {
032:
033: BaseFactory factory = new ValidateRequiredFactory();
034: assert false == factory.shouldUseConvertedValue(
035: new GenericValidator(), ReflectHelper.getMethod(this ,
036: "stringMethod"));
037: assert true == factory.shouldUseConvertedValue(
038: new IntegerValidator(), ReflectHelper.getMethod(this ,
039: "stringMethod"));
040: assert false == factory.shouldUseConvertedValue(
041: new StringValidator(), ReflectHelper.getMethod(this ,
042: "stringMethod"));
043: assert false == factory.shouldUseConvertedValue(
044: new GenericValidator(), ReflectHelper.getMethod(this ,
045: "integerMethod"));
046: assert false == factory.shouldUseConvertedValue(
047: new NumberValidator(), ReflectHelper.getMethod(this ,
048: "integerMethod"));
049: assert true == factory.shouldUseConvertedValue(
050: new StringValidator(), ReflectHelper.getMethod(this ,
051: "integerMethod"));
052:
053: }
054:
055: public String stringMethod() {
056: return null;
057: }
058:
059: public Integer integerMethod() {
060: return null;
061: }
062:
063: }
064:
065: class GenericValidator implements Validator {
066:
067: public boolean validate(Object value) {
068: return false;
069: }
070:
071: }
072:
073: class IntegerValidator implements Validator<Integer> {
074:
075: public boolean validate(Integer value) {
076: return false;
077: }
078:
079: }
080:
081: class StringValidator implements Validator<String> {
082:
083: public boolean validate(String value) {
084: return false;
085: }
086:
087: }
088:
089: class NumberValidator implements Validator<Number> {
090:
091: public boolean validate(Number value) {
092: return false;
093: }
094:
095: }
096:
097: class MyMessageParamProvider implements MessageParameterProvider {
098:
099: public Object[] getParameters(Object value, List<Object> params) {
100: return null;
101: }
102:
103: }
104:
105: class MyFactory extends BaseFactory {
106:
107: public ValidatorWrapper create(Annotation annot, Method getter) {
108: return null;
109: }
110:
111: @Override
112: protected MessageParameterProvider getMessageParameterProvider() {
113: return new MyMessageParamProvider();
114: }
115:
116: }
|