1   package com.sun.syndication.unittest;
2   
3   import com.sun.syndication.feed.module.DCModule;
4   import com.sun.syndication.feed.module.DCSubject;
5   import com.sun.syndication.feed.synd.SyndEntry;
6   import com.sun.syndication.io.impl.DateParser;
7   
8   import java.util.List;
9   import java.util.Date;
10  
11  
12  /**
13   * Test case for the multi-valued DublinCore module elements.
14   * <p>
15   * @author Paul Dlug
16   */
17  public class TestSyndFeedRSS10DCMulti extends TestSyndFeedRSS10 {
18  
19      public TestSyndFeedRSS10DCMulti() {
20          super("rss_1.0", "rss_1.0_DC_multi.xml");
21      }
22  
23      protected TestSyndFeedRSS10DCMulti(String type) {
24          super(type);
25      }
26  
27      protected TestSyndFeedRSS10DCMulti(String feedType, String feedFileName) {
28          super(feedType, feedFileName);
29      }
30  
31      public void testChannelDCModule() throws Exception {
32          DCModule dc = (DCModule) getCachedSyndFeed().getModule(DCModule.URI);
33          _testDCModule(dc, "channel.");
34      }
35  
36      protected void _testDCModule(DCModule dc,String prefix) throws Exception {
37          assertNotNull(dc);
38          
39          assertProperty((String)dc.getTitles().get(0), prefix + "dc:title[0]");
40          assertProperty((String)dc.getTitles().get(1), prefix + "dc:title[1]");
41          
42          assertProperty((String)dc.getCreators().get(0), prefix + "dc:creator[0]");
43          assertProperty((String)dc.getCreators().get(1), prefix + "dc:creator[1]");
44          
45          assertProperty(((DCSubject)dc.getSubjects().get(0)).getValue(), prefix + "dc:subject[0]");
46          String taxo0 = ((DCSubject)dc.getSubjects().get(0)).getTaxonomyUri();
47          if (taxo0 != null) {
48              assertProperty(taxo0, prefix + "dc:subject[0].taxo:topic^resource");
49          }
50          assertProperty(((DCSubject)dc.getSubjects().get(1)).getValue(), prefix + "dc:subject[1]");
51          String taxo1 = ((DCSubject)dc.getSubjects().get(1)).getTaxonomyUri();
52          if (taxo1 != null) {
53              assertProperty(taxo1, prefix + "dc:subject[1].taxo:topic^resource");
54          }
55          
56          assertProperty((String)dc.getDescriptions().get(0), prefix + "dc:description[0]");
57          assertProperty((String)dc.getDescriptions().get(1), prefix + "dc:description[1]");
58          
59          assertProperty((String)dc.getPublishers().get(0), prefix + "dc:publisher[0]");
60          assertProperty((String)dc.getPublishers().get(1), prefix + "dc:publisher[1]");
61          
62          assertProperty((String)dc.getContributors().get(0),prefix + "dc:contributor[0]");
63          assertProperty((String)dc.getContributors().get(1),prefix + "dc:contributor[1]");
64          Date date = DateParser.parseW3CDateTime("2001-01-01T00:00+00:00");
65          assertEquals((Date)dc.getDates().get(0), date);
66          assertEquals((Date)dc.getDates().get(1), date);
67          
68          assertProperty((String)dc.getTypes().get(0), prefix + "dc:type[0]");
69          assertProperty((String)dc.getTypes().get(1), prefix +"dc:type[1]");
70          
71          assertProperty((String)dc.getFormats().get(0), prefix + "dc:format[0]");
72          assertProperty((String)dc.getFormats().get(1), prefix + "dc:format[1]");
73          
74          assertProperty((String)dc.getIdentifiers().get(0), prefix + "dc:identifier[0]");
75          assertProperty((String)dc.getIdentifiers().get(1), prefix + "dc:identifier[1]");
76          
77          assertProperty((String)dc.getSources().get(0), prefix + "dc:source[0]");
78          assertProperty((String)dc.getSources().get(1), prefix + "dc:source[1]");
79          
80          assertProperty((String)dc.getLanguages().get(0), prefix + "dc:language[0]");
81          assertProperty((String)dc.getLanguages().get(1), prefix + "dc:language[1]");
82          
83          assertProperty((String)dc.getRelations().get(0), prefix + "dc:relation[0]");
84          assertProperty((String)dc.getRelations().get(1), prefix + "dc:relation[1]");
85          
86          assertProperty((String)dc.getCoverages().get(0), prefix + "dc:coverage[0]");
87          assertProperty((String)dc.getCoverages().get(1), prefix + "dc:coverage[1]");
88          
89          assertProperty((String)dc.getRightsList().get(0), prefix + "dc:rights[0]");
90          assertProperty((String)dc.getRightsList().get(1), prefix + "dc:rights[1]");
91      }
92  
93      public void testItemsDCModule() throws Exception {
94          _testItemDCModule(0);
95          _testItemDCModule(1);
96      }
97  
98      protected void _testItemDCModule(int i) throws Exception {
99          List entries = getCachedSyndFeed().getEntries();
100         SyndEntry entry = (SyndEntry) entries.get(i);
101         DCModule dc = (DCModule) entry.getModule(DCModule.URI);
102         _testDCModule(dc, "item[" + i + "].");
103     }
104 }