Skip to content

Commit

Permalink
Updated test case
Browse files Browse the repository at this point in the history
  • Loading branch information
w3stling committed Dec 17, 2022
1 parent 0baa4b9 commit a5d16d7
Show file tree
Hide file tree
Showing 2 changed files with 143 additions and 28 deletions.
60 changes: 32 additions & 28 deletions src/main/java/com/apptasticsoftware/lei/IsinLookup.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ String sendRequest1(String url, String data) {
}

var referer = CUSIP_URL.equals(url) ? "https://www.isindb.com/convert-cusip-to-isin/" : "https://www.isindb.com/convert-sedol-to-isin/";
String isin = null;

try {
var request = HttpRequest.newBuilder()
Expand Down Expand Up @@ -139,19 +140,8 @@ String sendRequest1(String url, String data) {
}

var text = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
var index = text.indexOf("<strong>");
if (index != -1) {
var isin = text.substring(index + 8, index + 20);
cacheResult(data, isin);
return isin;
}

index = text.indexOf("data-clipboard-text=\"");
if (index != -1) {
var isin = text.substring(index + 21, index + 33);
cacheResult(data, isin);
return isin;
}
isin = getIsin(text);
cacheResult(data, isin);
} catch (InterruptedException e) {
var logger = Logger.getLogger(LOGGER);
logger.severe(e.getMessage());
Expand All @@ -161,7 +151,7 @@ String sendRequest1(String url, String data) {
logger.severe(e.getMessage());
}

return null;
return isin;
}

String sendRequest2(String url, String data) {
Expand All @@ -171,6 +161,7 @@ String sendRequest2(String url, String data) {
}

var referer = CUSIP_URL.equals(url) ? "https://www.isindb.com/convert-cusip-to-isin/" : "https://www.isindb.com/convert-sedol-to-isin/";
String isin = null;

try {
Connection.Response loginForm = Jsoup.connect(referer)
Expand Down Expand Up @@ -198,29 +189,42 @@ String sendRequest2(String url, String data) {

var document = response.parse();
var text = document.body().html();
var index = text.indexOf("<strong>");
if (index != -1) {
var isin = text.substring(index + 8, index + 20);
cacheResult(data, isin);
return isin;
}

index = text.indexOf("data-clipboard-text=\"");
if (index != -1) {
var isin = text.substring(index + 21, index + 33);
cacheResult(data, isin);
return isin;
}
isin = getIsin(text);
cacheResult(data, isin);
} catch (Exception e) {
var logger = Logger.getLogger(LOGGER);
logger.severe(e.getMessage());
}

return isin;
}

private String getIsin(String text) {
var isin = parseIsin1(text);
if (isin == null) {
isin = parseIsin2(text);
}
return isin;
}

String parseIsin1(String text) {
var index = text.indexOf("<strong>");
if (index != -1) {
return text.substring(index + 8, index + 20);
}
return null;
}

String parseIsin2(String text) {
int index = text.indexOf("data-clipboard-text=\"");
if (index != -1) {
return text.substring(index + 21, index + 33);
}
return null;
}

private void cacheResult(String key, String value) {
if (cache.containsKey(key)) {
if (value == null || cache.containsKey(key)) {
return;
}
cache.put(key, value);
Expand Down
111 changes: 111 additions & 0 deletions src/test/java/com/apptasticsoftware/lei/IsinLookupTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,69 @@ class IsinLookupTest {
String sendRequest2(String url, String data) {
return null;
}

@Override
String parseIsin2(String text) {
return null;
}
};

private static final IsinLookup lookup1Parse1 = new IsinLookup() {
@Override
String sendRequest2(String url, String data) {
return null;
}

@Override
String parseIsin2(String text) {
return null;
}
};

private static final IsinLookup lookup1Parse2 = new IsinLookup() {
@Override
String sendRequest2(String url, String data) {
return null;
}

@Override
String parseIsin1(String text) {
return null;
}
};

private static final IsinLookup lookup2 = new IsinLookup() {
@Override
String sendRequest1(String url, String data) {
return null;
}
};

private static final IsinLookup lookup2Parse1 = new IsinLookup() {
@Override
String sendRequest1(String url, String data) {
return null;
}

@Override
String parseIsin2(String text) {
return null;
}
};

private static final IsinLookup lookup2Parse2 = new IsinLookup() {
@Override
String sendRequest1(String url, String data) {
return null;
}

@Override
String parseIsin1(String text) {
return null;
}
};


@Test
void lookupByCusip() {
assertTrue(lookup.getIsinByCusip("931142103").isPresent());
Expand All @@ -35,13 +90,41 @@ void lookupByCusipMethod1() {
assertFalse(lookup.getIsinByCusip("").isPresent());
}

@Test
void lookupByCusipMethod1Parse1() {
assertTrue(lookup1Parse1.getIsinByCusip("931142103").isPresent());
assertTrue(lookup1Parse1.getIsinByCusip("931142103").isPresent());
assertFalse(lookup1Parse1.getIsinByCusip("").isPresent());
}

@Test
void lookupByCusipMethod1Parse2() {
assertTrue(lookup1Parse2.getIsinByCusip("931142103").isPresent());
assertTrue(lookup1Parse2.getIsinByCusip("931142103").isPresent());
assertFalse(lookup1Parse2.getIsinByCusip("").isPresent());
}

@Test
void lookupByCusipMethod2() {
assertTrue(lookup2.getIsinByCusip("931142103").isPresent());
assertTrue(lookup2.getIsinByCusip("931142103").isPresent());
assertFalse(lookup.getIsinByCusip("").isPresent());
}

@Test
void lookupByCusipMethod2Parse1() {
assertTrue(lookup2Parse1.getIsinByCusip("931142103").isPresent());
assertTrue(lookup2Parse1.getIsinByCusip("931142103").isPresent());
assertFalse(lookup2Parse1.getIsinByCusip("").isPresent());
}

@Test
void lookupByCusipMethod2Parse2() {
assertTrue(lookup2Parse2.getIsinByCusip("931142103").isPresent());
assertTrue(lookup2Parse2.getIsinByCusip("931142103").isPresent());
assertFalse(lookup2Parse2.getIsinByCusip("").isPresent());
}

@Test
void lookupBySedol() {
assertTrue(lookup.getIsinBySedol("0884709").isPresent());
Expand All @@ -56,10 +139,38 @@ void lookupBySedolMethod1() {
assertFalse(lookup.getIsinBySedol("").isPresent());
}

@Test
void lookupBySedolMethod1Parse1() {
assertTrue(lookup1Parse1.getIsinBySedol("0884709").isPresent());
assertTrue(lookup1Parse1.getIsinBySedol("0884709").isPresent());
assertFalse(lookup1Parse1.getIsinBySedol("").isPresent());
}

@Test
void lookupBySedolMethod1Parse12() {
assertTrue(lookup1Parse2.getIsinBySedol("0884709").isPresent());
assertTrue(lookup1Parse2.getIsinBySedol("0884709").isPresent());
assertFalse(lookup1Parse2.getIsinBySedol("").isPresent());
}

@Test
void lookupBySedolMethod2() {
assertTrue(lookup2.getIsinBySedol("0884709").isPresent());
assertTrue(lookup2.getIsinBySedol("0884709").isPresent());
assertFalse(lookup.getIsinBySedol("").isPresent());
}

@Test
void lookupBySedolMethod2Parse1() {
assertTrue(lookup2Parse1.getIsinBySedol("0884709").isPresent());
assertTrue(lookup2Parse1.getIsinBySedol("0884709").isPresent());
assertFalse(lookup2Parse1.getIsinBySedol("").isPresent());
}

@Test
void lookupBySedolMethod2Parse2() {
assertTrue(lookup2Parse2.getIsinBySedol("0884709").isPresent());
assertTrue(lookup2Parse2.getIsinBySedol("0884709").isPresent());
assertFalse(lookup2Parse2.getIsinBySedol("").isPresent());
}
}

0 comments on commit a5d16d7

Please sign in to comment.