package org.gbif.checklistbank.nub;
import org.gbif.api.model.checklistbank.ParsedName;
import org.gbif.checklistbank.nub.model.NubUsage;
import org.gbif.checklistbank.nub.model.SrcUsage;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
public class ParentStackTest {
@Test
public void testClear() throws Exception {
ParentStack parents = new ParentStack(null);
assertEquals(0, parents.size());
assertNull(parents.nubParent());
parents.add(src(1, null));
parents.add(src(2, 1));
NubUsage nub = nub("nub#3");
parents.put(nub);
assertNull(parents.nubParent());
parents.add(src(3, 2));
assertEquals(3, parents.size());
assertEquals(nub, parents.nubParent());
parents.add(src(4, 1));
assertEquals(2, parents.size());
assertNull(parents.nubParent());
}
private SrcUsage src(int key, Integer parentKey) {
SrcUsage u = new SrcUsage();
u.key = key;
u.parentKey = parentKey;
u.scientificName = "Sciname #" + key;
return u;
}
private NubUsage nub(String name) {
NubUsage n = new NubUsage();
n.parsedName = new ParsedName();
n.parsedName.setScientificName(name);
return n;
}
}