*/
package org.opendaylight.controller.config.yang.bgp.rib.impl;
+import static org.junit.Assert.fail;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.util.concurrent.GenericFutureListener;
+import io.netty.util.internal.PlatformDependent;
import java.net.InetSocketAddress;
import java.util.List;
import javax.management.InstanceAlreadyExistsException;
import javax.management.ObjectName;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
import org.opendaylight.controller.config.yang.bgp.parser.spi.SimpleBGPExtensionProviderContextModuleFactory;
import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleFactory;
-import org.opendaylight.controller.config.yang.netty.timer.HashedWheelTimerModuleFactory;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
@Before
public void setUp() throws Exception {
final List<ModuleFactory> moduleFactories = getModuleFactories();
- super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext, moduleFactories.toArray(new ModuleFactory[moduleFactories.size()])));
+ super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(this.mockedContext, moduleFactories.toArray(new ModuleFactory[moduleFactories.size()])));
}
private List<ModuleFactory> getModuleFactories() {
moduleFactories.add(new BGPPeerAcceptorModuleFactory());
moduleFactories.add(new NettyThreadgroupModuleFactory());
moduleFactories.add(new SimpleBGPExtensionProviderContextModuleFactory());
- moduleFactories.add(new HashedWheelTimerModuleFactory());
moduleFactories.add(createClassBasedCBF(MockedDispatcherModule.class, "dispatch"));
return moduleFactories;
}
@Test
- public void testCreateBeanDefaultAddress() throws Exception {
- final CommitStatus status = createRegistryInstance(Optional.<String>absent(), Optional.<Integer>absent(), true, true);
- assertBeanCount(1, FACTORY_NAME);
- assertStatus(status, 3, 0, 0);
- verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class), any(BGPSessionValidator.class));
+ public void testCreateBeanDefaultAddress() throws InstanceAlreadyExistsException, ConflictingVersionException, ValidationException {
+ try {
+ final CommitStatus status = createRegistryInstance(Optional.<String>absent(), Optional.<Integer>absent(), true, true);
+ assertBeanCount(1, FACTORY_NAME);
+ assertStatus(status, 3, 0, 0);
+ verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class));
+ } catch (final ValidationException e) {
+ if(!PlatformDependent.isWindows() && !PlatformDependent.isRoot()) {
+ Assert.assertTrue(e.getMessage().contains("Unable to bind port"));
+ } else {
+ fail();
+ }
+ }
}
@Test
final CommitStatus status = createRegistryInstance(Optional.of("127.0.0.1"), Optional.of(1790), true, true);
assertBeanCount(1, FACTORY_NAME);
assertStatus(status, 3, 0, 0);
- verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class), any(BGPSessionValidator.class));
+ verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class));
}
private CommitStatus createRegistryInstance(final Optional<String> address, final Optional<Integer> port, final boolean addRegistry, final boolean addDispatcher ) throws InstanceAlreadyExistsException, ValidationException, ConflictingVersionException {
proxy.setBindingPort(new PortNumber(port.get()));
}
if(addRegistry) {
- proxy.setPeerRegistry(createPeerRegistry(transaction));
+ proxy.setAcceptingPeerRegistry(createPeerRegistry(transaction));
}
if(addDispatcher) {
- proxy.setBgpDispatcher(createDispatcher(transaction));
+ proxy.setAcceptingBgpDispatcher(createDispatcher(transaction));
}
return transaction.commit();
}
- private ObjectName createPeerRegistry(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException {
+ private static ObjectName createPeerRegistry(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException {
return transaction.createModule(StrictBgpPeerRegistryModuleFactory.NAME, "peer-registry");
}
- private ObjectName createDispatcher(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException {
+ private static ObjectName createDispatcher(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException {
return transaction.createModule("dispatch", "mock");
}
doReturn(mock(ChannelFuture.class)).when(channel).close();
doReturn(channel).when(future).channel();
doReturn(mock(ChannelFuture.class)).when(future).addListener(any(GenericFutureListener.class));
- doReturn(future).when(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class), any(BGPSessionValidator.class));
+ doReturn(future).when(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class));
doNothing().when(dispatcher).close();
}
@Override
public void setWorkerGroup(final ObjectName workerGroup) {}
- @Override
- public ObjectName getTimer() {return null;}
-
- @Override
- public void setTimer(final ObjectName timer) {}
-
@Override
public ObjectName getBgpExtensions() {return null;}