blob: 545753dc9fccb9b856956a214baf4c666fbf6354 [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;
Jonathan Harta213bce2014-08-11 15:44:07 -070028import org.projectfloodlight.openflow.protocol.OFFactory;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070029import org.projectfloodlight.openflow.protocol.OFMessage;
30import org.projectfloodlight.openflow.protocol.OFPortDesc;
31import org.projectfloodlight.openflow.protocol.OFPortStatus;
32import org.projectfloodlight.openflow.protocol.OFStatsReply;
33import org.projectfloodlight.openflow.protocol.OFStatsRequest;
34import org.projectfloodlight.openflow.protocol.OFVersion;
35import org.projectfloodlight.openflow.types.U64;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080036
37/**
38 * A mock implementation of IFOSwitch we use for {@link OFMessageDamper}
Ray Milkey269ffb92014-04-03 14:43:30 -070039 * <p/>
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080040 * We need to mock equals() and hashCode() but alas, EasyMock doesn't support
41 * this. Sigh. And of course this happens to be the interface with the most
Ray Milkey269ffb92014-04-03 14:43:30 -070042 * methods.
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080043 *
Ray Milkey269ffb92014-04-03 14:43:30 -070044 * @author gregor
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080045 */
46public class OFMessageDamperMockSwitch implements IOFSwitch {
47 OFMessage writtenMessage;
48 FloodlightContext writtenContext;
Ray Milkey269ffb92014-04-03 14:43:30 -070049
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080050 public OFMessageDamperMockSwitch() {
51 reset();
52 }
Ray Milkey269ffb92014-04-03 14:43:30 -070053
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080054 /* reset this mock. I.e., clear the stored message previously written */
55 public void reset() {
56 writtenMessage = null;
57 writtenContext = null;
58 }
Ray Milkey269ffb92014-04-03 14:43:30 -070059
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070060 /* assert that a message was written to this switch and that the
61 * written message and context matches the expected values
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080062 * @param expected
63 * @param expectedContext
64 */
Ray Milkey269ffb92014-04-03 14:43:30 -070065 public void assertMessageWasWritten(OFMessage expected,
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070066 FloodlightContext expectedContext) {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080067 assertNotNull("No OFMessage was written", writtenMessage);
68 assertEquals(expected, writtenMessage);
69 assertEquals(expectedContext, writtenContext);
70 }
Ray Milkey269ffb92014-04-03 14:43:30 -070071
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080072 /*
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070073 * assert that no message was written
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080074 */
75 public void assertNoMessageWritten() {
Ray Milkey269ffb92014-04-03 14:43:30 -070076 assertNull("OFMessage was written but didn't expect one",
77 writtenMessage);
78 assertNull("There was a context but didn't expect one",
79 writtenContext);
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080080 }
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070081
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080082 /*
83 * use hashCode() and equals() from Object
84 */
Ray Milkey269ffb92014-04-03 14:43:30 -070085
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080086 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070087 public void write(OFMessage m,
88 FloodlightContext bc) throws IOException {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080089 assertNull("write() called but already have message", writtenMessage);
90 assertNull("write() called but already have context", writtenContext);
91 writtenContext = bc;
92 writtenMessage = m;
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070093
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080094 }
Ray Milkey269ffb92014-04-03 14:43:30 -070095
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080096 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -070097 public void write(List<OFMessage> msglist,
98 FloodlightContext bc) throws IOException {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080099 assertTrue("Unexpected method call", false);
100 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700101
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700102 // @Override
103 // public void setFeaturesReply(OFFeaturesReply featuresReply) {
104 // assertTrue("Unexpected method call", false);
105 // }
106
107 // @Override
108 // public void setSwitchProperties(OFDescriptionStatistics description) {
109 // assertTrue("Unexpected method call", false);
110 // // TODO Auto-generated method stub
111 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700112
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800113 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700114 public Collection<OFPortDesc> getEnabledPorts() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800115 assertTrue("Unexpected method call", false);
116 return null;
117 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700118
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800119 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700120 public Collection<Integer> getEnabledPortNumbers() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800121 assertTrue("Unexpected method call", false);
122 return null;
123 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700124
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700125 // @Override
126 // public OFPhysicalPort getPort(short portNumber) {
127 // assertTrue("Unexpected method call", false);
128 // return null;
129 // }
130
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800131 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700132 public OFPortDesc getPort(String portName) {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800133 assertTrue("Unexpected method call", false);
134 return null;
135 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700136
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700137 // @Override
138 // public void setPort(OFPhysicalPort port) {
139 // assertTrue("Unexpected method call", false);
140 // }
141
142 // @Override
143 // public void deletePort(short portNumber) {
144 // assertTrue("Unexpected method call", false);
145 // }
146
147 // @Override
148 // public void deletePort(String portName) {
149 // assertTrue("Unexpected method call", false);
150 // }
151
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800152 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700153 public Collection<OFPortDesc> getPorts() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800154 assertTrue("Unexpected method call", false);
155 return null;
156 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700157
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700158 // @Override
159 // public boolean portEnabled(short portName) {
160 // assertTrue("Unexpected method call", false);
161 // return false;
162 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700163
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800164 @Override
165 public boolean portEnabled(String portName) {
166 assertTrue("Unexpected method call", false);
167 return false;
168 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700169
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700170 // @Override
171 // public boolean portEnabled(OFPhysicalPort port) {
172 // assertTrue("Unexpected method call", false);
173 // return false;
174 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700175
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800176 @Override
177 public long getId() {
178 assertTrue("Unexpected method call", false);
179 return 0;
180 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700181
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800182 @Override
183 public String getStringId() {
184 assertTrue("Unexpected method call", false);
185 return null;
186 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700187
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800188 @Override
189 public Map<Object, Object> getAttributes() {
190 assertTrue("Unexpected method call", false);
191 return null;
192 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700193
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800194 @Override
195 public Date getConnectedSince() {
196 assertTrue("Unexpected method call", false);
197 return null;
198 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700199
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800200 @Override
201 public int getNextTransactionId() {
202 assertTrue("Unexpected method call", false);
203 return 0;
204 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700205
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700206 // @Override
207 // public Future<List<OFStatistics>>
208 // getStatistics(OFStatisticsRequest request) throws IOException {
209 // assertTrue("Unexpected method call", false);
210 // return null;
211 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700212
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800213 @Override
214 public boolean isConnected() {
215 assertTrue("Unexpected method call", false);
216 return false;
217 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700218
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800219 @Override
220 public void setConnected(boolean connected) {
221 assertTrue("Unexpected method call", false);
222 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700223
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800224 @Override
225 public Role getRole() {
226 assertTrue("Unexpected method call", false);
227 return null;
228 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700229
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700230 // @Override
231 // public boolean isActive() {
232 // assertTrue("Unexpected method call", false);
233 // return false;
234 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700235
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700236 // @Override
237 // public void deliverStatisticsReply(OFMessage reply) {
238 // assertTrue("Unexpected method call", false);
239 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700240
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800241 @Override
242 public void cancelStatisticsReply(int transactionId) {
243 assertTrue("Unexpected method call", false);
244 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700245
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800246 @Override
247 public void cancelAllStatisticsReplies() {
248 assertTrue("Unexpected method call", false);
249 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700250
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800251 @Override
252 public boolean hasAttribute(String name) {
253 assertTrue("Unexpected method call", false);
254 return false;
255 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700256
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800257 @Override
258 public Object getAttribute(String name) {
259 assertTrue("Unexpected method call", false);
260 return null;
261 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700262
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800263 @Override
264 public void setAttribute(String name, Object value) {
265 assertTrue("Unexpected method call", false);
266 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700267
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800268 @Override
269 public Object removeAttribute(String name) {
270 assertTrue("Unexpected method call", false);
271 return null;
272 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700273
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800274 @Override
275 public void clearAllFlowMods() {
276 assertTrue("Unexpected method call", false);
277 }
Ray Milkey269ffb92014-04-03 14:43:30 -0700278
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700279 // @Override
280 // public boolean updateBroadcastCache(Long entry, Short port) {
281 // assertTrue("Unexpected method call", false);
282 // return false;
283 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700284
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700285 // @Override
286 // public Map<Short, Long> getPortBroadcastHits() {
287 // assertTrue("Unexpected method call", false);
288 // return null;
289 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700290
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700291 // @Override
292 // public void sendStatsQuery(OFStatisticsRequest request, int xid,
293 // IOFMessageListener caller)
294 // throws IOException {
295 // assertTrue("Unexpected method call", false);
296 // }
Ray Milkey269ffb92014-04-03 14:43:30 -0700297
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800298 @Override
299 public void flush() {
300 assertTrue("Unexpected method call", false);
301 }
302
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700303 // @Override
304 // public void deliverOFFeaturesReply(OFMessage reply) {
305 // // TODO Auto-generated method stub
306 //
307 // }
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800308
309 @Override
310 public void cancelFeaturesReply(int transactionId) {
311 // TODO Auto-generated method stub
312
313 }
314
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700315 // @Override
316 // public int getBuffers() {
317 // // TODO Auto-generated method stub
318 // return 0;
319 // }
320
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800321 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700322 public Set<OFActionType> getActions() {
323 // TODO Auto-generated method stub
324 return null;
325 }
326
327 @Override
328 public Set<OFCapabilities> getCapabilities() {
329 // TODO Auto-generated method stub
330 return null;
331 }
332
333 // @Override
334 // public byte getTables() {
335 // // TODO Auto-generated method stub
336 // return 0;
337 // }
338
339 @Override
340 public void disconnectSwitch() {
341 // TODO Auto-generated method stub
342
343 }
344
345 @Override
346 public void setChannel(Channel channel) {
347 // TODO Auto-generated method stub
348
349 }
350
351 @Override
352 public int getNumBuffers() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800353 // TODO Auto-generated method stub
354 return 0;
355 }
356
357 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700358 public byte getNumTables() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800359 // TODO Auto-generated method stub
360 return 0;
361 }
362
363 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700364 public OFDescStatsReply getSwitchDescription() {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800365 // TODO Auto-generated method stub
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700366 return null;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800367 }
368
369 @Override
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700370 public void setOFVersion(OFVersion ofv) {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800371 // TODO Auto-generated method stub
Brian O'Connorc67f9fa2014-08-07 18:17:46 -0700372
373 }
374
375 @Override
376 public OFVersion getOFVersion() {
377 // TODO Auto-generated method stub
378 return null;
379 }
380
381 @Override
382 public OFPortDesc getPort(int portNumber) {
383 // TODO Auto-generated method stub
384 return null;
385 }
386
387 @Override
388 public OrderedCollection<PortChangeEvent> processOFPortStatus(OFPortStatus ps) {
389 // TODO Auto-generated method stub
390 return null;
391 }
392
393 @Override
394 public boolean portEnabled(int portName) {
395 // TODO Auto-generated method stub
396 return false;
397 }
398
399 @Override
400 public OrderedCollection<PortChangeEvent> comparePorts(Collection<OFPortDesc> ports) {
401 // TODO Auto-generated method stub
402 return null;
403 }
404
405 @Override
406 public OrderedCollection<PortChangeEvent> setPorts(Collection<OFPortDesc> ports) {
407 // TODO Auto-generated method stub
408 return null;
409 }
410
411 @Override
412 public void deliverStatisticsReply(OFMessage reply) {
413 // TODO Auto-generated method stub
414
415 }
416
417 @Override
418 public Future<List<OFStatsReply>> getStatistics(OFStatsRequest<?> request)
419 throws IOException {
420 // TODO Auto-generated method stub
421 return null;
422 }
423
424 @Override
425 public void setRole(Role role) {
426 // TODO Auto-generated method stub
427
428 }
429
430 @Override
431 public U64 getNextGenerationId() {
432 // TODO Auto-generated method stub
433 return null;
434 }
435
436 @Override
437 public void setFloodlightProvider(IFloodlightProviderService controller) {
438 // TODO Auto-generated method stub
439
440 }
441
442 @Override
443 public void setThreadPoolService(IThreadPoolService threadPool) {
444 // TODO Auto-generated method stub
445
446 }
447
448 @Override
449 public void setDebugCounterService(IDebugCounterService debugCounter)
450 throws CounterException {
451 // TODO Auto-generated method stub
452
453 }
454
455 @Override
456 public void startDriverHandshake() {
457 // TODO Auto-generated method stub
458
459 }
460
461 @Override
462 public boolean isDriverHandshakeComplete() {
463 // TODO Auto-generated method stub
464 return false;
465 }
466
467 @Override
468 public void processDriverHandshakeMessage(OFMessage m) {
469 // TODO Auto-generated method stub
470
471 }
472
473 @Override
474 public void setTableFull(boolean isFull) {
475 // TODO Auto-generated method stub
476
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800477 }
478
Jonathan Harta213bce2014-08-11 15:44:07 -0700479 @Override
480 public OFFactory getFactory() {
481 // TODO Auto-generated method stub
482 return null;
483 }
484
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -0800485}