001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.kernel.api.services.functions;
007
008import static org.junit.Assert.assertEquals;
009
010import org.junit.Test;
011
012/**
013 * <p>
014 * ConfigurableHierarchicalSupplierTest class.
015 * </p>
016 *
017 * @author rdfloyd
018 */
019public class ConfigurableHierarchicalSupplierTest {
020
021
022    @Test
023    public void testGet() {
024        final UniqueValueSupplier defaultPidMinter = new ConfigurableHierarchicalSupplier();
025        final String id = defaultPidMinter.get();
026        // No pairtrees is default; with no args check to see that id contains just the 1 pid part
027        final int parts = (id.split("/").length);
028        assertEquals(1, parts);
029    }
030
031    @Test
032    public void testGetIdNoPairtree() {
033        final UniqueValueSupplier defaultPidMinter = new ConfigurableHierarchicalSupplier(0, 0);
034        final String id = defaultPidMinter.get();
035        // With (desiredLength,desiredCount=0), check to see that id contains 1 part and no slashes
036        final int parts = (id.split("/").length);
037        assertEquals(1, parts);
038    }
039
040    @Test
041    public void testGetIdPairtreeParams() {
042        final UniqueValueSupplier defaultPidMinter = new ConfigurableHierarchicalSupplier(2, 4);
043        final String id = defaultPidMinter.get();
044        // With (desiredLength > 0 && desiredCount > 0) check to see that id contains (count + 1) parts
045        final int parts = (id.split("/").length);
046        assertEquals(5, parts);
047    }
048
049}