package org.gedcomx.atom.rt; import org.gedcomx.Gedcomx; import org.gedcomx.atom.Category; import org.gedcomx.atom.Content; import org.gedcomx.atom.Entry; import org.gedcomx.atom.Feed; import org.gedcomx.atom.Person; import org.gedcomx.links.Link; import org.testng.annotations.Test; import javax.xml.namespace.QName; import java.util.ArrayList; import java.util.HashMap; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; public class BaseAtomModelVisitorTest { @Test ( expectedExceptions = NullPointerException.class ) public void testNullVisitor() throws Exception { Feed feed = new Feed(); feed.accept(null); } @Test public void testVisitFeed() throws Exception { AtomModelVisitorBase visitor = new AtomModelVisitorBase(); assertNotNull(visitor.getContextStack()); assertEquals(visitor.getContextStack().size(), 0); Feed feed = new Feed(); // visit empty feed feed.accept(visitor); // re-visit feed; empty lists feed.setAuthors(new ArrayList<Person>()); feed.setContributors(new ArrayList<Person>()); feed.setEntries(new ArrayList<Entry>()); feed.setExtensionElements(new ArrayList<Object>()); feed.setLinks(new ArrayList<Link>()); feed.accept(visitor); Entry entry; // re-visit feed; single element lists feed.getAuthors().add(new Person()); feed.getContributors().add(new Person()); entry = new Entry(); feed.getEntries().add(entry); feed.getExtensionElements().add(new Object()); feed.getLinks().add(new Link()); feed.accept(visitor); Content content; ArrayList<Person> authors; ArrayList<Person> contributors; // re-visit feed; initialize entry content = new Content(); authors = new ArrayList<Person>(); contributors = new ArrayList<Person>(); entry.setContent(content); entry.setAuthors(authors); entry.setCategories(new ArrayList<Category>()); entry.setContributors(contributors); entry.setExtensionElements(new ArrayList<Object>()); entry.setExtensionAttributes(new HashMap<QName, String>()); entry.setLinks(new ArrayList<Link>()); feed.accept(visitor); // re-visit feed; populate content; add element to authors and contributors content.setGedcomx(new Gedcomx()); authors.add(new Person()); contributors.add(new Person()); feed.accept(visitor); } }