This project has retired. For details please refer to its
Attic page.
SubscriptionNotifierTest xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.apache.juddi.subscription;
16
17 import java.net.MalformedURLException;
18 import java.rmi.RemoteException;
19 import java.util.Collection;
20 import java.util.Date;
21
22 import javax.xml.datatype.DatatypeConfigurationException;
23
24 import org.apache.commons.configuration.ConfigurationException;
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27 import org.apache.juddi.api.impl.API_010_PublisherTest;
28 import org.apache.juddi.api.impl.UDDIInquiryImpl;
29 import org.apache.juddi.api.impl.UDDIPublicationImpl;
30 import org.apache.juddi.api.impl.UDDISecurityImpl;
31 import org.apache.juddi.api.impl.UDDISubscriptionImpl;
32 import org.apache.juddi.model.Subscription;
33 import org.apache.juddi.model.UddiEntityPublisher;
34 import org.apache.juddi.v3.client.UDDIConstants;
35 import org.apache.juddi.v3.tck.TckBindingTemplate;
36 import org.apache.juddi.v3.tck.TckBusiness;
37 import org.apache.juddi.v3.tck.TckBusinessService;
38 import org.apache.juddi.v3.tck.TckPublisher;
39 import org.apache.juddi.v3.tck.TckSecurity;
40 import org.apache.juddi.v3.tck.TckSubscription;
41 import org.apache.juddi.v3.tck.TckTModel;
42 import org.junit.AfterClass;
43 import org.junit.Assert;
44 import org.junit.Assume;
45 import org.junit.BeforeClass;
46 import org.junit.Test;
47 import org.uddi.api_v3.FindQualifiers;
48 import org.uddi.api_v3.FindService;
49 import org.uddi.api_v3.Name;
50 import org.uddi.api_v3.ServiceList;
51 import org.uddi.sub_v3.GetSubscriptionResults;
52 import org.uddi.sub_v3.SubscriptionResultsList;
53 import org.uddi.v3_service.DispositionReportFaultMessage;
54
55
56
57
58 public class SubscriptionNotifierTest {
59
60 private static Log logger = LogFactory.getLog(SubscriptionNotifierTest.class);
61 private static API_010_PublisherTest api010 = new API_010_PublisherTest();
62 private static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
63 private static TckBusiness tckBusiness = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
64 private static TckBusinessService tckBusinessService = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
65 private static TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
66 private static TckSubscription tckSubscription = new TckSubscription(new UDDISubscriptionImpl(), new UDDISecurityImpl(), new UDDIInquiryImpl());
67 private static String authInfoJoe = null;
68
69 @BeforeClass
70 public static void setup() {
71 logger.info("SubscriptionNotifierTest setup");
72 logger.debug("Getting auth token..");
73 try {
74 DumpAllBusinesses();
75
76
77
78 api010.saveJoePublisher();
79
80
81 authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
82
83 tckTModel.saveJoePublisherTmodel(authInfoJoe);
84
85
86
87
88 tckBusiness.saveJoePublisherBusiness(authInfoJoe);
89
90
91
92
93
94 String bindingKey = tckBusinessService.saveJoePublisherService(authInfoJoe);
95
96 if (bindingKey==null || bindingKey.length()==0)
97 logger.fatal("Service binding key is null!");
98
99
100
101
102 tckSubscription.saveJoePublisherSubscription(authInfoJoe, bindingKey);
103
104 DumpAllBusinesses();
105
106
107
108
109 } catch (RemoteException e) {
110 logger.error(e.getMessage(), e);
111 Assert.fail("Could not obtain authInfo token.");
112 }
113 }
114
115 private static void DumpAllBusinesses() {
116 UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
117 FindService fs = new FindService();
118 fs.setFindQualifiers(new FindQualifiers());
119 fs.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
120 fs.getName().add(new Name("%", null));
121 try {
122 ServiceList findService = inquiry.findService(fs);
123 if (findService.getServiceInfos() == null) {
124 logger.warn("NO SERVICES RETURNED!");
125 } else {
126 for (int i = 0; i < findService.getServiceInfos().getServiceInfo().size(); i++) {
127 logger.warn(findService.getServiceInfos().getServiceInfo().get(i).getName().get(0).getValue() + " "
128 + findService.getServiceInfos().getServiceInfo().get(i).getServiceKey() + " "
129 + findService.getServiceInfos().getServiceInfo().get(i).getBusinessKey());
130 }
131 }
132 } catch (Exception ex) {
133 ex.printStackTrace();
134 }
135 }
136
137 @Test
138 public void testGetSubscriptionResults()
139 throws ConfigurationException, MalformedURLException, DispositionReportFaultMessage, DatatypeConfigurationException {
140 SubscriptionNotifier notifier = new SubscriptionNotifier();
141 notifier.cancel();
142 Collection<Subscription> subscriptions = notifier.getAllAsyncSubscriptions();
143
144 Assert.assertEquals(1, subscriptions.size());
145 Subscription subscription = subscriptions.iterator().next();
146 Assert.assertNotNull(subscription);
147 GetSubscriptionResults getSubscriptionResults = notifier.buildGetSubscriptionResults(subscription, new Date(new Date().getTime() + 60000l));
148 if (getSubscriptionResults!=null)
149 {
150 getSubscriptionResults.setSubscriptionKey(subscription.getSubscriptionKey());
151 UddiEntityPublisher publisher = new UddiEntityPublisher();
152 publisher.setAuthorizedName(subscription.getAuthorizedName());
153 SubscriptionResultsList resultList = notifier.getSubscriptionImpl().getSubscriptionResults(getSubscriptionResults, publisher);
154 logger.info("Expecting the resultList to be null: " + resultList.getServiceList());
155 Assert.assertNull(resultList.getServiceList());
156 tckBusinessService.updateJoePublisherService(authInfoJoe, "updated description");
157 resultList = notifier.getSubscriptionImpl().getSubscriptionResults(getSubscriptionResults, publisher);
158
159 logger.info("Expecting the resultList to have 1 service: " + resultList.getServiceList());
160 Assert.assertNotNull(resultList.getServiceList());
161
162 boolean hasChanges = notifier.resultListContainsChanges(resultList);
163 Assert.assertTrue(hasChanges);
164 System.out.print(resultList);
165 notifier.notify(getSubscriptionResults, resultList, new Date());
166 }
167 else{
168 logger.error("testGetSubscriptionResults, getSubscriptionResults unexpectedly null");
169 Assume.assumeTrue(getSubscriptionResults==null);
170 }
171 }
172
173 @AfterClass
174 public static void teardown() {
175 logger.info("Calling teardown");
176
177 {
178 DumpAllBusinesses();
179 }
180 tckSubscription.deleteJoePublisherSubscription(authInfoJoe);
181
182 tckBusinessService.deleteJoePublisherService(authInfoJoe);
183 tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
184 tckTModel.deleteJoePublisherTmodel(authInfoJoe);
185 }
186 }