Revision 45488
Added by Claudio Atzori over 7 years ago
RegistryBlackboardManagerImplTest.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.enabling.is.registry; // NOPMD |
2 | 2 |
|
3 |
import static org.junit.Assert.assertEquals; |
|
4 |
import static org.junit.Assert.assertNull; |
|
5 |
import static org.junit.Assert.fail; |
|
6 |
import static org.mockito.Matchers.anyString; |
|
7 |
import static org.mockito.Matchers.argThat; |
|
8 |
import static org.mockito.Matchers.eq; |
|
9 |
import static org.mockito.Mockito.verify; |
|
10 |
import static org.mockito.Mockito.when; |
|
11 |
|
|
12 | 3 |
import java.io.IOException; |
13 | 4 |
import java.io.StringWriter; |
14 |
|
|
15 | 5 |
import javax.xml.bind.JAXBException; |
16 | 6 |
import javax.xml.transform.dom.DOMSource; |
17 | 7 |
import javax.xml.xpath.XPathConstants; |
18 | 8 |
import javax.xml.xpath.XPathFactory; |
19 | 9 |
|
10 |
import eu.dnetlib.enabling.tools.OpaqueResource; |
|
11 |
import eu.dnetlib.enabling.tools.StringOpaqueResource; |
|
12 |
import eu.dnetlib.enabling.tools.blackboard.*; |
|
13 |
import eu.dnetlib.miscutils.jaxb.JaxbFactory; |
|
14 |
import eu.dnetlib.rmi.enabling.ISLookUpException; |
|
15 |
import eu.dnetlib.rmi.enabling.ISLookUpService; |
|
16 |
import eu.dnetlib.rmi.enabling.ISRegistryException; |
|
17 |
import eu.dnetlib.rmi.enabling.ISRegistryService; |
|
20 | 18 |
import org.apache.commons.io.IOUtils; |
21 | 19 |
import org.apache.commons.logging.Log; |
22 | 20 |
import org.apache.commons.logging.LogFactory; |
23 | 21 |
import org.junit.Before; |
24 | 22 |
import org.junit.Test; |
25 | 23 |
import org.junit.runner.RunWith; |
26 |
import org.mockito.ArgumentMatcher; |
|
27 | 24 |
import org.mockito.Mock; |
28 |
import org.mockito.runners.MockitoJUnit44Runner;
|
|
25 |
import org.mockito.junit.MockitoJUnitRunner;
|
|
29 | 26 |
import org.w3c.dom.Element; |
30 | 27 |
import org.w3c.dom.Node; |
31 | 28 |
|
32 |
import eu.dnetlib.enabling.tools.OpaqueResource; |
|
33 |
import eu.dnetlib.enabling.tools.StringOpaqueResource; |
|
34 |
import eu.dnetlib.enabling.tools.blackboard.ActionStatus; |
|
35 |
import eu.dnetlib.enabling.tools.blackboard.BlackboardMessage; |
|
36 |
import eu.dnetlib.enabling.tools.blackboard.BlackboardMessageImpl; |
|
37 |
import eu.dnetlib.enabling.tools.blackboard.BlackboardParameter; |
|
38 |
import eu.dnetlib.enabling.tools.blackboard.BlackboardParameterImpl; |
|
39 |
import eu.dnetlib.miscutils.jaxb.JaxbFactory; |
|
40 |
import eu.dnetlib.rmi.enabling.ISLookUpException; |
|
41 |
import eu.dnetlib.rmi.enabling.ISLookUpService; |
|
42 |
import eu.dnetlib.rmi.enabling.ISRegistryException; |
|
43 |
import eu.dnetlib.rmi.enabling.ISRegistryService; |
|
29 |
import static org.junit.Assert.*; |
|
30 |
import static org.mockito.Matchers.*; |
|
31 |
import static org.mockito.Mockito.verify; |
|
32 |
import static org.mockito.Mockito.when; |
|
44 | 33 |
|
45 | 34 |
/** |
46 | 35 |
* RegistryBlackboardManagerImpl test. |
... | ... | |
48 | 37 |
* @author marko |
49 | 38 |
* |
50 | 39 |
*/ |
51 |
@RunWith(MockitoJUnit44Runner.class)
|
|
40 |
@RunWith(MockitoJUnitRunner.class) |
|
52 | 41 |
public class RegistryBlackboardManagerImplTest { |
53 | 42 |
|
54 | 43 |
/** |
... | ... | |
156 | 145 |
|
157 | 146 |
manager.addMessage(PROF_ID, MSG_ID, manager.getMessageFactory().serialize(message)); |
158 | 147 |
|
159 |
verify(registryService).updateProfile(eq(PROF_ID), argThat(new ArgumentMatcher<String>() { |
|
148 |
verify(registryService).updateProfile(eq(PROF_ID), argThat(argument -> { |
|
149 |
log.info("arg: " + argument); |
|
160 | 150 |
|
161 |
@Override |
|
162 |
public boolean matches(final Object argument) { |
|
163 |
log.info("arg: " + argument); |
|
151 |
try { |
|
152 |
final OpaqueResource updatedResource = new StringOpaqueResource(argument); |
|
153 |
final Node messageNode = (Node) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/MESSAGE[last()]", |
|
154 |
updatedResource.asDom(), XPathConstants.NODE); |
|
164 | 155 |
|
165 |
try { |
|
166 |
final OpaqueResource updatedResource = new StringOpaqueResource((String) argument); |
|
167 |
final Node messageNode = (Node) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/MESSAGE[last()]", |
|
168 |
updatedResource.asDom(), XPathConstants.NODE); |
|
156 |
final BlackboardMessage updatedMessage = manager.getMessageFactory().parse(new DOMSource(messageNode)); |
|
169 | 157 |
|
170 |
final BlackboardMessage updatedMessage = manager.getMessageFactory().parse(new DOMSource(messageNode));
|
|
158 |
assertEquals("messages should match", message, updatedMessage);
|
|
171 | 159 |
|
172 |
assertEquals("messages should match", message, updatedMessage); |
|
173 |
|
|
174 |
final Element lastUpdated = (Element) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/LAST_REQUEST", |
|
175 |
updatedResource.asDom(), XPathConstants.NODE); |
|
176 |
assertEquals("stamp date", manager.getMessageDater().getNumericStamp(), lastUpdated.getAttribute("date")); |
|
177 |
assertEquals("stamp message", MSG_ID, lastUpdated.getTextContent()); |
|
178 |
} catch (Exception e) { |
|
179 |
fail("got exception" + e); |
|
180 |
} |
|
181 |
return true; |
|
160 |
final Element lastUpdated = (Element) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/LAST_REQUEST", |
|
161 |
updatedResource.asDom(), XPathConstants.NODE); |
|
162 |
assertEquals("stamp date", manager.getMessageDater().getNumericStamp(), lastUpdated.getAttribute("date")); |
|
163 |
assertEquals("stamp message", MSG_ID, lastUpdated.getTextContent()); |
|
164 |
} catch (Exception e) { |
|
165 |
fail("got exception" + e); |
|
182 | 166 |
} |
167 |
return true; |
|
183 | 168 |
}), anyString()); |
184 | 169 |
} |
185 | 170 |
|
... | ... | |
202 | 187 |
|
203 | 188 |
manager.deleteMessage(PROF_ID, MSG_ID); |
204 | 189 |
|
205 |
verify(registryService).updateProfile(eq(PROF_ID), argThat(new ArgumentMatcher<String>() { |
|
190 |
verify(registryService).updateProfile(eq(PROF_ID), argThat(argument -> { |
|
191 |
log.debug("arg: " + argument); |
|
206 | 192 |
|
207 |
@Override |
|
208 |
public boolean matches(final Object argument) { |
|
209 |
log.debug("arg: " + argument); |
|
193 |
try { |
|
194 |
final OpaqueResource updatedResource = new StringOpaqueResource(argument); |
|
210 | 195 |
|
211 |
try {
|
|
212 |
final OpaqueResource updatedResource = new StringOpaqueResource((String) argument);
|
|
196 |
final Node messageNode = (Node) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/MESSAGE[last()]",
|
|
197 |
updatedResource.asDom(), XPathConstants.NODE);
|
|
213 | 198 |
|
214 |
final Node messageNode = (Node) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/MESSAGE[last()]", |
|
215 |
updatedResource.asDom(), XPathConstants.NODE); |
|
216 |
|
|
217 |
assertNull("message should be deleted", messageNode); |
|
218 |
} catch (Exception e) { |
|
219 |
fail("got exception" + e); |
|
220 |
} |
|
221 |
return true; |
|
199 |
assertNull("message should be deleted", messageNode); |
|
200 |
} catch (Exception e) { |
|
201 |
fail("got exception" + e); |
|
222 | 202 |
} |
203 |
return true; |
|
223 | 204 |
}), anyString()); |
224 | 205 |
|
225 | 206 |
// assertNotNull("dummy", manager); |
... | ... | |
262 | 243 |
|
263 | 244 |
manager.replyMessage(PROF_ID, manager.getMessageFactory().serialize(message)); |
264 | 245 |
|
265 |
verify(registryService).updateProfile(eq(PROF_ID), argThat(new ArgumentMatcher<String>() { |
|
246 |
verify(registryService).updateProfile(eq(PROF_ID), argThat(argument -> { |
|
247 |
log.info("arg: " + argument); |
|
266 | 248 |
|
267 |
@Override |
|
268 |
public boolean matches(final Object argument) { |
|
269 |
log.info("arg: " + argument); |
|
249 |
try { |
|
250 |
final OpaqueResource updatedResource = new StringOpaqueResource(argument); |
|
270 | 251 |
|
271 |
try {
|
|
272 |
final OpaqueResource updatedResource = new StringOpaqueResource((String) argument);
|
|
252 |
final Node messageNode = (Node) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/MESSAGE[last()]",
|
|
253 |
updatedResource.asDom(), XPathConstants.NODE);
|
|
273 | 254 |
|
274 |
final Node messageNode = (Node) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/MESSAGE[last()]", |
|
275 |
updatedResource.asDom(), XPathConstants.NODE); |
|
255 |
final BlackboardMessage updatedMessage = manager.getMessageFactory().parse(new DOMSource(messageNode)); |
|
276 | 256 |
|
277 |
final BlackboardMessage updatedMessage = manager.getMessageFactory().parse(new DOMSource(messageNode));
|
|
257 |
assertEquals("messages should match", message, updatedMessage);
|
|
278 | 258 |
|
279 |
assertEquals("messages should match", message, updatedMessage); |
|
280 |
|
|
281 |
final Element lastUpdated = (Element) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/LAST_RESPONSE", |
|
282 |
updatedResource.asDom(), XPathConstants.NODE); |
|
283 |
assertEquals("stamp date", manager.getMessageDater().getNumericStamp(), lastUpdated.getAttribute("date")); |
|
284 |
assertEquals("stamp message", MSG_ID, lastUpdated.getTextContent()); |
|
285 |
} catch (Exception e) { |
|
286 |
fail("got exception" + e); |
|
287 |
} |
|
288 |
return true; |
|
259 |
final Element lastUpdated = (Element) XPathFactory.newInstance().newXPath().evaluate("//BLACKBOARD/LAST_RESPONSE", |
|
260 |
updatedResource.asDom(), XPathConstants.NODE); |
|
261 |
assertEquals("stamp date", manager.getMessageDater().getNumericStamp(), lastUpdated.getAttribute("date")); |
|
262 |
assertEquals("stamp message", MSG_ID, lastUpdated.getTextContent()); |
|
263 |
} catch (Exception e) { |
|
264 |
fail("got exception" + e); |
|
289 | 265 |
} |
266 |
return true; |
|
290 | 267 |
}), anyString()); |
291 | 268 |
} |
292 | 269 |
|
Also available in: Unified diff
using updated mockito version