1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package org.ogf.graap.wsag.it;
36
37 import org.apache.log4j.Logger;
38 import org.apache.xmlbeans.XmlObject;
39 import org.ogf.graap.wsag.api.AgreementOffer;
40 import org.ogf.graap.wsag.api.client.AgreementClient;
41 import org.ogf.graap.wsag.api.client.AgreementFactoryClient;
42 import org.ogf.graap.wsag.api.exceptions.AgreementFactoryException;
43 import org.ogf.graap.wsag.api.exceptions.ResourceUnavailableException;
44 import org.ogf.graap.wsag.api.exceptions.ResourceUnknownException;
45 import org.ogf.graap.wsag.api.types.AgreementOfferType;
46 import org.ogf.schemas.graap.wsAgreement.AgreementStateDefinition;
47 import org.ogf.schemas.graap.wsAgreement.AgreementTemplateType;
48 import org.ogf.schemas.graap.wsAgreement.ServiceDescriptionTermType;
49 import org.w3.x2005.x08.addressing.EndpointReferenceDocument;
50 import org.w3.x2005.x08.addressing.EndpointReferenceType;
51
52
53
54
55
56
57
58 public abstract class AbstractPendingAgreementFactoryTest extends AbstractIntegrationTest
59 {
60
61
62
63
64 private static final int SUBCONTRACTING_WAITING_TIME = 8000;
65
66 private static final Logger LOG = Logger.getLogger( AbstractPendingAgreementFactoryTest.class );
67
68
69
70
71
72
73 public AbstractPendingAgreementFactoryTest( String name )
74 {
75 super( name );
76 }
77
78
79
80
81 public void testCreatePendingAgreement()
82 {
83 try
84 {
85 LOG.info( "Entering TestCase: testCreatePendingAgreement" );
86
87 AgreementFactoryClient[] factories = getAgreementFactoryClients();
88 assertEquals( EXPECTED_FACTORIES, factories.length );
89
90 LOG.info( "Overview of the available factories and their templates." );
91 for ( int i = 0; i < 2; i++ )
92 {
93 LOG.info( "+ " + factories[i].getResourceId() );
94
95 AgreementTemplateType[] templates = factories[i].getTemplates();
96 LOG.info( " + Num of templates: " + templates.length );
97
98 for ( int k = 0; k < templates.length; k++ )
99 {
100 LOG.info( " + " + templates[k].getName() );
101 }
102 }
103
104 AgreementFactoryClient factory = factories[0];
105
106 AgreementClient[] agreements;
107
108 LOG.info( "Creating new Agreements" );
109 AgreementTemplateType template = factory.getTemplate( "SAMPLE4-PENDING-AGREEMENT", "1" );
110 AgreementOffer offer = new AgreementOfferType( template );
111
112 LOG.info( "Create pending agreement" );
113 AgreementClient agreement1 = factory.createPendingAgreement( offer );
114
115 assertNotNull( "the created agreement must not be <null>", agreement1 );
116
117 assertEquals( "The state of the pending agreement must be PENDING.",
118 AgreementStateDefinition.INT_PENDING, agreement1.getState().getState().intValue() );
119
120
121
122
123 while ( agreement1.getState().getState() != AgreementStateDefinition.OBSERVED )
124 {
125 Thread.sleep( 1000 );
126 }
127
128 LOG.info( "Destroy agreement 1" );
129 agreement1.destroy();
130 agreements = factory.listAgreements();
131 assertEquals( 0, agreements.length );
132
133 }
134 catch ( AgreementFactoryException e )
135 {
136 fail( "AgreementFactoryException: " + e.getMessage() );
137 }
138 catch ( ResourceUnavailableException e )
139 {
140 fail( "ResourceUnavailableException: " + e.getMessage() );
141 }
142 catch ( ResourceUnknownException e )
143 {
144 fail( "ResourceUnknownException: " + e.getMessage() );
145 }
146 catch ( Exception e )
147 {
148 fail( "Could not create agreement factory instance. Error: " + e.getMessage() );
149
150 if ( LOG.isDebugEnabled() )
151 {
152 LOG.debug( e );
153 }
154 }
155 }
156
157
158
159
160
161 public void testCreatePendingAgreementWithNotification()
162 {
163 try
164 {
165 LOG.info( "Entering TestCase: testCreatePendingAgreementWithNotification" );
166
167 AgreementFactoryClient[] factories = getAgreementFactoryClients();
168 assertEquals( EXPECTED_FACTORIES, factories.length );
169
170 LOG.info( "Overview of the available factories and their templates." );
171 for ( int i = 0; i < 2; i++ )
172 {
173 LOG.info( "+ " + factories[i].getResourceId() );
174
175 AgreementTemplateType[] templates = factories[i].getTemplates();
176 LOG.info( " + Num of templates: " + templates.length );
177
178 for ( int k = 0; k < templates.length; k++ )
179 {
180 LOG.info( " + " + templates[k].getName() );
181 }
182 }
183
184 AgreementFactoryClient factory = factories[1];
185 AgreementFactoryClient scFactory = factories[0];
186
187 AgreementClient[] agreements;
188
189
190
191
192
193
194
195 LOG.info( "Creating new Agreements" );
196 AgreementTemplateType template =
197 factory.getTemplate( "SAMPLE5-PENDING-AGREEMENT-WITH-NOTIFICATION", "1" );
198
199
200
201
202 ServiceDescriptionTermType sdt = template.getTerms().getAll().getServiceDescriptionTermArray( 0 );
203 XmlObject[] children =
204 sdt.selectChildren( EndpointReferenceDocument.type.getDocumentElementName() );
205 EndpointReferenceType targetEPR = (EndpointReferenceType) children[0];
206 targetEPR.set( scFactory.getEndpoint() );
207
208 AgreementOffer offer = new AgreementOfferType( template );
209
210 LOG.info( "Create pending agreement" );
211 AgreementClient agreement1 = factory.createPendingAgreement( offer );
212
213 assertNotNull( "the created agreement must not be <null>", agreement1 );
214
215
216
217
218
219
220
221
222 Thread.sleep( SUBCONTRACTING_WAITING_TIME );
223
224
225
226
227 LOG.info( "Destroy agreement 1" );
228 agreement1.destroy();
229 agreements = factory.listAgreements();
230 assertEquals( 0, agreements.length );
231 }
232 catch ( AgreementFactoryException e )
233 {
234 fail( "AgreementFactoryException: " + e.getMessage() );
235 }
236 catch ( ResourceUnavailableException e )
237 {
238 fail( "ResourceUnavailableException: " + e.getMessage() );
239 }
240 catch ( ResourceUnknownException e )
241 {
242 fail( "ResourceUnknownException: " + e.getMessage() );
243 }
244 catch ( Exception e )
245 {
246 fail( "Could not create agreement factory instance. Error: " + e.getMessage() );
247
248 if ( LOG.isDebugEnabled() )
249 {
250 LOG.debug( e );
251 }
252 }
253 }
254 }