/wildfly/jgroups/src/test/java/org/infinispan/server/jgroups/ManagedSocketFactoryTest.java
https://github.com/wburns/infinispan · Java · 223 lines · 152 code · 47 blank · 24 comment · 0 complexity · e190c0fe6661d135bc85fa2cfa42483a MD5 · raw file
- /*
- * JBoss, Home of Professional Open Source.
- * Copyright 2011, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
- package org.infinispan.server.jgroups;
- import static org.junit.Assert.assertSame;
- import static org.mockito.Mockito.mock;
- import static org.mockito.Mockito.verify;
- import static org.mockito.Mockito.when;
- import java.io.IOException;
- import java.net.DatagramSocket;
- import java.net.InetAddress;
- import java.net.InetSocketAddress;
- import java.net.MulticastSocket;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.SocketAddress;
- import org.jboss.as.network.SocketBindingManager;
- import org.jgroups.util.SocketFactory;
- import org.junit.Before;
- import org.junit.Test;
- /**
- * @author Paul Ferraro
- */
- public class ManagedSocketFactoryTest {
- private SocketFactory factory = mock(SocketFactory.class);
- private SocketBindingManager manager = mock(SocketBindingManager.class);
- private SocketBindingManager.UnnamedBindingRegistry registry = mock(SocketBindingManager.UnnamedBindingRegistry.class);
- private ManagedSocketFactory subject = new ManagedSocketFactory(this.factory, this.manager);
- @Before
- public void setUp() {
- when(this.manager.getUnnamedRegistry()).thenReturn(registry);
- }
- @Test
- public void createSocket() throws IOException {
- Socket socket1 = new Socket();
- Socket socket2 = new Socket();
- Socket socket3 = new Socket();
- Socket socket4 = new Socket();
- Socket socket5 = new Socket();
- InetAddress localhost = InetAddress.getLocalHost();
- when(this.factory.createSocket("test")).thenReturn(socket1);
- when(this.factory.createSocket("test", localhost, 1)).thenReturn(socket2);
- when(this.factory.createSocket("test", "host", 1)).thenReturn(socket3);
- when(this.factory.createSocket("test", localhost, 1, localhost, 2)).thenReturn(socket4);
- when(this.factory.createSocket("test", "host", 1, localhost, 2)).thenReturn(socket5);
- Socket result1 = this.subject.createSocket("test");
- Socket result2 = this.subject.createSocket("test", localhost, 1);
- Socket result3 = this.subject.createSocket("test", "host", 1);
- Socket result4 = this.subject.createSocket("test", localhost, 1, localhost, 2);
- Socket result5 = this.subject.createSocket("test", "host", 1, localhost, 2);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket1);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket2);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket3);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket4);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket5);
- assertSame(socket1, result1);
- assertSame(socket2, result2);
- assertSame(socket3, result3);
- assertSame(socket4, result4);
- assertSame(socket5, result5);
- }
- @Test
- public void createServerSocket() throws IOException {
- ServerSocket socket1 = new ServerSocket();
- ServerSocket socket2 = new ServerSocket();
- ServerSocket socket3 = new ServerSocket();
- ServerSocket socket4 = new ServerSocket();
- InetAddress localhost = InetAddress.getLocalHost();
- when(this.factory.createServerSocket("test")).thenReturn(socket1);
- when(this.factory.createServerSocket("test", 1)).thenReturn(socket2);
- when(this.factory.createServerSocket("test", 1, 0)).thenReturn(socket3);
- when(this.factory.createServerSocket("test", 1, 0, localhost)).thenReturn(socket4);
- ServerSocket result1 = this.subject.createServerSocket("test");
- ServerSocket result2 = this.subject.createServerSocket("test", 1);
- ServerSocket result3 = this.subject.createServerSocket("test", 1, 0);
- ServerSocket result4 = this.subject.createServerSocket("test", 1, 0, localhost);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket1);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket2);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket3);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket4);
- assertSame(socket1, result1);
- assertSame(socket2, result2);
- assertSame(socket3, result3);
- assertSame(socket4, result4);
- }
- @Test
- public void createDatagram() throws IOException {
- DatagramSocket socket1 = new DatagramSocket();
- DatagramSocket socket2 = new DatagramSocket();
- DatagramSocket socket3 = new DatagramSocket();
- DatagramSocket socket4 = new DatagramSocket();
- InetAddress localhost = InetAddress.getLocalHost();
- SocketAddress socketAddress = new InetSocketAddress(localhost, 1);
- when(this.factory.createDatagramSocket("test")).thenReturn(socket1);
- when(this.factory.createDatagramSocket("test", 1)).thenReturn(socket2);
- when(this.factory.createDatagramSocket("test", socketAddress)).thenReturn(socket3);
- when(this.factory.createDatagramSocket("test", 1, localhost)).thenReturn(socket4);
- DatagramSocket result1 = this.subject.createDatagramSocket("test");
- DatagramSocket result2 = this.subject.createDatagramSocket("test", 1);
- DatagramSocket result3 = this.subject.createDatagramSocket("test", socketAddress);
- DatagramSocket result4 = this.subject.createDatagramSocket("test", 1, localhost);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket1);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket2);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket3);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket4);
- assertSame(socket1, result1);
- assertSame(socket2, result2);
- assertSame(socket3, result3);
- assertSame(socket4, result4);
- }
- @Test
- public void createMulticastSocket() throws IOException {
- MulticastSocket socket1 = new MulticastSocket();
- MulticastSocket socket2 = new MulticastSocket();
- MulticastSocket socket3 = new MulticastSocket();
- SocketAddress address = new InetSocketAddress(InetAddress.getLocalHost(), 1);
- when(this.factory.createMulticastSocket("test")).thenReturn(socket1);
- when(this.factory.createMulticastSocket("test", 1)).thenReturn(socket2);
- when(this.factory.createMulticastSocket("test", address)).thenReturn(socket3);
- MulticastSocket result1 = this.subject.createMulticastSocket("test");
- MulticastSocket result2 = this.subject.createMulticastSocket("test", 1);
- MulticastSocket result3 = this.subject.createMulticastSocket("test", address);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket1);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket2);
- verify(this.manager.getUnnamedRegistry()).registerSocket(socket3);
- assertSame(socket1, result1);
- assertSame(socket2, result2);
- assertSame(socket3, result3);
- }
- @Test
- public void closeSocket() throws IOException {
- Socket socket = new Socket();
- this.subject.close(socket);
- verify(this.factory).close(socket);
- verify(this.manager.getUnnamedRegistry()).unregisterSocket(socket);
- }
- @Test
- public void closeServerSocket() throws IOException {
- ServerSocket socket = new ServerSocket();
- this.subject.close(socket);
- verify(this.factory).close(socket);
- verify(this.manager.getUnnamedRegistry()).unregisterSocket(socket);
- }
- @Test
- public void closeDatagramSocket() throws IOException {
- DatagramSocket socket = new DatagramSocket();
- this.subject.close(socket);
- verify(this.factory).close(socket);
- verify(this.manager.getUnnamedRegistry()).unregisterSocket(socket);
- }
- @Test
- public void closeMulticastSocket() throws IOException {
- MulticastSocket socket = new MulticastSocket();
- this.subject.close(socket);
- verify(this.factory).close(socket);
- verify(this.manager.getUnnamedRegistry()).unregisterSocket(socket);
- }
- }