@Test
  public void write() throws IOException, SAXException {
    Feed feed = new Feed("atom_1.0");
    feed.setTitle("title");

    Entry entry1 = new Entry();
    entry1.setId("id1");
    entry1.setTitle("title1");

    Entry entry2 = new Entry();
    entry2.setId("id2");
    entry2.setTitle("title2");

    List<Entry> entries = new ArrayList<>(2);
    entries.add(entry1);
    entries.add(entry2);
    feed.setEntries(entries);

    MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
    converter.write(feed, null, outputMessage);

    assertEquals(
        "Invalid content-type",
        new MediaType("application", "atom+xml", StandardCharsets.UTF_8),
        outputMessage.getHeaders().getContentType());
    String expected =
        "<feed xmlns=\"http://www.w3.org/2005/Atom\">"
            + "<title>title</title>"
            + "<entry><id>id1</id><title>title1</title></entry>"
            + "<entry><id>id2</id><title>title2</title></entry></feed>";
    NodeMatcher nm = new DefaultNodeMatcher(ElementSelectors.byName);
    assertThat(
        outputMessage.getBodyAsString(StandardCharsets.UTF_8),
        isSimilarTo(expected).ignoreWhitespace().withNodeMatcher(nm));
  }
Esempio n. 2
0
  @SuppressWarnings("unchecked")
  @Override
  protected List<Entry> buildFeedEntries(
      Map<String, Object> model, HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    Set<Article> articles = (Set<Article>) model.get("articles");
    List<Entry> entries = new ArrayList<>(articles.size());
    for (Article article : articles) {
      Entry entry = new Entry();
      entry.setTitle(article.getTitle());
      entry.setPublished(article.getDate().toDate());
      Content content = new Content();
      content.setValue(article.getBody());
      entry.setSummary(content);

      Link link = new Link();
      link.setHref(link(article));
      List<Link> links = new ArrayList<Link>();
      links.add(link);
      entry.setAlternateLinks(links);
      entries.add(entry);
    }
    return entries;
  }