You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2007/03/29 20:58:05 UTC

svn commit: r523838 - in /incubator/graffito/trunk/jcr/jcr-mapping/src: dtd/ java/org/apache/portals/graffito/jcr/mapper/model/ java/org/apache/portals/graffito/jcr/persistence/ java/org/apache/portals/graffito/jcr/persistence/impl/ java/org/apache/por...

Author: clombart
Date: Thu Mar 29 13:58:03 2007
New Revision: 523838

URL: http://svn.apache.org/viewvc?view=rev&rev=523838
Log:
working on GRFT-84. add more unit test

Modified:
    incubator/graffito/trunk/jcr/jcr-mapping/src/dtd/graffito-jcr-mapping.dtd
    incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/mapper/model/FieldDescriptor.java
    incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
    incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
    incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/objectconverter/impl/SimpleFieldsHelper.java
    incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-jcrnodetypes.xml
    incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-testdigester.xml
    incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/nodetypes/custom_nodetypes.xml
    incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/mapper/DigesterMapperImplTest.java
    incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrNodeTypeTest.java
    incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrPropertyTest.java

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/dtd/graffito-jcr-mapping.dtd
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/dtd/graffito-jcr-mapping.dtd?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/dtd/graffito-jcr-mapping.dtd (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/dtd/graffito-jcr-mapping.dtd Thu Mar 29 13:58:03 2007
@@ -63,6 +63,8 @@
     * path : specified if the field is the object path
     * uuid : specified if the field is the object uuid
     * converter : AtomicTypeConverter class name to used for this field descriptor. If not defined, a default one is provided by default in function of the field type
+    * jcrDefaultValue : if the field is null, this default value will be used, optional
+    * jcrValueConstraints : a comma separated list of acceptable values, optional
     * jcrType: specifies the JCR property type (supported jcr property types: STRING, DATE, LONG, DOUBLE, BOOLEAN), optional
     * jcrAutoCreated: specifies if this JCR property will be autocreated (true/false / default is false), optional
     * jcrMandatory: specifies if this JCR property is mandatory (true/false / default is false), optional
@@ -80,6 +82,8 @@
 	path (true | false) "false"
 	uuid (true | false) "false"
 	converter CDATA #IMPLIED
+	jcrDefaultValue CDATA #IMPLIED
+	jcrValueConstraints CDATA #IMPLIED 
     jcrType (String | Date | Long | Double | Boolean | Binary) #IMPLIED
     jcrAutoCreated (true | false) "false"
     jcrMandatory (true | false) "false"

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/mapper/model/FieldDescriptor.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/mapper/model/FieldDescriptor.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/mapper/model/FieldDescriptor.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/mapper/model/FieldDescriptor.java Thu Mar 29 13:58:03 2007
@@ -44,6 +44,8 @@
     private boolean path;
     private boolean uuid;
     private String converter;
+    private String jcrDefaultValue; 
+    private String[] jcrValueConstraints = new String[0];
    
 
     /**
@@ -279,8 +281,27 @@
     public void setJcrMultiple(boolean value) {
         this.jcrMultiple = value;
     }
+    
+    public String getJcrDefaultValue() {
+		return jcrDefaultValue;
+	}
 
-    /**
+	public void setJcrDefaultValue(String defaultValue) {
+		this.jcrDefaultValue = defaultValue;
+	}
+
+	public String[] getJcrValueConstraints() {
+		return jcrValueConstraints;
+	}
+
+	public void setJcrValueConstraints(String[] jcrValueConstraints) {
+        if (null != jcrValueConstraints && jcrValueConstraints.length == 1) {
+        	this.jcrValueConstraints = jcrValueConstraints[0].split(" *, *");
+        }
+
+	}
+
+	/**
      * Initialize the fieldTypeClass.
      *
      * @return the primitive class or the class accordign to fieldType

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java Thu Mar 29 13:58:03 2007
@@ -340,5 +340,11 @@
      * @return The query manager reference
      */
     public QueryManager getQueryManager();
+    
+    /**
+     * Refrsh the underlying jcr session (see the jcr spec)
+     * @param keepChanges
+     */
+    public void refresh(boolean keepChanges);
         
 }

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java Thu Mar 29 13:58:03 2007
@@ -106,6 +106,7 @@
                                   Session session) {
         this.mapper = mapper;
         this.session = session;
+        
         this.objectConverter = new ObjectConverterImpl(mapper, new DefaultAtomicTypeConverterProvider());
         this.queryManager = queryManager;
     }
@@ -1068,8 +1069,22 @@
     /**
      * @return The JCR Session
      */
-    public Session getSession() {
-        return this.session;
+    public Session getSession() {       
+    	return this.session;
     }
+
+	public void refresh(boolean keepChanges) {
+		try 
+		{
+		    session.refresh(keepChanges);
+		}
+        catch(RepositoryException e) {
+            throw new PersistenceException("Cannot refresh current session ", e);
+        }
+
+		
+	}
+    
+    
 
 }

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/objectconverter/impl/SimpleFieldsHelper.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/objectconverter/impl/SimpleFieldsHelper.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/objectconverter/impl/SimpleFieldsHelper.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/objectconverter/impl/SimpleFieldsHelper.java Thu Mar 29 13:58:03 2007
@@ -196,6 +196,15 @@
 		{ // DO NOT TRY TO WRITE PROTECTED  PROPERTIES
 			
 			Object fieldValue = ReflectionUtils.getNestedProperty(object, fieldName);
+			// if the value and if there is a default value for this field => set this default value
+			String defaultValue = fieldDescriptor.getJcrDefaultValue();
+			if ((fieldValue == null) && (defaultValue != null))
+			{
+				//Not sure that we have the attribute with the default value in all use cases				
+				ReflectionUtils.setNestedProperty(object, fieldName, defaultValue);
+				fieldValue = ReflectionUtils.getNestedProperty(object, fieldName);
+				
+			}
 			AtomicTypeConverter converter = getAtomicTypeConverter(fieldDescriptor, object, fieldName);
 			Value value = converter.getValue(valueFactory, fieldValue);
 	

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-jcrnodetypes.xml
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-jcrnodetypes.xml?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-jcrnodetypes.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-jcrnodetypes.xml Thu Mar 29 13:58:03 2007
@@ -34,9 +34,14 @@
     <class-descriptor className="org.apache.portals.graffito.jcr.testmodel.PropertyTest" jcrNodeType="graffito:propertytest" >
 		<field-descriptor fieldName="path" path="true" />
 		<field-descriptor fieldName="requiredProp" jcrName="graffito:requiredProp" />
-		<field-descriptor fieldName="requiredWithConstraintsProp" jcrName="graffito:requiredWithConstraintsProp" />
-		<field-descriptor fieldName="autoCreatedProp" jcrName="graffito:autoCreatedProp" />
+		<field-descriptor fieldName="requiredWithConstraintsProp" jcrName="graffito:requiredWithConstraintsProp" jcrValueConstraints="abc,def,ghi" />
+		<field-descriptor fieldName="autoCreatedProp" jcrName="graffito:autoCreatedProp" jcrDefaultValue="aaa" />
+		<field-descriptor fieldName="autoCreatedWithConstraintsProp" jcrName="graffito:autoCreatedWithConstraintsProp" jcrDefaultValue="ccc" jcrValueConstraints="bbb,ccc,ddd"/>
+		<field-descriptor fieldName="mandatoryProp" jcrName="graffito:mandatoryProp" jcrMandatory="true" />				
+		<field-descriptor fieldName="mandatoryWithConstaintsProp" jcrName="graffito:mandatoryWithConstaintsProp" jcrMandatory="true" jcrValueConstraints="xx,yy"/>						
+		
 	</class-descriptor>	
+	
 	<!-- class-descriptor className="org.apache.portals.graffito.jcr.testmodel.PropertyTest" jcrNodeType="graffito:propertytest" >
 		<field-descriptor fieldName="path" path="true" />
 		<field-descriptor fieldName="requiredProp" jcrName="graffito:requiredProp" />

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-testdigester.xml
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-testdigester.xml?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-testdigester.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/jcrmapping-testdigester.xml Thu Mar 29 13:58:03 2007
@@ -98,4 +98,5 @@
 		<field-descriptor fieldName="uuid" uuid="true" />
         <field-descriptor fieldName="stringData" jcrName="stringData" />
 	</class-descriptor>
+	
 </graffito-jcr>

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/nodetypes/custom_nodetypes.xml
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/nodetypes/custom_nodetypes.xml?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/nodetypes/custom_nodetypes.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/test-config/nodetypes/custom_nodetypes.xml Thu Mar 29 13:58:03 2007
@@ -183,11 +183,30 @@
 	        <valueConstraint>ghi</valueConstraint>
 	 	</valueConstraints>     
      </propertyDefinition>
-     <propertyDefinition name="graffito:autoCreatedProp" requiredType="String" autoCreated="true" mandatory="false" onParentVersion="INITIALIZE" protected="false" multiple="false" >   
+     <propertyDefinition name="graffito:autoCreatedProp" requiredType="String" autoCreated="true" mandatory="false" onParentVersion="COPY" protected="false" multiple="false" >   
             <defaultValues>
                 <defaultValue>autoCreatePropValue</defaultValue>
             </defaultValues>
      </propertyDefinition>
+     <propertyDefinition name="graffito:autoCreatedWithConstraintsProp" requiredType="String" autoCreated="true" mandatory="false" onParentVersion="COPY" protected="false" multiple="false" >   
+        <defaultValues>
+            <defaultValue>ccc</defaultValue>
+        </defaultValues>
+     	<valueConstraints>
+        	<valueConstraint>bbb</valueConstraint>
+	        <valueConstraint>ccc</valueConstraint>
+	        <valueConstraint>ddd</valueConstraint>
+	 	</valueConstraints>     
+            
+     </propertyDefinition>
+     <propertyDefinition name="graffito:mandatoryProp" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false" />     
+     <propertyDefinition name="graffito:mandatoryWithConstaintsProp" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false" multiple="false" >     
+     	<valueConstraints>
+        	<valueConstraint>xx</valueConstraint>
+	        <valueConstraint>yy</valueConstraint>
+	 	</valueConstraints>      
+     </propertyDefinition>
+     
    </nodeType> 
 </nodeTypes>
 

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/mapper/DigesterMapperImplTest.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/mapper/DigesterMapperImplTest.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/mapper/DigesterMapperImplTest.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/mapper/DigesterMapperImplTest.java Thu Mar 29 13:58:03 2007
@@ -31,6 +31,7 @@
 import org.apache.portals.graffito.jcr.testmodel.A;
 import org.apache.portals.graffito.jcr.testmodel.B;
 import org.apache.portals.graffito.jcr.testmodel.C;
+import org.apache.portals.graffito.jcr.testmodel.PropertyTest;
 import org.apache.portals.graffito.jcr.testmodel.inheritance.Ancestor;
 import org.apache.portals.graffito.jcr.testmodel.inheritance.AnotherDescendant;
 import org.apache.portals.graffito.jcr.testmodel.inheritance.Descendant;
@@ -147,11 +148,16 @@
 	 */
 	public void testMapperOptionalProperties() {
 		try {
-			Mapper mapper = new DigesterMapperImpl("./src/test-config/jcrmapping.xml");
+
+			String[] files = { "./src/test-config/jcrmapping.xml",
+					           "./src/test-config/jcrmapping-jcrnodetypes.xml"};			
+
+			Mapper mapper = new DigesterMapperImpl(files);
+			
+			
 			assertNotNull("Mapper is null", mapper);
 
-			ClassDescriptor classDescriptor = mapper
-					.getClassDescriptorByClass(B.class);
+			ClassDescriptor classDescriptor = mapper.getClassDescriptorByClass(B.class);
 			assertNotNull("ClassDescriptor is null", classDescriptor);
 			assertTrue("Invalid classname", classDescriptor.getClassName()
 					.equals(B.class.getName()));
@@ -203,6 +209,19 @@
 			assertFalse(collectionDescriptor.isJcrProtected());
 			assertFalse(collectionDescriptor.isJcrSameNameSiblings());
 			assertEquals(collectionDescriptor.getJcrOnParentVersion(), "IGNORE");
+			
+			classDescriptor = mapper.getClassDescriptorByClass(PropertyTest.class);
+			assertNotNull(classDescriptor);
+			FieldDescriptor fieldDescriptor = classDescriptor.getFieldDescriptor("requiredWithConstraintsProp");
+			assertNotNull(fieldDescriptor.getJcrValueConstraints());
+			assertTrue("Invalid constaint", fieldDescriptor.getJcrValueConstraints()[0].equals("abc") );
+			assertTrue("Invalid constaint", fieldDescriptor.getJcrValueConstraints()[1].equals("def") );
+			assertTrue("Invalid constaint", fieldDescriptor.getJcrValueConstraints()[2].equals("ghi") );
+			
+			fieldDescriptor = classDescriptor.getFieldDescriptor("autoCreatedProp");
+			assertNotNull(fieldDescriptor.getJcrDefaultValue());
+			assertTrue("Invalid default value", fieldDescriptor.getJcrDefaultValue().equals("aaa") );
+			
 		} catch (JcrMappingException e) {
 			e.printStackTrace();
 			fail("Impossible to retrieve the converter " + e);

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrNodeTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrNodeTypeTest.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrNodeTypeTest.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrNodeTypeTest.java Thu Mar 29 13:58:03 2007
@@ -71,26 +71,6 @@
 			PersistenceManager persistenceManager = this.getPersistenceManager();
 
 			//---------------------------------------------------------------------------------------------------------
-			// Insert a  folder (class mapped to jcr:folder)
-			//---------------------------------------------------------------------------------------------------------			
-//            Folder folder = new Folder();
-//            folder.setPath("/folder1");            
-//                        
-//            persistenceManager.insert(folder); 
-//           
-//			persistenceManager.save();
-			
-			
-			//---------------------------------------------------------------------------------------------------------
-			// Retrieve a document object
-			//---------------------------------------------------------------------------------------------------------						
-//			folder = (Folder) persistenceManager.getObject( "/folder1");
-//			assertNotNull("folder is null", folder);			
-//			assertEquals("Document path is invalid", folder.getPath(), "/folder1");
-//			System.out.println("Folder calendar: " + folder.getCreationDate());	// The prop is autocreated 
-			
-
-			//---------------------------------------------------------------------------------------------------------
 			// Insert a  folder (class mapped to jcr:folder) with one file (class mapped to jcr:file)
 			//---------------------------------------------------------------------------------------------------------			
             Resource resource = new Resource();

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrPropertyTest.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrPropertyTest.java?view=diff&rev=523838&r1=523837&r2=523838
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrPropertyTest.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/jcrnodetype/PersistenceManagerJcrPropertyTest.java Thu Mar 29 13:58:03 2007
@@ -63,15 +63,30 @@
 		{
 			PersistenceManager persistenceManager = this.getPersistenceManager();
 			//---------------------------------------------------------------------------------------------------------
-			// Insert 
+			// Insert without the mandatory field
 			//---------------------------------------------------------------------------------------------------------			
 			
             PropertyTest propertyTest = new PropertyTest();
             propertyTest.setPath("/test");
             propertyTest.setRequiredProp("requiredPropValue");
             propertyTest.setRequiredWithConstraintsProp("abc");
-            propertyTest.setAutoCreatedProp("autoCreatePropValue");
             
+            try 
+            {
+                 persistenceManager.insert(propertyTest);
+                 fail("Incorrect insert operation - the mandatory fields have no value");
+            }
+            catch(Exception e)
+            {
+               // Normal behaviour 	
+            	persistenceManager.refresh(false);
+            }
+            
+			//---------------------------------------------------------------------------------------------------------
+			// Insert with the mandatory fields
+			//---------------------------------------------------------------------------------------------------------			
+            propertyTest.setMandatoryProp("mandatoryValue");
+            propertyTest.setMandatoryWithConstaintsProp("xx");
             persistenceManager.insert(propertyTest);
             persistenceManager.save();
             
@@ -81,29 +96,62 @@
             propertyTest = (PropertyTest) persistenceManager.getObject("/test");
             assertTrue("Invalid required property", propertyTest.getRequiredProp().equals("requiredPropValue"));
             assertTrue("Invalid required property with constraints", propertyTest.getRequiredWithConstraintsProp().equals("abc"));            
-            assertTrue("Invalid autocreated property", propertyTest.getAutoCreatedProp().equals("autoCreatePropValue"));            
+            assertTrue("Invalid autocreated property", propertyTest.getAutoCreatedProp().equals("aaa")); 
+            assertTrue("Invalid autocreated property", propertyTest.getAutoCreatedWithConstraintsProp().equals("ccc"));
             
             //---------------------------------------------------------------------------------------------------------
 			// update the property requiredWithConstraintsProp with bad value
 			//---------------------------------------------------------------------------------------------------------			
+            propertyTest = (PropertyTest) persistenceManager.getObject("/test");
             propertyTest.setRequiredWithConstraintsProp("invalid value");
             try 
             {
             	persistenceManager.update(propertyTest);
             	persistenceManager.save();
-            	fail("Invalid value was accepted");
+            	fail("Invalid value was accepted for requiredWithConstraintsProp");
             }
             catch(Exception e)
+            {                	
+               // Do nothing - normal behaviour, the value               	
+            }
+            
+            //---------------------------------------------------------------------------------------------------------
+			// update the property AutoCreatedWithConstraintsProp with bad value
+			//---------------------------------------------------------------------------------------------------------			
+            propertyTest = (PropertyTest) persistenceManager.getObject("/test");
+            propertyTest.setAutoCreatedWithConstraintsProp("invalid value");
+            try 
             {
-                e.printStackTrace();	
-               // Do nothing - normal behaviour, the value  	
+            	persistenceManager.update(propertyTest);
+            	persistenceManager.save();
+            	fail("Invalid value was accepted for autoCreatedWithConstraintsProp ");
+            }
+            catch(Exception e)
+            {             	
+               // Do nothing - normal behaviour, the value is not valid
+               	
             }
             
+            //---------------------------------------------------------------------------------------------------------
+			// update the property mandatoryWithConstaintsProp with bad value
+			//---------------------------------------------------------------------------------------------------------			
+            propertyTest = (PropertyTest) persistenceManager.getObject("/test");
+            propertyTest.setMandatoryWithConstaintsProp("yy");
+            try 
+            {
+            	persistenceManager.update(propertyTest);
+            	persistenceManager.save();
+            	fail("Invalid value was accepted for mandatoryWithConstaintsProp");
+            }
+            catch(Exception e)
+            {                	
+                e.printStackTrace();
+            }            
 			
 			
 		}
 		catch (Exception e)
-		{
+		{			
 			e.printStackTrace();
 			fail();
 		}