1   package com.sun.syndication.unittest;
2   
3   import com.sun.syndication.feed.WireFeed;
4   import com.sun.syndication.feed.synd.SyndFeed;
5   import com.sun.syndication.feed.synd.SyndFeedImpl;
6   
7   import java.io.ByteArrayOutputStream;
8   import java.io.ObjectOutputStream;
9   import java.io.ByteArrayInputStream;
10  import java.io.ObjectInputStream;
11  
12  /**
13   *
14   * <p>
15   * @author Alejandro Abdelnur
16   *
17   */
18  public abstract class FeedOpsTest extends FeedTest {
19  
20      protected FeedOpsTest(String feedType) {
21          super(feedType+".xml");
22          System.out.println("Testing "+feedType+".xml");
23      }
24  
25      //1.2a
26      public void testWireFeedEquals() throws Exception {
27          WireFeed feed1 = getCachedWireFeed();
28          WireFeed feed2 = getWireFeed();
29          assertTrue(feed1.equals(feed2));
30      }
31  
32      //1.2b
33      public void testWireFeedNotEqual() throws Exception {
34          WireFeed feed1 = getCachedWireFeed();
35          WireFeed feed2 = getWireFeed();
36          feed2.setFeedType("dummy");
37          assertFalse(feed1.equals(feed2));
38      }
39  
40      //1.3
41      public void testWireFeedCloning() throws Exception {
42          WireFeed feed1 = getCachedWireFeed();
43          WireFeed feed2 = (WireFeed) feed1.clone();;
44          assertTrue(feed1.equals(feed2));
45      }
46  
47      // 1.4
48      public void testWireFeedSerialization() throws Exception {
49          WireFeed feed1 = getCachedWireFeed();
50  
51          ByteArrayOutputStream baos = new ByteArrayOutputStream();
52          ObjectOutputStream oos = new ObjectOutputStream(baos);
53          oos.writeObject(feed1);
54          oos.close();
55  
56          ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
57          ObjectInputStream ois = new ObjectInputStream(bais);
58          WireFeed feed2 = (WireFeed) ois.readObject();
59          ois.close();
60  
61          assertTrue(feed1.equals(feed2));
62      }
63  
64      // 1.6
65      public void testWireFeedSyndFeedConversion() throws Exception {
66          SyndFeed sFeed1 = getCachedSyndFeed();
67          WireFeed wFeed1 = sFeed1.createWireFeed();
68          SyndFeed sFeed2 = new SyndFeedImpl(wFeed1);
69  
70          assertTrue(sFeed1.equals(sFeed2));
71      }
72  
73      //1.7a
74      public void testSyndFeedEquals() throws Exception {
75          SyndFeed feed1 = getCachedSyndFeed();
76          SyndFeed feed2 = getSyndFeed();
77          assertTrue(feed1.equals(feed2));
78      }
79  
80      //1.7b
81      public void testSyndFeedNotEqual() throws Exception {
82          SyndFeed feed1 = getCachedSyndFeed();
83          SyndFeed feed2 = getSyndFeed();
84          feed2.setFeedType("dummy");
85          assertFalse(feed1.equals(feed2));
86      }
87  
88      //1.8
89      public void testSyndFeedCloning() throws Exception {
90          SyndFeed feed1 = getCachedSyndFeed();
91          SyndFeed feed2 = (SyndFeed) feed1.clone();;
92          assertTrue(feed1.equals(feed2));
93      }
94  
95      //1.9
96      public void testSyndFeedSerialization() throws Exception {
97          SyndFeed feed1 = getCachedSyndFeed();
98  
99          ByteArrayOutputStream baos = new ByteArrayOutputStream();
100         ObjectOutputStream oos = new ObjectOutputStream(baos);
101         oos.writeObject(feed1);
102         oos.close();
103 
104         ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
105         ObjectInputStream ois = new ObjectInputStream(bais);
106         SyndFeed feed2 = (SyndFeed) ois.readObject();
107         ois.close();
108 
109         assertTrue(feed1.equals(feed2));
110     }
111 
112 }