package org.xbib.elasticsearch.common.standardnumber;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class ISANTests {
@Test
public void testISAN0() throws Exception {
String value = "ISAN B159-D8FA-0124-0000-K";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("B159D8FA01240000K", isan.normalizedValue());
assertEquals("ISAN B159-D8FA-0124-0000-K", isan.format());
}
@Test
public void testISAN1() throws Exception {
String value = "ISAN 0000-3BAB-9352-0000-G ";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("00003BAB93520000G", isan.normalizedValue());
assertEquals("ISAN 0000-3BAB-9352-0000-G", isan.format());
}
@Test
public void testISAN2() throws Exception {
String value = "006A-15FA-002B-C95F-W";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("006A15FA002BC95FW", isan.normalizedValue());
assertEquals("ISAN 006A-15FA-002B-C95F-W", isan.format());
}
@Test
public void testISAN3() throws Exception {
String value = "1881-66C7-3420-0000-3";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("188166C7342000003", isan.normalizedValue());
assertEquals("ISAN 1881-66C7-3420-0000-3", isan.format());
}
@Test
public void testVersionedISAN() throws Exception {
String value = "0001-F54C-302A-8D98-N-0000-0121-O";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("0001F54C302A8D98N00000121O", isan.normalizedValue());
assertEquals("ISAN 0001-F54C-302A-8D98-N-0000-0121-O", isan.format());
}
@Test
public void testVersionedISAN2() throws Exception {
String value = "1881-66C7-3420-6541-Y-9F3A-0245-O";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("188166C734206541Y9F3A0245O", isan.normalizedValue());
assertEquals("ISAN 1881-66C7-3420-6541-Y-9F3A-0245-O", isan.format());
}
@Test
public void testVersionedISAN3() throws Exception {
String value = "0000-0001-8CFA-0000-I-0000-0000-K";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals( "000000018CFA0000I00000000K", isan.normalizedValue());
assertEquals("ISAN 0000-0001-8CFA-0000-I-0000-0000-K", isan.format());
}
@Test
public void testVersionedISAN4() throws Exception {
String value = "0000-0000-D07A-0090-Q-0000-0000-X";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals("00000000D07A0090Q00000000X", isan.normalizedValue());
assertEquals("ISAN 0000-0000-D07A-0090-Q-0000-0000-X", isan.format());
}
@Test
public void testVersionedISAN5() throws Exception {
String value = "0000-3BAB-9352-0000-G-0000-0000-Q";
ISAN isan = new ISAN().set(value).createChecksum(true).normalize().verify();
assertEquals( "00003BAB93520000G00000000Q", isan.normalizedValue());
assertEquals("ISAN 0000-3BAB-9352-0000-G-0000-0000-Q", isan.format());
}
@Test
public void testBrokenISAN() {
try {
String value = "1435-1838 = Lehrergilde-Rundbrief";
new ISAN().set(value).createChecksum(true).normalize().verify();
assertTrue(false);
} catch (NumberFormatException e) {
assertTrue(true);
}
}
}