// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.wiki; import java.util.Iterator; import java.util.Set; import junit.framework.TestCase; public class InMemoryPageTest extends TestCase { private WikiPage root; private PageCrawler crawler; private WikiPage page1; private WikiPage page2; public void setUp() throws Exception { root = InMemoryPage.makeRoot("RooT"); crawler = root.getPageCrawler(); page1 = crawler.addPage(root, PathParser.parse("PageOne"), "page one"); page2 = crawler.addPage(root, PathParser.parse("PageTwo"), "page two"); } public void tearDown() throws Exception { } public void testCommitUsesProperPageWhenCommitingFromOtherPage() throws Exception { PageData data = page1.getData(); page2.commit(data); data = page2.getData(); assertSame(page2, data.getWikiPage()); } public void testVersions() throws Exception { PageData data = page1.getData(); data.setContent("version 1"); page1.commit(data); data.setContent("version 2"); page1.commit(data); data = page1.getData(); Set<VersionInfo> versions = data.getVersions(); assertEquals(3, versions.size()); } public void testVersionAuthor() throws Exception { PageData data = page1.getData(); Set<VersionInfo> versions = data.getVersions(); for (Iterator<VersionInfo> iterator = versions.iterator(); iterator.hasNext();) { VersionInfo versionInfo = iterator.next(); assertEquals("", versionInfo.getAuthor()); } data.setAttribute(PageData.LAST_MODIFYING_USER, "Joe"); page1.commit(data); page1.commit(data); data = page1.getData(); versions = data.getVersions(); boolean joeFound = false; for (Iterator<VersionInfo> iterator = versions.iterator(); iterator.hasNext();) { VersionInfo versionInfo = iterator.next(); if ("Joe".equals(versionInfo.getAuthor())) joeFound = true; } assertTrue(joeFound); } }