Toggle navigation
Toggle navigation
This project
Loading...
Sign in
홍길동
/
onos
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
tom
2014-09-30 09:02:51 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
5346a95ee2c4bcdb7489451bb752a5f5ddf11f3e
5346a95e
1 parent
d33e6406
Adding unit tests for the comm manager.
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
125 additions
and
0 deletions
core/store/dist/src/test/java/org/onlab/onos/store/cluster/impl/ClusterCommunicationManagerTest.java
core/store/dist/src/test/java/org/onlab/onos/store/cluster/impl/ClusterCommunicationManagerTest.java
0 → 100644
View file @
5346a95
package
org
.
onlab
.
onos
.
store
.
cluster
.
impl
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.onlab.onos.cluster.DefaultControllerNode
;
import
org.onlab.onos.cluster.NodeId
;
import
org.onlab.onos.store.cluster.messaging.SerializationService
;
import
org.onlab.packet.IpPrefix
;
import
sun.jvm.hotspot.TestDebugger
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.TimeUnit
;
import
static
org
.
junit
.
Assert
.*;
/**
* Tests of the cluster communication manager.
*/
public
class
ClusterCommunicationManagerTest
{
private
static
final
NodeId
N1
=
new
NodeId
(
"n1"
);
private
static
final
NodeId
N2
=
new
NodeId
(
"n2"
);
private
static
final
int
P1
=
9881
;
private
static
final
int
P2
=
9882
;
private
static
final
IpPrefix
IP
=
IpPrefix
.
valueOf
(
"127.0.0.1"
);
private
ClusterCommunicationManager
ccm1
;
private
ClusterCommunicationManager
ccm2
;
private
TestDelegate
cnd1
=
new
TestDelegate
();
private
TestDelegate
cnd2
=
new
TestDelegate
();
private
DefaultControllerNode
node1
=
new
DefaultControllerNode
(
N1
,
IP
,
P1
);
private
DefaultControllerNode
node2
=
new
DefaultControllerNode
(
N2
,
IP
,
P2
);
@Before
public
void
setUp
()
{
MessageSerializer
messageSerializer
=
new
MessageSerializer
();
messageSerializer
.
activate
();
ccm1
=
new
ClusterCommunicationManager
();
ccm1
.
serializationService
=
messageSerializer
;
ccm1
.
activate
();
ccm2
=
new
ClusterCommunicationManager
();
ccm2
.
serializationService
=
messageSerializer
;
ccm2
.
activate
();
ccm1
.
startUp
(
node1
,
cnd1
);
ccm2
.
startUp
(
node2
,
cnd2
);
}
@After
public
void
tearDown
()
{
ccm1
.
deactivate
();
ccm2
.
deactivate
();
}
@Test
public
void
connect
()
throws
Exception
{
cnd1
.
latch
=
new
CountDownLatch
(
1
);
cnd2
.
latch
=
new
CountDownLatch
(
1
);
ccm1
.
addNode
(
node2
);
validateDelegateEvent
(
cnd1
,
Op
.
DETECTED
,
node2
.
id
());
validateDelegateEvent
(
cnd2
,
Op
.
DETECTED
,
node1
.
id
());
}
@Test
public
void
disconnect
()
throws
Exception
{
cnd1
.
latch
=
new
CountDownLatch
(
1
);
cnd2
.
latch
=
new
CountDownLatch
(
1
);
ccm1
.
addNode
(
node2
);
validateDelegateEvent
(
cnd1
,
Op
.
DETECTED
,
node2
.
id
());
validateDelegateEvent
(
cnd2
,
Op
.
DETECTED
,
node1
.
id
());
cnd1
.
latch
=
new
CountDownLatch
(
1
);
cnd2
.
latch
=
new
CountDownLatch
(
1
);
ccm1
.
deactivate
();
//
// validateDelegateEvent(cnd2, Op.VANISHED, node1.id());
}
private
void
validateDelegateEvent
(
TestDelegate
delegate
,
Op
op
,
NodeId
nodeId
)
throws
InterruptedException
{
assertTrue
(
"did not connect in time"
,
delegate
.
latch
.
await
(
2500
,
TimeUnit
.
MILLISECONDS
));
assertEquals
(
"incorrect event"
,
op
,
delegate
.
op
);
assertEquals
(
"incorrect event node"
,
nodeId
,
delegate
.
nodeId
);
}
enum
Op
{
DETECTED
,
VANISHED
,
REMOVED
};
private
class
TestDelegate
implements
ClusterNodesDelegate
{
Op
op
;
CountDownLatch
latch
;
NodeId
nodeId
;
@Override
public
DefaultControllerNode
nodeDetected
(
NodeId
nodeId
,
IpPrefix
ip
,
int
tcpPort
)
{
latch
(
nodeId
,
Op
.
DETECTED
);
return
new
DefaultControllerNode
(
nodeId
,
ip
,
tcpPort
);
}
@Override
public
void
nodeVanished
(
NodeId
nodeId
)
{
latch
(
nodeId
,
Op
.
VANISHED
);
}
@Override
public
void
nodeRemoved
(
NodeId
nodeId
)
{
latch
(
nodeId
,
Op
.
REMOVED
);
}
private
void
latch
(
NodeId
nodeId
,
Op
op
)
{
this
.
op
=
op
;
this
.
nodeId
=
nodeId
;
latch
.
countDown
();
}
}
}
\ No newline at end of file
Please
register
or
login
to post a comment