/** * Helper method to compare article properties * * @param actual - actual article * @param expected - article with expected properties */ protected void compareArticles(Article actual, Article expected) { assertNotNull(actual, "returned null article"); assertEquals(actual.getDoi(), expected.getDoi(), "Article had incorrect doi"); assertEquals(actual.geteIssn(), expected.geteIssn(), "returned incorrect eIssn"); assertEquals(actual.getUrl(), expected.getUrl(), "returned incorrect url"); assertEquals(actual.getRights(), expected.getRights(), "Article had incorrect rights"); assertEquals(actual.getLanguage(), expected.getLanguage(), "Article had incorrect language"); assertEquals( actual.getPublisherLocation(), expected.getPublisherLocation(), "Article had incorrect publisher"); assertEquals(actual.getFormat(), expected.getFormat(), "Article had incorrect format"); assertEquals(actual.getTitle(), expected.getTitle(), "Article had incorrect Title"); assertEquals( actual.getDescription(), expected.getDescription(), "Article had incorrect description"); assertEquals( actual.getArchiveName(), expected.getArchiveName(), "Article had incorrect archive name"); assertEqualsNoOrder( actual.getCategories().toArray(), expected.getCategories().toArray(), "Incorrect categories"); if (expected.getAssets() != null) { assertEquals( actual.getAssets().size(), expected.getAssets().size(), "incorrect number of assets"); for (int i = 0; i < actual.getAssets().size(); i++) { compareAssets(actual.getAssets().get(i), expected.getAssets().get(i)); } } if (expected.getCitedArticles() != null) { assertEquals( actual.getCitedArticles().size(), expected.getCitedArticles().size(), "Returned incorrect number of references"); for (int i = 0; i < actual.getCitedArticles().size(); i++) { compareCitedArticles(actual.getCitedArticles().get(i), expected.getCitedArticles().get(i)); } } else { assertTrue( actual.getCitedArticles() == null || actual.getCitedArticles().size() == 0, "Returned non-empty references when none were expected"); } if (expected.getAuthors() != null) { assertNotNull(actual.getAuthors(), "returned null author list"); assertEquals( actual.getAuthors().size(), expected.getAuthors().size(), "returned incorrect number of authors"); for (int i = 0; i < expected.getAuthors().size(); i++) { ArticleAuthor actualAuthor = actual.getAuthors().get(i); ArticleAuthor expectedAuthor = expected.getAuthors().get(i); assertEquals( actualAuthor.getFullName(), expectedAuthor.getFullName(), "Article Author had incorrect Real Name"); assertEquals( actualAuthor.getGivenNames(), expectedAuthor.getGivenNames(), "Article Author had incorrect given name"); assertEquals( actualAuthor.getSurnames(), expectedAuthor.getSurnames(), "Article Author had incorrect surname"); } } if (expected.getEditors() != null) { assertNotNull(actual.getEditors(), "returned null editor list"); assertEquals( actual.getEditors().size(), expected.getEditors().size(), "returned incorrect number of editors"); for (int i = 0; i < expected.getEditors().size(); i++) { ArticleEditor actuaEditor = actual.getEditors().get(i); ArticleEditor expectedEditor = expected.getEditors().get(i); assertEquals( actuaEditor.getFullName(), expectedEditor.getFullName(), "Article Editor had incorrect Real Name"); assertEquals( actuaEditor.getGivenNames(), expectedEditor.getGivenNames(), "Article Editor had incorrect given name"); assertEquals( actuaEditor.getSurnames(), expectedEditor.getSurnames(), "Article Editor had incorrect surname"); } } if (expected.getRelatedArticles() != null) { assertNotNull(actual.getRelatedArticles(), "null list of related articles"); assertEquals( actual.getRelatedArticles().size(), expected.getRelatedArticles().size(), "Incorrect number of related articles"); for (int i = 0; i < actual.getRelatedArticles().size(); i++) { ArticleRelationship actualRelatedArticle = actual.getRelatedArticles().get(i); ArticleRelationship expectedRelatedArticle = expected.getRelatedArticles().get(i); assertEquals( actualRelatedArticle.getOtherArticleDoi(), expectedRelatedArticle.getOtherArticleDoi(), "related article " + i + " had incorrect otherArticleDoi"); assertEquals( actualRelatedArticle.getType(), expectedRelatedArticle.getType(), "related article " + i + " had incorrect type"); assertTrue( actualRelatedArticle.getParentArticle() == actual, "related article had incorrect parent article"); } } }