Package org.archive.accesscontrol.model

Source Code of org.archive.accesscontrol.model.RuleTest

package org.archive.accesscontrol.model;

import java.util.GregorianCalendar;

import org.archive.accesscontrol.model.Rule;

import junit.framework.TestCase;

public class RuleTest extends TestCase {
    Rule rule;
   
    public void testBasicMatching() {
        rule = new Rule();
        rule.setSurt("(org,archive,)/");     
        assertTrue("exact surt match", rule.matches("(org,archive,)/"));
        assertTrue("prefix surt match", rule.matches("(org,archive,)/foobar/fishing.html?foo=bar"));
        assertFalse("surt non-match", rule.matches("(org,example,)/blah"));
        assertTrue("capture date always match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 12).getTime()));
        assertTrue("retrieval date always match", rule.matches("(org,archive,)/", null, new GregorianCalendar(2007, 4, 12).getTime()));
        assertTrue("capture and retrieval date always match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 12).getTime(), new GregorianCalendar(2007, 4, 12).getTime()));
        assertFalse("capture and retrieval date, surt non-match", rule.matches("(org,example,)/", new GregorianCalendar(2007, 4, 12).getTime(), new GregorianCalendar(2007, 4, 12).getTime()));
       
    }
   
    public void testCaptureDateMatching() {
        rule = new Rule();
        rule.setSurt("(org,archive,)/")
       
        rule.setCaptureStart(new GregorianCalendar(2007, 1, 12).getTime());
        assertTrue("start-bounded capture date match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 12).getTime()));
        assertFalse("start-bounded capture date non-match", rule.matches("(org,archive,)/", new GregorianCalendar(2005, 4, 12).getTime()));

        rule.setCaptureStart(null);
        rule.setCaptureEnd(new GregorianCalendar(2007, 1, 12).getTime());
        assertTrue("end-bounded capture date match", rule.matches("(org,archive,)/", new GregorianCalendar(2005, 4, 12).getTime()));
        assertFalse("end-bounded capture date non-match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 12).getTime()));
               
        rule.setCaptureStart(new GregorianCalendar(2007, 1, 12).getTime());
        rule.setCaptureEnd(new GregorianCalendar(2007, 12, 12).getTime());
        assertTrue("capture date match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 12).getTime()));
        assertFalse("capture date too early", rule.matches("(org,archive,)/", new GregorianCalendar(2005, 1, 11).getTime()));
        assertFalse("capture date too late", rule.matches("(org,archive,)/", new GregorianCalendar(2008, 9, 11).getTime()));      
    }
   
    public void testRetrievalDateMatching() {
        rule = new Rule();
        rule.setSurt("(org,archive,)/")
       
        rule.setRetrievalStart(new GregorianCalendar(2007, 1, 12).getTime());
        assertTrue("start-bounded retrieval date match", rule.matches("(org,archive,)/", null, new GregorianCalendar(2007, 4, 12).getTime()));
        assertFalse("start-bounded retrieval date non-match", rule.matches("(org,archive,)/", null, new GregorianCalendar(2005, 4, 12).getTime()));
       
        rule.setRetrievalStart(null);
        rule.setRetrievalEnd(new GregorianCalendar(2007, 1, 12).getTime());
        assertTrue("end-bounded retrieval date match", rule.matches("(org,archive,)/", null, new GregorianCalendar(2005, 4, 12).getTime()));       
        assertFalse("end-bounded retrieval date non-match", rule.matches("(org,archive,)/", null, new GregorianCalendar(2007, 4, 12).getTime()));  
               
        rule.setRetrievalStart(new GregorianCalendar(2007, 1, 12).getTime());
        rule.setRetrievalEnd(new GregorianCalendar(2007, 12, 12).getTime());
        assertTrue("retrieval date match", rule.matches("(org,archive,)/", null, new GregorianCalendar(2007, 4, 12).getTime()));
        assertFalse("retrieval date too early", rule.matches("(org,archive,)/", null, new GregorianCalendar(2005, 1, 11).getTime()));   
        assertFalse("retrieval date too late", rule.matches("(org,archive,)/", null, new GregorianCalendar(2008, 9, 11).getTime()));
    }
   
    public void testEmbargoPeriodMatching() {
        rule = new Rule();
        rule.setSurt("(org,archive,)/");
       
        rule.setSecondsSinceCapture(60 * 60 * 24 * 5); // embargo period of 5 days
        assertFalse("under embargo, so non-match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 10).getTime(), new GregorianCalendar(2007, 4, 12).getTime()));
        assertTrue("outside embargo, so match", rule.matches("(org,archive,)/", new GregorianCalendar(2007, 4, 10).getTime(), new GregorianCalendar(2007, 4, 25).getTime()));
    }
   
    public void testBlankGroupMatching() {
      rule = new Rule();
      rule.setSurt("(");
      rule.setWho("");
      assertTrue(rule.matches("(org,",null, null, "blah"));
    }
}
TOP

Related Classes of org.archive.accesscontrol.model.RuleTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.