package org.jabref.logic.protectedterms;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class ProtectedTermsListTest {
private ProtectedTermsList internalList;
private ProtectedTermsList externalList;
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Before
public void setUp() throws IOException {
String tempFileName = temporaryFolder.newFile().getAbsolutePath();
internalList = new ProtectedTermsList("Name", new ArrayList<>(Arrays.asList("AAA", "BBB")), "location", true);
externalList = new ProtectedTermsList("Namely", new ArrayList<>(Arrays.asList("AAA", "BBB")), tempFileName);
}
@Test
public void testProtectedTermsListStringListOfStringStringBoolean() {
assertTrue(internalList.isInternalList());
}
@Test
public void testProtectedTermsListStringListOfStringString() {
assertFalse(externalList.isInternalList());
}
@Test
public void testGetDescription() {
assertEquals("Name", internalList.getDescription());
}
@Test
public void testGetTermList() {
assertEquals(Arrays.asList("AAA", "BBB"), internalList.getTermList());
}
@Test
public void testGetLocation() {
assertEquals("location", internalList.getLocation());
}
@Test
public void testGetTermListing() {
assertEquals("AAA\nBBB", internalList.getTermListing());
}
@Test
public void testCompareTo() {
assertEquals(-2, internalList.compareTo(externalList));
}
@Test
public void testSetEnabledIsEnabled() {
assertFalse(internalList.isEnabled());
internalList.setEnabled(true);
assertTrue(internalList.isEnabled());
}
@Test
public void testNotEnabledByDefault() {
assertFalse(internalList.isEnabled());
}
@Test
public void testCanNotAddTermToInternalList() {
assertFalse(internalList.addProtectedTerm("CCC"));
}
@Test
public void testTermNotAddedToInternalList() {
internalList.addProtectedTerm("CCC");
assertFalse(internalList.getTermList().contains("CCC"));
}
@Test
public void testCanAddTermToExternalList() {
assertTrue(externalList.addProtectedTerm("CCC"));
}
@Test
public void testTermAddedToExternalList() {
externalList.addProtectedTerm("CCC");
assertTrue(externalList.getTermList().contains("CCC"));
}
}