1 16 package org.roller.presentation.atomapi; 17 18 import java.text.SimpleDateFormat ; 19 import java.util.Calendar ; 20 import java.util.Date ; 21 22 import junit.framework.Test; 23 import junit.framework.TestCase; 24 import junit.framework.TestSuite; 25 26 import org.jdom.Document; 27 28 31 public class AtomCollectionTest extends TestCase { 32 33 private static SimpleDateFormat df = 34 new SimpleDateFormat ( "yyyy-MM-dd'T'HH:mm:ssZ" ); 35 36 37 public AtomCollectionTest() { 38 } 39 40 public void testRangeParsing() throws Exception { 41 Date end = new Date (); Calendar cal = Calendar.getInstance(); 43 cal.setTime(end); 44 cal.add(Calendar.DATE, -1); 45 Date start = cal.getTime(); String startString = df.format(start); 47 String endString = df.format(end); 48 49 String r1 = "Range: updated="+startString+"/"+endString; 50 AtomCollection.Range range = AtomCollection.parseRange(r1); 51 assertNotNull(range.start); 52 assertNotNull(range.end); 53 54 String r2 = "Range: updated="+startString+"/"; 55 range = AtomCollection.parseRange(r2); 56 assertNotNull(range.start); 57 assertNull(range.end); 58 59 String r3 = "Range: updated="+"/"+endString; 60 range = AtomCollection.parseRange(r3); 61 assertNull(range.start); 62 assertNotNull(range.end); 63 } 64 65 public void testCollectionBean() throws Exception { 66 67 Date date1 = new Date (); 69 AtomCollection collection = new AtomCollection(); 70 AtomCollection.Member member1 = new AtomCollection.Member(); 71 member1.setTitle("title1"); 72 member1.setHref("http://example.com/item1"); 73 member1.setUpdated(date1); 74 collection.addMember(member1); 75 76 Date date2 = new Date (); 78 AtomCollection.Member member2 = new AtomCollection.Member(); 79 member2.setTitle("title2"); 80 member2.setHref("http://example.com/item2"); 81 member2.setUpdated(date2); 82 collection.addMember(member2); 83 84 Document doc = AtomCollection.collectionToDocument(collection); 86 assertEquals("collection", doc.getRootElement().getName()); 87 assertEquals(2, doc.getRootElement().getContent().size()); 88 89 AtomCollection col2 = AtomCollection.documentToCollection(doc); 91 assertEquals(2, col2.getMembers().size()); 92 93 AtomCollection.Member m1 = (AtomCollection.Member)col2.getMembers().get(0); 94 assertEquals("title1", m1.getTitle()); 95 assertEquals("http://example.com/item1", m1.getHref()); 96 assertCloseEnough(date1, m1.getUpdated()); 97 98 AtomCollection.Member m2 = (AtomCollection.Member)col2.getMembers().get(1); 99 assertEquals("title2", m2.getTitle()); 100 assertEquals("http://example.com/item2", m2.getHref()); 101 assertCloseEnough(date2, m2.getUpdated()); 102 } 103 104 public void testServiceBean() { 105 106 AtomService.Collection collection = new AtomService.Collection(); 107 collection.setTitle("All blog entries"); 108 collection.setContents("entries"); 109 collection.setHref("http://example.com/collection1"); 110 111 AtomService.Workspace workspace = new AtomService.Workspace(); 112 workspace.setTitle("My blog"); 113 workspace.addCollection(collection); 114 115 AtomService service = new AtomService(); 116 service.addWorkspace(workspace); 117 118 Document doc = AtomService.serviceToDocument(service); 120 assertEquals("service", doc.getRootElement().getName()); 121 assertEquals(1, doc.getRootElement().getContent().size()); 122 123 AtomService service2 = AtomService.documentToService(doc); 125 126 AtomService.Workspace workspace2 = 127 (AtomService.Workspace)service2.getWorkspaces().get(0); 128 assertEquals("My blog", workspace2.getTitle()); 129 130 AtomService.Collection collection2 = 131 (AtomService.Collection)workspace2.getCollections().get(0); 132 assertEquals("All blog entries", collection2.getTitle()); 133 assertEquals("entries", collection.getContents()); 134 assertEquals("http://example.com/collection1", collection2.getHref()); 135 } 136 137 138 public void assertCloseEnough(Date d1, Date d2) { 139 long t1 = d1.getTime() - d1.getTime() % 1000; 140 long t2 = d2.getTime() - d2.getTime() % 1000; 141 assertEquals(t1, t2); 142 } 143 144 public static Test suite() { 145 TestSuite suite = new TestSuite(); 146 suite.addTest(new TestSuite(AtomCollectionTest.class)); 147 return suite; 148 } 149 } 150 | Popular Tags |