private void assertResultEquals(GoogleBookFeed result, GoogleBook... expectedBooks) throws IOException { String expected = ""; for (final GoogleBook book : expectedBooks) { expected += "<entry>" + GoogleApiTestUtilities.objectToXml(book, GoogleBookSearch.Namespace.DICTIONARY) + "</entry>"; } String actual = GoogleApiTestUtilities.objectToXml(result, GoogleBookSearch.Namespace.DICTIONARY); // remove dynamic content from links actual = actual.replaceAll("&dq=[^&]+", "&dq=SEARCH_QUERY"); actual = actual.replaceAll("&cd=\\d+", "&cd=X"); // remove feed links final int finalEntry = actual.lastIndexOf("</entry>"); actual = actual.substring(0, finalEntry + 8); // remove actual rating actual = actual.replaceAll("average=\"[0-9.]+\"", "average=\"3.5\""); if (!expected.equals(actual)) Log.d("XXX", "Expected: " + expected + "\n but got: " + actual); assertEquals(expected, actual); // check isbns as they are not in the generated xml for (int i = 0; i < Math.min(result.books.size(), expectedBooks.length); i++) { final GoogleBook expectedBook = expectedBooks[i]; final GoogleBook actualBook = result.books.get(i); assertGeneratedDataEquals(expectedBook, actualBook); } }
private void assertResultEquals(GoogleBook expectedBook, GoogleBook actualBook) throws IOException { final String expected = GoogleApiTestUtilities.objectToXml(expectedBook, GoogleBookSearch.Namespace.DICTIONARY); String actual = GoogleApiTestUtilities.objectToXml(actualBook, GoogleBookSearch.Namespace.DICTIONARY); actual = actual.replaceAll("average=\"[0-9.]+\"", "average=\"3.5\""); assertEquals(expected, actual); assertGeneratedDataEquals(expectedBook, actualBook); }