blob: 8aadaf38e4d74a30afae58bc92ba5a06d360bfbe [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001package net.floodlightcontroller.util;
2
Jonathan Harta88fd242014-04-03 11:24:54 -07003import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertNotNull;
5import static org.junit.Assert.assertNull;
6import static org.junit.Assert.assertTrue;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08007
Jonathan Harta88fd242014-04-03 11:24:54 -07008import java.io.IOException;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08009import java.util.Collection;
10import java.util.Date;
11import java.util.List;
12import java.util.Map;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070013import java.util.Set;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080014import java.util.concurrent.Future;
15
16import net.floodlightcontroller.core.FloodlightContext;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070017import net.floodlightcontroller.core.IFloodlightProviderService;
Jonathan Harta88fd242014-04-03 11:24:54 -070018import net.floodlightcontroller.core.IFloodlightProviderService.Role;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080019import net.floodlightcontroller.core.IOFSwitch;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070020import net.floodlightcontroller.debugcounter.IDebugCounterService;
21import net.floodlightcontroller.debugcounter.IDebugCounterService.CounterException;
22import net.floodlightcontroller.threadpool.IThreadPoolService;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080023
24import org.jboss.netty.channel.Channel;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070025import org.projectfloodlight.openflow.protocol.OFActionType;
26import org.projectfloodlight.openflow.protocol.OFCapabilities;
27import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
28import org.projectfloodlight.openflow.protocol.OFMessage;
29import org.projectfloodlight.openflow.protocol.OFPortDesc;
30import org.projectfloodlight.openflow.protocol.OFPortStatus;
31import org.projectfloodlight.openflow.protocol.OFStatsReply;
32import org.projectfloodlight.openflow.protocol.OFStatsRequest;
33import org.projectfloodlight.openflow.protocol.OFVersion;
34import org.projectfloodlight.openflow.types.U64;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080035
36/**
37 * A mock implementation of IFOSwitch we use for {@link OFMessageDamper}
Ray Milkey269ffb92014-04-03 14:43:30 -070038 * <p/>
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080039 * We need to mock equals() and hashCode() but alas, EasyMock doesn't support
40 * this. Sigh. And of course this happens to be the interface with the most
Ray Milkey269ffb92014-04-03 14:43:30 -070041 * methods.
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080042 *
Ray Milkey269ffb92014-04-03 14:43:30 -070043 * @author gregor
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080044 */
45public class OFMessageDamperMockSwitch implements IOFSwitch {
46 OFMessage writtenMessage;
47 FloodlightContext writtenContext;
Ray Milkey269ffb92014-04-03 14:43:30 -070048
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080049 public OFMessageDamperMockSwitch() {
50 reset();
51 }
Ray Milkey269ffb92014-04-03 14:43:30 -070052
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080053 /* reset this mock. I.e., clear the stored message previously written */
54 public void reset() {
55 writtenMessage = null;
56 writtenContext = null;
57 }
Ray Milkey269ffb92014-04-03 14:43:30 -070058
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070059 /* assert that a message was written to this switch and that the
60 * written message and context matches the expected values
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080061 * @param expected
62 * @param expectedContext
63 */
Ray Milkey269ffb92014-04-03 14:43:30 -070064 public void assertMessageWasWritten(OFMessage expected,
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070065 FloodlightContext expectedContext) {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080066 assertNotNull("No OFMessage was written", writtenMessage);
67 assertEquals(expected, writtenMessage);
68 assertEquals(expectedContext, writtenContext);
69 }
Ray Milkey269ffb92014-04-03 14:43:30 -070070
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080071 /*
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070072 * assert that no message was written
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080073 */
74 public void assertNoMessageWritten() {
Ray Milkey269ffb92014-04-03 14:43:30 -070075 assertNull("OFMessage was written but didn't expect one",
76 writtenMessage);
77 assertNull("There was a context but didn't expect one",
78 writtenContext);
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080079 }
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070080
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080081 /*
82 * use hashCode() and equals() from Object
83 */
Ray Milkey269ffb92014-04-03 14:43:30 -070084
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080085 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070086 public void write(OFMessage m,
87 FloodlightContext bc) throws IOException {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080088 assertNull("write() called but already have message", writtenMessage);
89 assertNull("write() called but already have context", writtenContext);
90 writtenContext = bc;
91 writtenMessage = m;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070092
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080093 }
Ray Milkey269ffb92014-04-03 14:43:30 -070094
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080095 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070096 public void write(List<OFMessage> msglist,
97 FloodlightContext bc) throws IOException {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080098 assertTrue("Unexpected method call", false);
99 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700100
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700101 // @Override
102 // public void setFeaturesReply(OFFeaturesReply featuresReply) {
103 // assertTrue("Unexpected method call", false);
104 // }
105
106 // @Override
107 // public void setSwitchProperties(OFDescriptionStatistics description) {
108 // assertTrue("Unexpected method call", false);
109 // // TODO Auto-generated method stub
110 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700111
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800112 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700113 public Collection<OFPortDesc> getEnabledPorts() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800114 assertTrue("Unexpected method call", false);
115 return null;
116 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700117
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800118 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700119 public Collection<Integer> getEnabledPortNumbers() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800120 assertTrue("Unexpected method call", false);
121 return null;
122 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700123
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700124 // @Override
125 // public OFPhysicalPort getPort(short portNumber) {
126 // assertTrue("Unexpected method call", false);
127 // return null;
128 // }
129
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800130 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700131 public OFPortDesc getPort(String portName) {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800132 assertTrue("Unexpected method call", false);
133 return null;
134 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700135
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700136 // @Override
137 // public void setPort(OFPhysicalPort port) {
138 // assertTrue("Unexpected method call", false);
139 // }
140
141 // @Override
142 // public void deletePort(short portNumber) {
143 // assertTrue("Unexpected method call", false);
144 // }
145
146 // @Override
147 // public void deletePort(String portName) {
148 // assertTrue("Unexpected method call", false);
149 // }
150
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800151 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700152 public Collection<OFPortDesc> getPorts() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800153 assertTrue("Unexpected method call", false);
154 return null;
155 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700156
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700157 // @Override
158 // public boolean portEnabled(short portName) {
159 // assertTrue("Unexpected method call", false);
160 // return false;
161 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700162
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800163 @Override
164 public boolean portEnabled(String portName) {
165 assertTrue("Unexpected method call", false);
166 return false;
167 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700168
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700169 // @Override
170 // public boolean portEnabled(OFPhysicalPort port) {
171 // assertTrue("Unexpected method call", false);
172 // return false;
173 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700174
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800175 @Override
176 public long getId() {
177 assertTrue("Unexpected method call", false);
178 return 0;
179 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700180
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800181 @Override
182 public String getStringId() {
183 assertTrue("Unexpected method call", false);
184 return null;
185 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700186
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800187 @Override
188 public Map<Object, Object> getAttributes() {
189 assertTrue("Unexpected method call", false);
190 return null;
191 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700192
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800193 @Override
194 public Date getConnectedSince() {
195 assertTrue("Unexpected method call", false);
196 return null;
197 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700198
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800199 @Override
200 public int getNextTransactionId() {
201 assertTrue("Unexpected method call", false);
202 return 0;
203 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700204
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700205 // @Override
206 // public Future<List<OFStatistics>>
207 // getStatistics(OFStatisticsRequest request) throws IOException {
208 // assertTrue("Unexpected method call", false);
209 // return null;
210 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700211
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800212 @Override
213 public boolean isConnected() {
214 assertTrue("Unexpected method call", false);
215 return false;
216 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700217
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800218 @Override
219 public void setConnected(boolean connected) {
220 assertTrue("Unexpected method call", false);
221 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700222
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800223 @Override
224 public Role getRole() {
225 assertTrue("Unexpected method call", false);
226 return null;
227 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700228
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700229 // @Override
230 // public boolean isActive() {
231 // assertTrue("Unexpected method call", false);
232 // return false;
233 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700234
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700235 // @Override
236 // public void deliverStatisticsReply(OFMessage reply) {
237 // assertTrue("Unexpected method call", false);
238 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700239
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800240 @Override
241 public void cancelStatisticsReply(int transactionId) {
242 assertTrue("Unexpected method call", false);
243 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700244
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800245 @Override
246 public void cancelAllStatisticsReplies() {
247 assertTrue("Unexpected method call", false);
248 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700249
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800250 @Override
251 public boolean hasAttribute(String name) {
252 assertTrue("Unexpected method call", false);
253 return false;
254 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700255
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800256 @Override
257 public Object getAttribute(String name) {
258 assertTrue("Unexpected method call", false);
259 return null;
260 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700261
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800262 @Override
263 public void setAttribute(String name, Object value) {
264 assertTrue("Unexpected method call", false);
265 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700266
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800267 @Override
268 public Object removeAttribute(String name) {
269 assertTrue("Unexpected method call", false);
270 return null;
271 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700272
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800273 @Override
274 public void clearAllFlowMods() {
275 assertTrue("Unexpected method call", false);
276 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700277
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700278 // @Override
279 // public boolean updateBroadcastCache(Long entry, Short port) {
280 // assertTrue("Unexpected method call", false);
281 // return false;
282 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700283
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700284 // @Override
285 // public Map<Short, Long> getPortBroadcastHits() {
286 // assertTrue("Unexpected method call", false);
287 // return null;
288 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700289
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700290 // @Override
291 // public void sendStatsQuery(OFStatisticsRequest request, int xid,
292 // IOFMessageListener caller)
293 // throws IOException {
294 // assertTrue("Unexpected method call", false);
295 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700296
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800297 @Override
298 public void flush() {
299 assertTrue("Unexpected method call", false);
300 }
301
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700302 // @Override
303 // public void deliverOFFeaturesReply(OFMessage reply) {
304 // // TODO Auto-generated method stub
305 //
306 // }
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800307
308 @Override
309 public void cancelFeaturesReply(int transactionId) {
310 // TODO Auto-generated method stub
311
312 }
313
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700314 // @Override
315 // public int getBuffers() {
316 // // TODO Auto-generated method stub
317 // return 0;
318 // }
319
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800320 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700321 public Set<OFActionType> getActions() {
322 // TODO Auto-generated method stub
323 return null;
324 }
325
326 @Override
327 public Set<OFCapabilities> getCapabilities() {
328 // TODO Auto-generated method stub
329 return null;
330 }
331
332 // @Override
333 // public byte getTables() {
334 // // TODO Auto-generated method stub
335 // return 0;
336 // }
337
338 @Override
339 public void disconnectSwitch() {
340 // TODO Auto-generated method stub
341
342 }
343
344 @Override
345 public void setChannel(Channel channel) {
346 // TODO Auto-generated method stub
347
348 }
349
350 @Override
351 public int getNumBuffers() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800352 // TODO Auto-generated method stub
353 return 0;
354 }
355
356 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700357 public byte getNumTables() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800358 // TODO Auto-generated method stub
359 return 0;
360 }
361
362 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700363 public OFDescStatsReply getSwitchDescription() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800364 // TODO Auto-generated method stub
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700365 return null;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800366 }
367
368 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700369 public void setOFVersion(OFVersion ofv) {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800370 // TODO Auto-generated method stub
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700371
372 }
373
374 @Override
375 public OFVersion getOFVersion() {
376 // TODO Auto-generated method stub
377 return null;
378 }
379
380 @Override
381 public OFPortDesc getPort(int portNumber) {
382 // TODO Auto-generated method stub
383 return null;
384 }
385
386 @Override
387 public OrderedCollection<PortChangeEvent> processOFPortStatus(OFPortStatus ps) {
388 // TODO Auto-generated method stub
389 return null;
390 }
391
392 @Override
393 public boolean portEnabled(int portName) {
394 // TODO Auto-generated method stub
395 return false;
396 }
397
398 @Override
399 public OrderedCollection<PortChangeEvent> comparePorts(Collection<OFPortDesc> ports) {
400 // TODO Auto-generated method stub
401 return null;
402 }
403
404 @Override
405 public OrderedCollection<PortChangeEvent> setPorts(Collection<OFPortDesc> ports) {
406 // TODO Auto-generated method stub
407 return null;
408 }
409
410 @Override
411 public void deliverStatisticsReply(OFMessage reply) {
412 // TODO Auto-generated method stub
413
414 }
415
416 @Override
417 public Future<List<OFStatsReply>> getStatistics(OFStatsRequest<?> request)
418 throws IOException {
419 // TODO Auto-generated method stub
420 return null;
421 }
422
423 @Override
424 public void setRole(Role role) {
425 // TODO Auto-generated method stub
426
427 }
428
429 @Override
430 public U64 getNextGenerationId() {
431 // TODO Auto-generated method stub
432 return null;
433 }
434
435 @Override
436 public void setFloodlightProvider(IFloodlightProviderService controller) {
437 // TODO Auto-generated method stub
438
439 }
440
441 @Override
442 public void setThreadPoolService(IThreadPoolService threadPool) {
443 // TODO Auto-generated method stub
444
445 }
446
447 @Override
448 public void setDebugCounterService(IDebugCounterService debugCounter)
449 throws CounterException {
450 // TODO Auto-generated method stub
451
452 }
453
454 @Override
455 public void startDriverHandshake() {
456 // TODO Auto-generated method stub
457
458 }
459
460 @Override
461 public boolean isDriverHandshakeComplete() {
462 // TODO Auto-generated method stub
463 return false;
464 }
465
466 @Override
467 public void processDriverHandshakeMessage(OFMessage m) {
468 // TODO Auto-generated method stub
469
470 }
471
472 @Override
473 public void setTableFull(boolean isFull) {
474 // TODO Auto-generated method stub
475
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800476 }
477
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800478}