This project has retired. For details please refer to its Attic page.
API_100_ClientSubscriptionInfoTest xref
View Javadoc
1   /*
2    * Copyright 2001-2009 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    *      http://www.apache.org/licenses/LICENSE-2.0
8    * 
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.apache.juddi.api.impl;
16  
17  import java.rmi.RemoteException;
18  import java.util.ArrayList;
19  import java.util.List;
20  
21  import org.apache.commons.configuration.ConfigurationException;
22  import org.apache.commons.logging.Log;
23  import org.apache.commons.logging.LogFactory;
24  import org.apache.juddi.Registry;
25  import org.apache.juddi.api_v3.Clerk;
26  import org.apache.juddi.api_v3.ClerkDetail;
27  import org.apache.juddi.api_v3.ClientSubscriptionInfo;
28  import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
29  import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
30  import org.apache.juddi.api_v3.GetClientSubscriptionInfoDetail;
31  import org.apache.juddi.api_v3.Node;
32  import org.apache.juddi.api_v3.NodeDetail;
33  import org.apache.juddi.api_v3.SaveClerk;
34  import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
35  import org.apache.juddi.api_v3.SaveNode;
36  import org.apache.juddi.v3.error.InvalidKeyPassedException;
37  import org.apache.juddi.v3.error.ValueNotAllowedException;
38  import org.apache.juddi.v3.tck.TckPublisher;
39  import org.apache.juddi.v3.tck.TckSecurity;
40  import org.junit.AfterClass;
41  import org.junit.Assert;
42  import org.junit.BeforeClass;
43  import org.junit.Test;
44  import org.uddi.v3_service.DispositionReportFaultMessage;
45  import org.uddi.v3_service.UDDISecurityPortType;
46  
47  /**
48   * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
49   */
50  public class API_100_ClientSubscriptionInfoTest {
51  	
52  	private JUDDIApiImpl publisher                    = new JUDDIApiImpl();
53  	private static Log logger                         = LogFactory.getLog(API_100_ClientSubscriptionInfoTest.class);
54  	private static API_010_PublisherTest api010       = new API_010_PublisherTest();
55  	private static String authInfoJoe                 = null;
56  	
57  	@BeforeClass
58  	public static void setup() throws ConfigurationException, RemoteException {
59  		Registry.start();
60  		logger.debug("Getting auth tokens..");
61  		try {
62  			api010.saveJoePublisher();
63  			UDDISecurityPortType security      = new UDDISecurityImpl();
64  			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
65  		} catch (DispositionReportFaultMessage e) {
66  			logger.error(e.getMessage(), e);
67  			Assert.fail("Could not obtain authInfo token.");
68  		}
69  	}
70  	
71  	@AfterClass
72  	public static void stopRegistry() throws ConfigurationException {
73  		Registry.stop();
74  	}
75  	
76  	@Test
77  	public void addClientSubscriptionInfo() {
78  		ClientSubscriptionInfo clientSubscriptionInfo = new ClientSubscriptionInfo();
79  		
80  		Node node = new Node();
81  		node.setSecurityUrl("http://localhost:8080/services/securityUrl");
82  		node.setCustodyTransferUrl("http://localhost:8080/services/securityUrl");
83  		node.setDescription("description");
84  		node.setInquiryUrl("http://localhost:8080/services/securityUrl");
85  		node.setPublishUrl("http://localhost:8080/services/publishUrl");
86                  node.setSubscriptionListenerUrl("http://localhost:8080/services/subUrladdClientSubscriptionInfo");
87  		node.setProxyTransport("org.apache.juddi.v3.client.transport.JAXWSTransport");
88  		node.setSubscriptionUrl("http://localhost:8080/services/securityUrl");
89  		node.setName("default");
90  		node.setClientName("defaultClient");
91  		SaveNode saveNode = new SaveNode();
92  		saveNode.setAuthInfo(authInfoJoe);
93  		saveNode.getNode().add(node);
94  		
95  		Clerk clerk = new Clerk();
96  		clerk.setName("clerkName");
97  		clerk.setPublisher("root");
98  		clerk.setNode(node);
99  		SaveClerk saveClerk = new SaveClerk();
100 		saveClerk.setAuthInfo(authInfoJoe);
101 		saveClerk.getClerk().add(clerk);
102 		
103 		clientSubscriptionInfo.setFromClerk(clerk);
104 		
105 		Node node2 = new Node();
106 		node2.setSecurityUrl("http://localhost:8080/services/securityUrl2");
107 		node2.setCustodyTransferUrl("https://localhost:8080/services/securityUrl2");
108 		node2.setDescription("description2");
109 		node2.setInquiryUrl("http://localhost:8080/services/securityUrl2");
110 		node2.setPublishUrl("http://localhost:8080/services/securityUrl2");
111 		node2.setProxyTransport("org.apache.juddi.v3.client.transport.JAXWSTransport");
112 		node2.setSubscriptionUrl("http://localhost:8080/services/securityUrl2");
113                 node2.setSubscriptionListenerUrl("http://localhost:8080/services/securityUrl2");
114 		node2.setName("default2");
115 		node2.setClientName("default2Client");
116 		saveNode.getNode().add(node2);
117 		
118 		Clerk clerk2 = new Clerk();
119 		clerk2.setName("clerkName2");
120 		clerk2.setPublisher("root");
121 		clerk2.setNode(node2);
122 		saveClerk.getClerk().add(clerk2);
123 		
124 		clientSubscriptionInfo.setFromClerk(clerk);
125 		
126 		clientSubscriptionInfo.setSubscriptionKey("mykey");
127 		
128 		SaveClientSubscriptionInfo saveClientSubscriptionInfo = new SaveClientSubscriptionInfo();
129 		saveClientSubscriptionInfo.setAuthInfo(authInfoJoe);
130 		saveClientSubscriptionInfo.getClientSubscriptionInfo().add(clientSubscriptionInfo);
131 		
132 		ClientSubscriptionInfo clientSubscriptionInfo2 = new ClientSubscriptionInfo();
133 		clientSubscriptionInfo2.setSubscriptionKey("mykey2");
134 		clientSubscriptionInfo2.setFromClerk(clerk2);
135 		saveClientSubscriptionInfo.getClientSubscriptionInfo().add(clientSubscriptionInfo2);
136 		
137 		try {
138 
139 			NodeDetail nodeDetail = publisher.saveNode(saveNode);
140 			ClerkDetail clerkDetail = publisher.saveClerk(saveClerk);
141 			Assert.assertEquals(2,nodeDetail.getNode().size());
142 			Assert.assertEquals(2,clerkDetail.getClerk().size());
143 			
144 			ClientSubscriptionInfoDetail detail = publisher.saveClientSubscriptionInfo(saveClientSubscriptionInfo);
145 			Assert.assertEquals("mykey", detail.getClientSubscriptionInfo().get(0).getSubscriptionKey());
146 			
147 			//GetClientSubscriptionInfoDetail getDetail = new GetClientSubscriptionInfoDetail();
148 			//getDetail.setAuthInfo(authInfoJoe);
149 			//getDetail.getClientSubscriptionKey().add("mykey");
150 			List<String>keys = new ArrayList<String>();
151                         keys.add("mykey");
152                         GetClientSubscriptionInfoDetail req = new GetClientSubscriptionInfoDetail();
153                         req.setAuthInfo(authInfoJoe);
154                         req.getClientSubscriptionKey().addAll(keys);
155 			ClientSubscriptionInfoDetail detail2 = publisher.getClientSubscriptionInfoDetail(req);
156 			Assert.assertEquals("mykey", detail2.getClientSubscriptionInfo().get(0).getSubscriptionKey());
157 	
158 			DeleteClientSubscriptionInfo deleteInfo = new DeleteClientSubscriptionInfo();
159 			deleteInfo.setAuthInfo(authInfoJoe);
160 			deleteInfo.getSubscriptionKey().add("mykey");
161 			publisher.deleteClientSubscriptionInfo(deleteInfo);
162 			
163 			try {
164 				@SuppressWarnings("unused")
165                                         
166 				ClientSubscriptionInfoDetail detail3 = publisher.getClientSubscriptionInfoDetail(req);
167 				Assert.fail("We're expecting an InvalidKeyPassedException");
168 			} catch (Exception e) {
169 				Assert.assertEquals(InvalidKeyPassedException.class, e.getClass());
170 			}
171 		} catch(Exception e) {
172 			logger.error(e.getMessage(), e);
173 			Assert.fail("No exception should be thrown");
174 		}
175 	}
176         
177         
178         
179         @Test(expected = ValueNotAllowedException.class)
180 	public void addNodeInvalidProxy() throws Exception {
181 		
182 		Node node = new Node();
183 		node.setSecurityUrl("http://localhost:8080/services/securityUrl");
184 		node.setCustodyTransferUrl("http://localhost:8080/services/securityUrl");
185 		node.setDescription("description");
186 		node.setInquiryUrl("http://localhost:8080/services/securityUrl");
187 		node.setPublishUrl("http://localhost:8080/services/publishUrl");
188                 node.setSubscriptionListenerUrl("http://localhost:8080/services/subUrladdClientSubscriptionInfo");
189 		node.setProxyTransport("orgasdasdasdasd.apache.juddi.v3.client.transport.JAXWSTransport");
190 		node.setSubscriptionUrl("http://localhost:8080/services/securityUrl");
191 		node.setName("default");
192 		node.setClientName("defaultClient");
193 		SaveNode saveNode = new SaveNode();
194 		saveNode.setAuthInfo(authInfoJoe);
195 		saveNode.getNode().add(node);
196 		
197 		NodeDetail nodeDetail = publisher.saveNode(saveNode);
198                 Assert.fail();
199 		
200 		
201 	}
202 	
203 }