tree 9274b1732741a674ad24ecf00d41750626f47d3d
parent c78b8f6379c7b3ec7aeed40046201be9ac491c38
author Pavlin Radoslavov <pavlin@onlab.us> 1406950666 -0700
committer Gerrit Code Review <gerrit2@localhost> 1407773645 -0700

Added unit tests for ONOS-1451: Separate Event Key space per instance

* Added an unit test mechanism to give a collection of topology events
  to the TopologyManager, let the TopologyManger process the events,
  and deliver the result topology events to the listeners.

* Added an unit test mechanism to collect the delivered events from the
  TopologyManager

* Added an unit test for processing a Mastership Event, and collecting
  the expected event(s)

* Added an unit test for processing a Switch Event, and collecting
  the expected event(s)

* Added an unit test for processing a misordered Switch Event, and collecting
  the expected event(s)

* Added an unit test for processing a Switch Event with a Mastership Event
  from another ONOS instace, and collecting the expected event(s)

* Added an unit test for processing a Switch Event with a Mastership
  switchover between two ONOS instances, and collecting the expected event(s)

* Added unit tests for method TopologyManager.addMastershipEvent(),
  and for method TopologyManager.removeMastershipEvent()

* Minor cleanup

Change-Id: I1768209bb33ba62d7bb6bdffd4fd0fcc24bcbe6a
