package de.geeksfactory.opacclient.apis; import org.json.JSONException; import org.json.JSONObject; import org.jsoup.Jsoup; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.util.ArrayList; import java.util.Collection; import java.util.List; import de.geeksfactory.opacclient.objects.Account; import de.geeksfactory.opacclient.objects.AccountData; import de.geeksfactory.opacclient.objects.LentItem; import de.geeksfactory.opacclient.objects.ReservedItem; import de.geeksfactory.opacclient.reporting.Report; import de.geeksfactory.opacclient.reporting.ReportHandler; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @RunWith(Parameterized.class) public class BiBer1992AccountTest extends BaseHtmlTest { private String file; private ReportHandler reportHandler; public BiBer1992AccountTest(String file) { this.file = file; reportHandler = new ReportHandler() { @Override public void sendReport(Report report) { throw new RuntimeException("send report: " + report.toString()); } }; } private static final String[] FILES = new String[]{"gelsenkirchen.htm", "freising.html", "herford.htm", "erkrath_opac.html", "erkrath_opax.html", "nuertingen.html"}; @Parameterized.Parameters(name = "{0}") public static Collection<String[]> files() { List<String[]> files = new ArrayList<>(); for (String file : FILES) { files.add(new String[]{file}); } return files; } @Test public void testParseMediaList() throws OpacApi.OpacErrorException, JSONException { String html = readResource("/biber1992/medialist/" + file); if (html == null) return; // we may not have all files for all libraries List<LentItem> media = BiBer1992 .parseMediaList(new AccountData(0), new Account(), Jsoup.parse(html), new JSONObject(), reportHandler, new JSONObject(readResource("/biber1992/headers_lent.json"))); assertTrue(media.size() > 0); for (LentItem item : media) { assertNotNull(item.getDeadline()); assertNotNull(item.getId()); } } @Test public void testParseResList() throws OpacApi.OpacErrorException, JSONException { String html = readResource("/biber1992/reslist/" + file); if (html == null) return; // we may not have all files for all libraries List<ReservedItem> media = BiBer1992.parseResList(new Account(), Jsoup.parse(html), new JSONObject(), reportHandler, new JSONObject(readResource("/biber1992/headers_reservations.json"))); assertTrue(media.size() > 0); } }