package mireka.transmission.immediate;
import static mireka.ExampleAddress.*;
import static org.junit.Assert.*;
import java.util.Map;
import mireka.transmission.immediate.host.OutgoingConnectionsRegistry;
import mockit.Deencapsulation;
import org.junit.Test;
public class OutgoingConnectionsRegistryTest {
private OutgoingConnectionsRegistry registry =
new OutgoingConnectionsRegistry();
@Test
public void testOpenClose() throws PostponeException {
registry.setMaxConnectionsToHost(1);
registry.openConnection(IP1);
registry.releaseConnection(IP1);
assertTrue(Deencapsulation.getField(registry, Map.class).isEmpty());
}
@Test(expected = PostponeException.class)
public void test1() throws PostponeException {
registry.setMaxConnectionsToHost(1);
registry.openConnection(IP1);
registry.openConnection(IP1);
}
@Test(expected = RuntimeException.class)
public void test1Unbalanced() {
registry.releaseConnection(IP1);
}
@Test()
public void testSwitchedOff() throws PostponeException {
registry.setMaxConnectionsToHost(0);
registry.releaseConnection(IP1);
registry.openConnection(IP1);
}
@Test()
public void test2() throws PostponeException {
registry.setMaxConnectionsToHost(2);
registry.openConnection(IP1);
registry.openConnection(IP1);
registry.releaseConnection(IP1);
registry.releaseConnection(IP1);
assertTrue(Deencapsulation.getField(registry, Map.class).isEmpty());
}
@Test(expected = RuntimeException.class)
public void test2Unbalanced() throws PostponeException {
registry.setMaxConnectionsToHost(2);
registry.openConnection(IP1);
registry.openConnection(IP1);
registry.releaseConnection(IP1);
registry.releaseConnection(IP1);
registry.releaseConnection(IP1);
}
}