/*************************************************************************** * Copyright 2010 Global Biodiversity Information Facility Secretariat * Licensed under the Apache 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://www.apache.org/licenses/LICENSE-2.0 * 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. ***************************************************************************/ package org.gbif.ipt.model; import java.util.HashSet; import java.util.Set; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; public class SourceTest { @Test public void testEquals() { Source src1 = new TextFileSource(); src1.setName("Peter"); Source src2 = new SqlSource(); src2.setName(" peter"); Source src3 = new TextFileSource(); src3.setName("karl"); assertEquals(src1, src2); assertFalse(src3.equals(src1)); assertFalse(src3.equals(src2)); assertTrue(SourceBase.class.isInstance(src1)); assertTrue(SourceBase.class.isInstance(src2)); assertTrue(SourceBase.class.isInstance(src3)); assertFalse(TextFileSource.class.isInstance(src2)); Set<Source> sources = new HashSet<Source>(); sources.add(src1); sources.add(src2); sources.add(src3); assertEquals(2, sources.size()); assertTrue(sources.contains(src1)); assertTrue(sources.contains(src2)); assertTrue(sources.contains(src3)); Source s = new SqlSource(); s.setName("karlos"); assertFalse(sources.contains(s)); s.setName("karl"); assertTrue(sources.contains(s)); sources.remove(s); assertEquals(1, sources.size()); // with resources: Resource r = new Resource(); r.setTitle("Peterchen"); // r.setKey(UUID.randomUUID()); src1.setResource(r); src2.setResource(r); src3.setResource(r); assertEquals(src1, src2); assertFalse(src3.equals(src1)); assertFalse(src3.equals(src2)); assertTrue(SourceBase.class.isInstance(src1)); assertTrue(SourceBase.class.isInstance(src2)); assertTrue(SourceBase.class.isInstance(src3)); assertFalse(TextFileSource.class.isInstance(src2)); sources = new HashSet<Source>(); sources.add(src1); sources.add(src2); sources.add(src3); assertEquals(2, sources.size()); assertTrue(sources.contains(src1)); assertTrue(sources.contains(src2)); assertTrue(sources.contains(src3)); s = new SqlSource(); s.setName("karlos"); assertFalse(sources.contains(s)); s.setName("karl"); assertTrue(sources.contains(s)); s.setResource(r); assertTrue(sources.contains(s)); sources.remove(s); assertEquals(1, sources.size()); } @Test public void testName() { Source src = new TextFileSource(); src.setName("Peter"); assertEquals("peter", src.getName()); src.setName(" Peter nice"); assertEquals("peternice", src.getName()); src.setName("verNAcUl.:s"); assertEquals("vernacul", src.getName()); src.setName("veraculars.txt"); assertEquals("veraculars", src.getName()); src.setName("veraculars.my.txt"); assertEquals("veracularsmy", src.getName()); } @Test public void testNormaliseName() { assertEquals("filename", SourceBase.normaliseName("fileName.txt")); assertEquals("filename", SourceBase.normaliseName("FILENAME.txt")); assertEquals("filenametxt", SourceBase.normaliseName("filename txt")); assertEquals("filename", SourceBase.normaliseName("filename%*?/:.<>|")); assertEquals("filenametxt", SourceBase.normaliseName("filename\\/\"%*?/:<>|.txt.txt")); assertEquals("filename-copy", SourceBase.normaliseName("filename-copy%*?/:.<>|.txt")); assertEquals("filename", SourceBase.normaliseName("filename.pdf")); assertEquals("filename-copy-2011", SourceBase.normaliseName("filename-copy-2011.cvs")); assertEquals("filename", SourceBase.normaliseName("filename")); assertEquals("-1", SourceBase.normaliseName("-1")); assertEquals("", SourceBase.normaliseName("")); assertNull(SourceBase.normaliseName(null)); } }