// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.actions; import static org.junit.Assert.assertEquals; import org.junit.Test; import nl.jqno.equalsverifier.EqualsVerifier; import nl.jqno.equalsverifier.Warning; /** * Unit tests for class {@link ExtensionFileFilter}. */ public class ExtensionFileFilterTest { private static void test(String extensions, String defaultExtension, String description, boolean addArchiveExtensionsToDescription, String expectedExtensions, String expectedDescription) { ExtensionFileFilter ext = ExtensionFileFilter.newFilterWithArchiveExtensions( extensions, defaultExtension, description, addArchiveExtensionsToDescription); assertEquals(expectedExtensions, ext.getExtensions()); assertEquals(defaultExtension, ext.getDefaultExtension()); assertEquals(expectedDescription, ext.getDescription()); } /** * Unit test of method {@link ExtensionFileFilter#newFilterWithArchiveExtensions}. */ @Test public void testNewFilterWithArchiveExtensions() { test("ext1", "ext1", "description", true, "ext1,ext1.gz,ext1.bz2", "description (*.ext1, *.ext1.gz, *.ext1.bz2)"); test("ext1", "ext1", "description", false, "ext1,ext1.gz,ext1.bz2", "description (*.ext1)"); test("ext1,ext2", "ext1", "description", true, "ext1,ext1.gz,ext1.bz2,ext2,ext2.gz,ext2.bz2", "description (*.ext1, *.ext1.gz, *.ext1.bz2, *.ext2, *.ext2.gz, *.ext2.bz2)"); test("ext1,ext2", "ext1", "description", false, "ext1,ext1.gz,ext1.bz2,ext2,ext2.gz,ext2.bz2", "description (*.ext1, *.ext2)"); } /** * Unit test of methods {@link ExtensionFileFilter#equals} and {@link ExtensionFileFilter#hashCode}. */ @Test public void testEqualsContract() { EqualsVerifier.forClass(ExtensionFileFilter.class).usingGetClass() .suppress(Warning.ANNOTATION) // FIXME: remove it after https://github.com/jqno/equalsverifier/issues/152 is fixed .verify(); } }