{
Collection channels = (Collection) verifiable;
for (Iterator iter = channels.iterator(); iter.hasNext();)
{
FlushTestReceiver receiver = (FlushTestReceiver) iter.next();
Channel ch = receiver.getChannel();
assertEquals("Correct view",ch.getView().getMembers().size(),expectedViewSize);
assertTrue("Channel open",ch.isOpen());
assertTrue("Chnanel connected",ch.isConnected());
assertNotNull("Valid address ", ch.getLocalAddress());
assertTrue("Address included in view ", ch.getView().getMembers().contains(ch.getLocalAddress()));
assertNotNull("Valid cluster name ", ch.getClusterName());
}
//verify views for pair services created on top of different "real" channels
if(expectedViewSize>1 && isMuxChannelUsed())
{
for (Iterator iter = channels.iterator(); iter.hasNext();)
{
FlushTestReceiver receiver = (FlushTestReceiver) iter.next();
MuxChannel ch = (MuxChannel)receiver.getChannel();
int servicePairs = 1;
for (Iterator it = channels.iterator(); it.hasNext();)
{
FlushTestReceiver receiver2 = (FlushTestReceiver) it.next();
MuxChannel ch2 = (MuxChannel)receiver2.getChannel();
if(ch.getId().equals(ch2.getId()) && !ch.getLocalAddress().equals(ch2.getLocalAddress()))
{
assertEquals("Correct view for service pair",ch.getView(),ch2.getView());
assertTrue("Presence in view",ch.getView().getMembers().contains(ch.getLocalAddress()));
assertTrue("Presence in view",ch.getView().getMembers().contains(ch2.getLocalAddress()));
assertTrue("Presence in view",ch2.getView().getMembers().contains(ch2.getLocalAddress()));
assertTrue("Presence in view",ch2.getView().getMembers().contains(ch.getLocalAddress()));
servicePairs++;
}
}
assertEquals("Correct service count",expectedViewSize,servicePairs);
}