001 /* 002 * Copyright 2002-2004 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 005 * use this file except in compliance with the License. You may obtain a copy of 006 * the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 013 * License for the specific language governing permissions and limitations under 014 * the License. 015 */ 016 package org.springframework.rules.metadata; 017 018 import junit.framework.TestCase; 019 020 /** 021 * @author Oliver Hutchison 022 */ 023 public class AttributesRulesSourceTests extends TestCase { 024 025 public void testLoadsAttributes() { 026 // Attributes attributes = new CommonsAttributes(); 027 // assertTrue("You must compile the attributes to run this test", 028 // attributes.getAttributes(Foo.class).size() == 1); 029 // AttributesRulesSource ars = new AttributesRulesSource(attributes); 030 // 031 // Rules rules = ars.getRules(Foo.class); 032 // 033 // CompoundPropertyConstraint pc1 = (CompoundPropertyConstraint) rules.getPropertyConstraint("property1"); 034 // assertNotNull(pc1); 035 // assertEquals(3, ((CompoundConstraint) pc1.getPredicate()).size()); 036 // assertContains(pc1, Required.class); 037 // assertContains(pc1, StringLengthConstraint.class); 038 // assertContains(pc1, Not.class); 039 // 040 // PropertyConstraint pc2 = rules.getPropertyConstraint("property2"); 041 // assertNull(pc2); 042 } 043 044 // private void assertContains(CompoundPropertyConstraint cpc, Class constraintClass) { 045 // CompoundConstraint cc = (CompoundConstraint) cpc.getPredicate(); 046 // for (int i = 0; i < cc.size(); i++) { 047 // Constraint c = cc.get(i); 048 // 049 // if (c.getClass().equals(constraintClass)) { 050 // return; 051 // } 052 // if (c instanceof PropertyValueConstraint) { 053 // c = ((PropertyValueConstraint) c).getConstraint(); 054 // if (c.getClass().equals(constraintClass)) { 055 // return; 056 // } 057 // } 058 // } 059 // fail("Could not find constraint with class [" + constraintClass + "]"); 060 // } 061 062 /** 063 * @@Object() 064 */ 065 public static class Foo { 066 067 private String property1; 068 069 /** 070 * @@Object() 071 * 072 * @@StringLengthConstraint(255) 073 * @@Not(new PropertiesConstraint("property1", new EqualTo(), 074 * "property2")) 075 */ 076 public String getProperty1() { 077 return property1; 078 } 079 080 /** 081 * @@Required() 082 */ 083 public void setProperty1(String property1) { 084 this.property1 = property1; 085 } 086 087 public String getProperty2() { 088 return ""; 089 } 090 091 public void setProperty2(String property2) { 092 } 093 } 094 }