1
2
3
4
5
6
7
8
9
10 package org.mule.module.ibeans;
11
12 import org.mule.ibeans.flickr.FlickrIBean;
13 import org.mule.ibeans.flickr.FlickrTransformers;
14 import org.mule.tck.junit4.AbstractMuleContextTestCase;
15
16 import java.net.URL;
17 import java.util.ArrayList;
18 import java.util.List;
19
20 import org.ibeans.annotation.IntegrationBean;
21 import org.ibeans.api.CallException;
22 import org.junit.Test;
23 import org.w3c.dom.Document;
24 import org.w3c.dom.Node;
25
26 import static org.ibeans.impl.IBeansSupport.prettyPrintXml;
27 import static org.ibeans.impl.IBeansSupport.select;
28 import static org.junit.Assert.assertEquals;
29 import static org.junit.Assert.assertNotNull;
30 import static org.junit.Assert.assertTrue;
31
32 public class FlickrTestCase extends AbstractMuleContextTestCase
33 {
34 public static final String SEARCH_TERM = "food";
35 public static final String BAD_SEARCH_TERM = "bad";
36
37 @IntegrationBean
38 private FlickrIBean flickr;
39
40 public FlickrTestCase()
41 {
42 setStartContext(true);
43 }
44
45 @Override
46 protected void doSetUp() throws Exception
47 {
48
49 muleContext.getRegistry().registerObject("test", this);
50
51 muleContext.getRegistry().registerObject("flickrTransformers", new FlickrTransformers());
52
53 getFlickr().init("3a690a103c6eabf55de5b10623021a34","1d3d4a305cc369fc", FlickrIBean.FORMAT.XML, Document.class);
54 }
55
56 protected FlickrIBean getFlickr()
57 {
58 return flickr;
59 }
60
61 @Test
62 public void testFlickrSearch() throws Exception
63 {
64 Document doc = getFlickr().search(SEARCH_TERM);
65 assertNotNull(doc);
66 List<URL> photoUrls = new ArrayList<URL>();
67
68 for (Node n : select("//photo", doc))
69 {
70 photoUrls.add(getFlickr().getPhotoURL(n));
71 }
72
73 assertEquals(10, photoUrls.size());
74 }
75
76
77 @Test
78 public void testFlickrError() throws Exception
79 {
80 getFlickr().init("badkey", FlickrIBean.FORMAT.XML, Document.class);
81
82 try
83 {
84 getFlickr().search(BAD_SEARCH_TERM);
85 }
86 catch (CallException e)
87 {
88
89 assertEquals("100", e.getErrorCode());
90 }
91 }
92
93 @Test
94 public void testSizeEnum() throws Exception
95 {
96 assertEquals("o", FlickrIBean.IMAGE_SIZE.Original.toString());
97 assertEquals("m", FlickrIBean.DEFAULT_IMAGE_SIZE.toString());
98 assertEquals(FlickrIBean.IMAGE_SIZE.Original, Enum.valueOf(FlickrIBean.IMAGE_SIZE.class, "Original"));
99
100 Document doc = getFlickr().search(SEARCH_TERM);
101
102 assertNotNull(doc);
103 List<URL> photoUrls = new ArrayList<URL>();
104
105 System.out.println(prettyPrintXml(doc));
106 for (Node n : select("//photo", doc))
107 {
108 photoUrls.add(getFlickr().getPhotoURL(n, FlickrIBean.IMAGE_SIZE.SmallSquare, FlickrIBean.IMAGE_TYPE.Jpeg));
109 }
110 assertEquals(10, photoUrls.size());
111 assertTrue(photoUrls.get(0).toString().endsWith("_s.jpg"));
112 }
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140 }