package org.objectstyle.wolips.bindings.tests; import java.io.StringReader; import java.util.HashMap; import java.util.List; import java.util.Map; import junit.framework.TestCase; import org.objectstyle.wolips.bindings.api.ApiModel; import org.objectstyle.wolips.bindings.api.ApiModelException; import org.objectstyle.wolips.bindings.api.Validation; public class ValidationTestCase extends TestCase { public void testPierreValidationFailure() throws ApiModelException { String api = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<wodefinitions>" + " <wo class=\"SPRegistrationErrorConditional\" wocomponentcontent=\"true\">" + " <binding name=\"attributeTypeName\"/>" + " <binding name=\"addressType\"/>" + " <binding name=\"key\"/>" + " <validation message=\"The error conditional must include either an "attributeTypeName" or an "addressType" / "key" pair.\">" + " <and>" + " <unbound name=\"attributeTypeName\"/>" + " <or>" + " <unbound name=\"addressType\"/>" + " <unbound name=\"key\"/>" + " </or>" + " </and>" + " </validation>" + " </wo>" + "</wodefinitions>"; StringReader sr = new StringReader(api); ApiModel model = new ApiModel(sr); Map<String, String> bindings = new HashMap<String, String>(); bindings.put("attributeTypeName", "\"value\""); List<Validation> failedValidations = model.getWo().getFailedValidations(bindings); assertEquals(0, failedValidations.size()); bindings.clear(); bindings.put("addressType", "currentAddressType"); bindings.put("key", "currentKey"); failedValidations = model.getWo().getFailedValidations(bindings); assertEquals(0, failedValidations.size()); for (Validation validation : failedValidations) { System.out.println("ValidationTestCase.testTest: " + validation.getMessage()); } } }