All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.test.org.sakaiproject.entitybroker.EntityReferenceTest Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2007-2008 The Apereo Foundation
 *
 * Licensed under the Educational Community License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *             http://opensource.org/licenses/ecl2
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * EntityReferenceTest.java - 2007 Jul 21, 2007 3:11:31 PM - entity-broker - AZ
 */

package org.sakaiproject.entitybroker;

import junit.framework.TestCase;

import org.sakaiproject.entitybroker.EntityReference;

/**
 * Testing the Entity Reference static methods
 * 
 * @author Aaron Zeckoski ([email protected])
 */
public class EntityReferenceTest extends TestCase {

   private final String PREFIX1 = "prefix1";
   private static final String ID1 = "111";
   private final String REF1 = EntityReference.SEPARATOR + PREFIX1 + EntityReference.SEPARATOR + ID1;
   private final String INPUT_REF1 = REF1;

   private final String PREFIX2 = "longprefix2";
   private static final String ID2 = "222222";
   private final String REF2 = EntityReference.SEPARATOR + PREFIX2 + EntityReference.SEPARATOR + ID2;
   private final String INPUT_REF2 = EntityReference.SEPARATOR + PREFIX2 + EntityReference.SEPARATOR + ID2 + EntityReference.SEPARATOR + "extrajunk";

   private final String PREFIX3 = "prefix3";
   private final String REF3 = EntityReference.SEPARATOR + PREFIX3;
   private final String INPUT_REF3 = REF3;

   private final String INVALID_REF = "invalid_reference-1";



   /**
    * Test method for get separator position
    */
   public void testGetSeparatorPos() {
      String reference = "/1234/678/01234/6789/12345";
      assertEquals(0, EntityReference.getSeparatorPos(reference, 0));
      assertEquals(5, EntityReference.getSeparatorPos(reference, 1));
      assertEquals(9, EntityReference.getSeparatorPos(reference, 2));
      assertEquals(15, EntityReference.getSeparatorPos(reference, 3));
      assertEquals(20, EntityReference.getSeparatorPos(reference, 4));
      assertEquals(-1, EntityReference.getSeparatorPos(reference, 5));
      assertEquals(-1, EntityReference.getSeparatorPos(reference, 6));
   }

   public void testCheckReference() {
      EntityReference.checkReference("/testing");
      EntityReference.checkReference("/testing/something");
      EntityReference.checkReference("/test/a/long/thing");
      EntityReference.checkReference("/TETETE/SDASDASD/FFFFF/XXXXXXXXXXXXXXXXXXXXX");

      try {
         EntityReference.checkReference(null);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      try {
         EntityReference.checkReference("");
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      try {
         EntityReference.checkReference("xxxxxxxxxxxxxxxxxxxx");
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
   }

   public void testCheckPrefixId() {
      EntityReference.checkPrefixId("aaronz", "1111");
      EntityReference.checkPrefixId("AARONZ", "");
      EntityReference.checkPrefixId("ABCdef123-AZ_AZ:AZ;AZ.AZ", "anID");
      EntityReference.checkPrefixId("azeckoski", "ABCdef123-AZ_AZ:AZ;AZ.AZ");

      EntityReference.checkPrefixId("my_crazy-PREFIX", "This.is,a-really_insane:id(very)");

      EntityReference.checkPrefixId("eval-config", "ENABLE_XLS_REPORT_EXPORT:java.lang.Boolean");

      try {
         EntityReference.checkPrefixId(null, null);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      try {
         EntityReference.checkPrefixId(null, "");
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      try {
         EntityReference.checkPrefixId("", null);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      try {
         EntityReference.checkPrefixId("aaronz", null);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      try {
         EntityReference.checkPrefixId("aaronz", "asd/def");
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }

   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#getOriginalReference()}.
    */
   public void testGetOriginalReference() {
      EntityReference er = null;

      er = new EntityReference(INPUT_REF2);
      assertEquals(REF2, er.toString());
      assertEquals(INPUT_REF2, er.getOriginalReference());

      er = new EntityReference("/myprefix/myid/extra");
      assertEquals("myprefix", er.getPrefix());
      assertEquals("myid", er.getId());
      assertEquals("/myprefix/myid", er.toString());
      assertEquals("/myprefix/myid/extra", er.getOriginalReference());
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#setOriginalReference(java.lang.String)}.
    */
   public void testSetOriginalReference() {
      EntityReference er = null;

      er = new EntityReference("/myprefix/myid/extra");
      assertEquals("/myprefix/myid/extra", er.getOriginalReference());
      er.setOriginalReference("/reset");
      assertEquals("/reset", er.getOriginalReference());

      // test invalid reference throws exception
      try {
         er.setOriginalReference(INVALID_REF);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
      
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#getReference()}.
    */
   public void testGetReference() {
      EntityReference er = null;

      er = new EntityReference(INPUT_REF1);
      assertEquals(REF1, er.getReference());
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#getSpaceReference()}.
    */
   public void testGetSpaceReference() {
      EntityReference er = null;

      er = new EntityReference(INPUT_REF3);
      assertEquals(REF3, er.getSpaceReference());

      er = new EntityReference(INPUT_REF1);
      assertEquals(EntityReference.SEPARATOR + PREFIX1, er.getSpaceReference());
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#makeEntityReference(boolean)}.
    */
   public void testMakeReference() {
      EntityReference er = null;

      er = new EntityReference(INPUT_REF1);
      assertEquals(REF1, er.makeEntityReference(false));

      er = new EntityReference(INPUT_REF2);
      assertEquals(REF2, er.makeEntityReference(false));

      er = new EntityReference(INPUT_REF3);
      assertEquals(REF3, er.makeEntityReference(false));

      er = new EntityReference(INPUT_REF2);
      assertEquals(EntityReference.SEPARATOR + PREFIX2, er.makeEntityReference(true));

      er = new EntityReference(INPUT_REF3);
      assertEquals(REF3, er.makeEntityReference(true));

      
      // Invalid formed ER will not return a ref string
      er = new EntityReference();
      try {
         er.makeEntityReference(false);
         fail("Should have thrown exception");
      } catch (IllegalStateException e) {
         assertNotNull(e);
      }
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#findPrefix(java.lang.String)}.
    */
   public void testFindPrefix() {
      String prefix = null;

      // test 2 part ref
      prefix = EntityReference.findPrefix(INPUT_REF1);
      assertNotNull(prefix);
      assertEquals(PREFIX1, prefix);

      prefix = EntityReference.findPrefix(INPUT_REF2);
      assertNotNull(prefix);
      assertEquals(PREFIX2, prefix);

      // test 1 part ref
      prefix = EntityReference.findPrefix(INPUT_REF3);
      assertNotNull(prefix);
      assertEquals(PREFIX3, prefix);

      // test invalid reference throws exception
      try {
         prefix = EntityReference.findPrefix(INVALID_REF);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#findId(java.lang.String)}.
    */
   public void testFindId() {
      String id = null;

      // test 2 part ref
      id = EntityReference.findId(INPUT_REF1);
      assertNotNull(id);
      assertEquals(ID1, id);

      id = EntityReference.findId(INPUT_REF2);
      assertNotNull(id);
      assertEquals(ID2, id);

      id = EntityReference.findId(INPUT_REF3);
      assertNull(id);

      // test invalid reference throws exception
      try {
         id = EntityReference.findId(INVALID_REF);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#toString()}.
    */
   public void testToString() {
      EntityReference er = null;

      er = new EntityReference(INPUT_REF1);
      assertEquals(REF1, er.toString());
   }


   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#EntityReference()}.
    */
   public void testEntityReference() {
      EntityReference er = null;

      // make sure this does not die
      er = new EntityReference();
      assertNotNull(er);
   }

   /**
    * Test method for
    * {@link org.sakaiproject.entitybroker.EntityReference#EntityReference(java.lang.String)}.
    */
   public void testEntityReferenceString() {
      EntityReference er = null;

      er = new EntityReference(INPUT_REF1);
      assertNotNull(er);
      assertEquals(PREFIX1, er.getPrefix());
      assertEquals(ID1, er.getId());
      assertEquals(REF1, er.toString());

      er = new EntityReference(INPUT_REF2);
      assertNotNull(er);
      assertEquals(PREFIX2, er.getPrefix());
      assertEquals(ID2, er.getId());
      assertEquals(REF2, er.toString());

      er = new EntityReference(INPUT_REF3);
      assertNotNull(er);
      assertEquals(PREFIX3, er.getPrefix());
      assertEquals(null, er.getId());
      assertEquals(REF3, er.toString());

      // test invalid prefix throws exception
      try {
         er = new EntityReference(PREFIX1);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }

      try {
         er = new EntityReference("");
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }

      try {
         er = new EntityReference(null);
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
   }

   /**
    * Test method for {@link org.sakaiproject.entitybroker.EntityReference#EntityReference(java.lang.String, java.lang.String)}.
    */
   public void testEntityReferenceStringString() {
      EntityReference er = null;

      er = new EntityReference(PREFIX1, ID1);
      assertNotNull(er);
      assertEquals(PREFIX1, er.getPrefix());
      assertEquals(ID1, er.getId());
      assertEquals(REF1, er.toString());

      er = new EntityReference(PREFIX3, "");
      assertNotNull(er);
      assertEquals(PREFIX3, er.getPrefix());
      assertEquals(null, er.getId());
      assertEquals(REF3, er.toString());

      // test invalid prefix throws exception
      try {
         er = new EntityReference(null, "");
         fail("Should have thrown exception");
      } catch (IllegalArgumentException e) {
         assertNotNull(e.getMessage());
      }
   }

   public void testGetIdFromRef() {
       String id = EntityReference.getIdFromRef("/prefix/1234");
       assertNotNull(id);
       assertEquals("1234", id);

       id = EntityReference.getIdFromRef("/prefix/1234/asdf");
       assertNotNull(id);
       assertEquals("1234", id);

       id = EntityReference.getIdFromRef("/prefix");
       assertNull(id);
   }

   public void testGetIdFromRefByKey() {
       String id = EntityReference.getIdFromRefByKey("/prefix/1234", "AAA");
       assertNull(id);

       id = EntityReference.getIdFromRefByKey("/prefix/1234", "prefix");
       assertNotNull(id);
       assertEquals("1234", id);

       id = EntityReference.getIdFromRefByKey("/prefix/1234/site/mysite/group/mygroup", "prefix");
       assertNotNull(id);
       assertEquals("1234", id);

       id = EntityReference.getIdFromRefByKey("/prefix/1234/site/mysite/group/mygroup", "site");
       assertNotNull(id);
       assertEquals("mysite", id);

       id = EntityReference.getIdFromRefByKey("/prefix/1234/site/mysite/group/mygroup", "group");
       assertNotNull(id);
       assertEquals("mygroup", id);

       id = EntityReference.getIdFromRefByKey("/prefix/1234/site/mysite/group/mygroup", "mygroup");
       assertNull(id);
   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy