This project has retired. For details please refer to its Attic page.
SubscriptionCallbackTest xref
View Javadoc
1   /*
2    * Copyright 2013 The Apache Software Foundation.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.juddi.v3.client.subscription;
17  
18  import java.util.logging.Level;
19  import java.util.logging.Logger;
20  import org.apache.commons.configuration.ConfigurationException;
21  import org.apache.juddi.v3.client.config.UDDIClerk;
22  import org.apache.juddi.v3.client.config.UDDIClient;
23  import org.junit.Assert;
24  import org.junit.Test;
25  import org.uddi.api_v3.BindingTemplate;
26  import org.uddi.sub_v3.SubscriptionResultsList;
27  import org.uddi.subr_v3.NotifySubscriptionListener;
28  
29  /**
30   * a basic test client for the subscription callback
31   *
32   * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
33   */
34  public class SubscriptionCallbackTest implements ISubscriptionCallback {
35  
36      static final Logger log = Logger.getLogger(SubscriptionCallbackTest.class.getCanonicalName());
37  
38      @Test
39      public void Test1_NoAutoRegister() throws Exception {
40          log.info("Test1_NoAutoRegister");
41  
42          UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
43          c.start();
44          UDDIClerk clerk = c.getClerk("default");
45          // TModel createKeyGenator = UDDIClerk.createKeyGenator("uddi:org.apache.juddi:test:keygenerator", "Test domain", "en");
46          //clerk.register(createKeyGenator);
47          BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
48          Assert.assertNotNull(start);
49          Assert.assertNotNull(start);
50          //Assert.assertNotNull(start.getBindingKey());
51          SubscriptionCallbackListener.stop(c, "default", start.getBindingKey());
52          c.stop();
53  
54      }
55      boolean Test2_NoAutoRegisterAndShortCircuitReceive_ = false;
56  
57      @Test
58      public void Test2_NoAutoRegisterAndShortCircuitReceive() throws Exception {
59          log.info("Test2_NoAutoRegisterAndShortCircuitReceive");
60          Test2_NoAutoRegisterAndShortCircuitReceive_ = false;
61          UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
62          c.start();
63          UDDIClerk clerk = c.getClerk("default");
64          // TModel createKeyGenator = UDDIClerk.createKeyGenator("uddi:org.apache.juddi:test:keygenerator", "Test domain", "en");
65          //clerk.register(createKeyGenator);
66          BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
67          Assert.assertNotNull(start);
68          //Assert.assertNotNull(start.getBindingKey());
69          SubscriptionCallbackListener.registerCallback(this);
70          Assert.assertNotNull(SubscriptionCallbackListener.getInstance());
71          SubscriptionCallbackListener.getInstance().notifySubscriptionListener(new NotifySubscriptionListener());
72  
73          SubscriptionCallbackListener.stop(c, "default", start.getBindingKey());
74          c.stop();
75          Assert.assertTrue(Test2_NoAutoRegisterAndShortCircuitReceive_);
76      }
77  
78      @Test(expected = ServiceAlreadyStartedException.class)
79      public void Test3_StartWhenAlreadyStarted() throws Exception {
80          log.info("Test3_StartWhenAlreadyStarted");
81          UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
82          c.start();
83          UDDIClerk clerk = c.getClerk("default");
84          // TModel createKeyGenator = UDDIClerk.createKeyGenator("uddi:org.apache.juddi:test:keygenerator", "Test domain", "en");
85          //clerk.register(createKeyGenator);
86          BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
87          try {
88              BindingTemplate start1 = SubscriptionCallbackListener.start(c, "default");
89          } catch (ServiceAlreadyStartedException x) {
90              SubscriptionCallbackListener.stop(c, "default", null);
91              c.stop();
92              throw x;
93          }
94  
95  
96      }
97      private boolean Test4_NotifyEndpointStopped_ = false;
98  
99      @Test
100     public void Test4_NotifyEndpointStopped() throws Exception {
101         log.info("Test4_NotifyEndpointStopped");
102         //reset
103         Test4_NotifyEndpointStopped_ = false;
104         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
105         c.start();
106         UDDIClerk clerk = c.getClerk("default");
107 
108         BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
109         SubscriptionCallbackListener.registerCallback(this);
110 
111         SubscriptionCallbackListener.stop(c, "default", null);
112         c.stop();
113         Assert.assertTrue(Test4_NotifyEndpointStopped_);
114 
115 
116     }
117 
118     @Test
119     public void Test5_RegisterNullCallback() throws ConfigurationException {
120         log.info("Test5_RegisterNullCallback");
121 
122         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
123         SubscriptionCallbackListener.registerCallback(null);
124 
125         SubscriptionCallbackListener.unRegisterCallback(null);
126 
127         SubscriptionCallbackListener.stop(c, "default", null);
128         c.stop();
129     }
130 
131     @Test
132     public void Test6_UnRegisterUnRegisteredCallback() throws ConfigurationException, ServiceAlreadyStartedException {
133         log.info("Test6_UnRegisterUnRegisteredCallback");
134 
135         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
136 
137         SubscriptionCallbackListener.unregisterAllCallbacks();
138 
139         SubscriptionCallbackListener.unRegisterCallback(new ISubscriptionCallback() {
140             @Override
141             public void handleCallback(SubscriptionResultsList body) {
142             }
143 
144             @Override
145             public void notifyEndpointStopped() {
146             }
147         });
148 
149         SubscriptionCallbackListener.stop(c, "default", null);
150         c.stop();
151     }
152 
153     @Test
154     public void Test7_NullCallbackAddress() throws Exception {
155         log.info("Test7_NullCallbackAddress");
156 
157         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback2.xml");
158         BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
159         Assert.assertNotNull(start);
160         Assert.assertNotNull(SubscriptionCallbackListener.getCallbackURL());
161         Assert.assertNotNull(start.getAccessPoint());
162         Assert.assertNotNull(start.getAccessPoint().getValue());
163         log.log(Level.INFO, "AP url: {0} EP url: {1}", new Object[]{start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL()});
164         Assert.assertEquals(start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL());
165         SubscriptionCallbackListener.stop(c, "default", null);
166         c.stop();
167     }
168 
169     @Test
170     public void Test8_InvalidCallbackAddress() throws Exception {
171         log.info("Test8_InvalidCallbackAddress");
172 
173         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback3.xml");
174         BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
175         Assert.assertNotNull(start);
176         Assert.assertNotNull(SubscriptionCallbackListener.getCallbackURL());
177         Assert.assertNotNull(start.getAccessPoint());
178         Assert.assertNotNull(start.getAccessPoint().getValue());
179         log.log(Level.INFO, "AP url: {0} EP url: {1}", new Object[]{start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL()});
180         Assert.assertEquals(start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL());
181         SubscriptionCallbackListener.stop(c, "default", null);
182         c.stop();
183     }
184 
185     @Test
186     public void Test9_FaultyImplementator1() throws Exception {
187         log.info("Test9_FaultyImplementator1");
188 
189         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
190         BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
191         Assert.assertNotNull(start);
192         Assert.assertNotNull(SubscriptionCallbackListener.getCallbackURL());
193         Assert.assertNotNull(start.getAccessPoint());
194         Assert.assertNotNull(start.getAccessPoint().getValue());
195         log.log(Level.INFO, "AP url: {0} EP url: {1}", new Object[]{start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL()});
196         Assert.assertEquals(start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL());
197 
198         SubscriptionCallbackListener.registerCallback(new ISubscriptionCallback() {
199             @Override
200             public void handleCallback(SubscriptionResultsList body) {
201                 log.info("bogus callback received");
202             }
203 
204             @Override
205             public void notifyEndpointStopped() {
206                 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
207             }
208         });
209         SubscriptionCallbackListener.getInstance().notifySubscriptionListener(new NotifySubscriptionListener());
210         SubscriptionCallbackListener.stop(c, "default", null);
211         c.stop();
212     }
213 
214     @Test
215     public void Test10_FaultyImplementator1() throws Exception {
216         log.info("Test10_FaultyImplementator1");
217 
218         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
219         BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
220         Assert.assertNotNull(start);
221         Assert.assertNotNull(SubscriptionCallbackListener.getCallbackURL());
222         Assert.assertNotNull(start.getAccessPoint());
223         Assert.assertNotNull(start.getAccessPoint().getValue());
224         log.log(Level.INFO, "AP url: {0} EP url: {1}", new Object[]{start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL()});
225         Assert.assertEquals(start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL());
226 
227         SubscriptionCallbackListener.registerCallback(new ISubscriptionCallback() {
228             @Override
229             public void handleCallback(SubscriptionResultsList body) {
230                 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
231             }
232 
233             @Override
234             public void notifyEndpointStopped() {
235                 log.info("bogus callback received");
236 
237             }
238         });
239         SubscriptionCallbackListener.getInstance().notifySubscriptionListener(new NotifySubscriptionListener());
240         SubscriptionCallbackListener.stop(c, "default", null);
241         c.stop();
242     }
243 
244     @Test
245     public void Test11_DoubleStop() throws Exception {
246         log.info("Test11_DoubleStop");
247 
248         UDDIClient c = new UDDIClient("META-INF/uddi-subcallback1.xml");
249         BindingTemplate start = SubscriptionCallbackListener.start(c, "default");
250         Assert.assertNotNull(start);
251         Assert.assertNotNull(SubscriptionCallbackListener.getCallbackURL());
252         Assert.assertNotNull(start.getAccessPoint());
253         Assert.assertNotNull(start.getAccessPoint().getValue());
254         log.log(Level.INFO, "AP url: {0} EP url: {1}", new Object[]{start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL()});
255         Assert.assertEquals(start.getAccessPoint().getValue(), SubscriptionCallbackListener.getCallbackURL());
256 
257 
258         SubscriptionCallbackListener.stop(c, "default", null);
259         SubscriptionCallbackListener.stop(c, "default", null);
260         c.stop();
261         c.stop();
262     }
263 
264     @Override
265     public void handleCallback(SubscriptionResultsList body) {
266         log.info("HandleCallback received");
267         Test2_NoAutoRegisterAndShortCircuitReceive_ = true;
268     }
269 
270     @Override
271     public void notifyEndpointStopped() {
272         log.info("NotifyEndpointStopped received");
273         Test4_NotifyEndpointStopped_ = true;
274     }
275 }