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