001    package org.hackystat.sensorbase.resource.projects.jaxb;
002    
003    import static org.junit.Assert.assertEquals;
004    import static org.junit.Assert.assertFalse;
005    import static org.junit.Assert.assertNull;
006    import static org.junit.Assert.assertTrue;
007    
008    import org.junit.Test;
009    
010    /**
011     * Test hand-coded extensions to JAXB-generated classes to ensure that they exist
012     * and function properly in the event that the JAXB classes are re-generated.
013     * @author Philip Johnson
014     *
015     */
016    public class TestJAXBExtensions {
017      
018      /**
019       * Test to ensure that the extensions to the Property JAXB class are present.  
020       */
021      @Test 
022      public void testProjectExtensions() {
023        Project project = new Project();
024        project.addProperty("foo", "bar");
025        Property property = project.findProperty("foo");
026        assertEquals("Testing foo", "foo", property.getKey());
027        assertEquals("Testing bar", "bar", property.getValue());
028        assertNull("Testing unknown find", project.findProperty("bar")); 
029        
030        // isMemberOrOwner
031        project.setOwner("foo");
032        assertTrue("Testing true isOwnerOrMember", project.isMemberOrOwner("foo"));
033        assertFalse("Testing false isOwnerOrMember", project.isMemberOrOwner("bar"));
034        
035        // addUriPattern and addInvitation.
036        project.addUriPattern("*/foo/*");
037        project.addInvitation("foo@bar.com");
038      }
039    }