Skip to content

Commit 5eb1b71

Browse files
committed
SiteParser.extractIssueDate(): add unit tests.
Addressed to #685 No functional changes.
1 parent 68ebb9c commit 5eb1b71

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

src/main/java/ru/mystamps/web/util/extractor/SiteParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ private String extractImageUrl(Element body) {
199199
return StringUtils.trimToNull(url);
200200
}
201201

202-
private String extractIssueDate(Element body) {
202+
protected String extractIssueDate(Element body) {
203203
String locator = ObjectUtils.firstNonNull(issueDateLocator, shortDescriptionLocator);
204204
if (locator == null) {
205205
return null;

src/test/java/ru/mystamps/web/util/extractor/SiteParserTest.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,60 @@ public void extractCountryShouldReturnTextOfShortDescriptionLocator() {
399399
assertThat(msg, country, equalTo(expectedName));
400400
}
401401

402+
//
403+
// Tests for extractIssueDate()
404+
//
405+
406+
@Test
407+
public void extractIssueDateShouldReturnNullWhenLocatorsAreNotSet() {
408+
parser.setIssueDateLocator(null);
409+
parser.setShortDescriptionLocator(null);
410+
Element doc = createEmptyDocument();
411+
412+
String date = parser.extractIssueDate(doc);
413+
414+
assertThat(date, is(nullValue()));
415+
}
416+
417+
@Test
418+
public void extractIssueDateShouldReturnNullWhenElementNotFound() {
419+
parser.setIssueDateLocator(Random.jsoupLocator());
420+
Element doc = createEmptyDocument();
421+
422+
String date = parser.extractIssueDate(doc);
423+
424+
assertThat(date, is(nullValue()));
425+
}
426+
427+
@Test
428+
public void extractIssueDateShouldReturnTextOfIssueDateLocator() {
429+
parser.setIssueDateLocator("#issue-date");
430+
431+
String expectedDate = Random.issueYear().toString();
432+
String html = String.format("<div id='issue-date'>%s</div>", expectedDate);
433+
Element doc = createDocumentFromText(html);
434+
435+
String date = parser.extractIssueDate(doc);
436+
437+
String msg = String.format("couldn't extract issue date from '%s'", doc);
438+
assertThat(msg, date, equalTo(expectedDate));
439+
}
440+
441+
@Test
442+
public void extractIssueDateShouldReturnTextOfShortDescriptionLocator() {
443+
parser.setIssueDateLocator(null);
444+
parser.setShortDescriptionLocator("#desc");
445+
446+
String expectedDate = Random.issueYear().toString();
447+
String html = String.format("<div id='desc'>%s</div>", expectedDate);
448+
Element doc = createDocumentFromText(html);
449+
450+
String date = parser.extractIssueDate(doc);
451+
452+
String msg = String.format("couldn't extract issue date from '%s'", doc);
453+
assertThat(msg, date, equalTo(expectedDate));
454+
}
455+
402456
private static String describe(SiteParser parser) {
403457
StringBuilder sb = new StringBuilder();
404458
sb.append("SiteParser[name=")

0 commit comments

Comments
 (0)