/* * Copyright 2012 Steven Swor. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cameljamod.net; import cameljamod.net.UDPMasterConnectionWrapper; import java.net.InetAddress; import net.wimpi.modbus.io.ModbusTransaction; import net.wimpi.modbus.io.ModbusTransport; import net.wimpi.modbus.io.ModbusUDPTransaction; import net.wimpi.modbus.io.ModbusUDPTransport; import net.wimpi.modbus.net.UDPMasterConnection; import static org.junit.Assert.*; import org.junit.Test; import org.mockito.Mockito; import static org.mockito.Mockito.*; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; /** * Unit tests for {@link UDPMasterConnectionWrapper}. * * @author Steven Swor */ public class UDPMasterConnectionWrapperTest { public UDPMasterConnectionWrapperTest() { } /** * Tests {@link UDPMasterConnection#connect()} and {@link UDPMasterConnection#close()}. */ @Test public void testConnectAndClose() throws Exception { final UDPMasterConnection mockConnection = mock(UDPMasterConnection.class); doAnswer(new Answer() { public Object answer(InvocationOnMock invocation) throws Throwable { Mockito.when(mockConnection.isConnected()).thenReturn(Boolean.TRUE); return null; } }).when(mockConnection).connect(); doAnswer(new Answer() { public Object answer(InvocationOnMock invocation) throws Throwable { Mockito.when(mockConnection.isConnected()).thenReturn(Boolean.FALSE); return null; } }).when(mockConnection).close(); UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(mockConnection); assertFalse(instance.isConnected()); instance.connect(); assertTrue(instance.isConnected()); instance.close(); assertFalse(instance.isConnected()); } @Test public void testIsConnected() { UDPMasterConnection mockConnection = mock(UDPMasterConnection.class); when(mockConnection.isConnected()).thenReturn(Boolean.TRUE, Boolean.FALSE); UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(mockConnection); assertTrue(instance.isConnected()); assertFalse(instance.isConnected()); } @Test public void testGetAddressAndSetAddress() throws Exception { UDPMasterConnection conn = new UDPMasterConnection(null); UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(conn); assertNull(instance.getAddress()); instance.setAddress(InetAddress.getLocalHost()); assertEquals(InetAddress.getLocalHost(), instance.getAddress()); } @Test public void testCreateTransaction() throws Exception { UDPMasterConnection conn = new UDPMasterConnection(InetAddress.getLocalHost()); conn.setPort(1024); conn.connect(); try { UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(conn); ModbusTransaction transaction = instance.createTransaction(); assertNotNull(transaction); assertTrue(transaction instanceof ModbusUDPTransaction); } finally { conn.close(); } } @Test public void testGetModbusTransport() throws Exception { UDPMasterConnection conn = new UDPMasterConnection(InetAddress.getLocalHost()); conn.setPort(1024); conn.connect(); try { UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(conn); ModbusTransport transport = instance.getModbusTransport(); assertNotNull(transport); assertTrue(transport instanceof ModbusUDPTransport); } finally { conn.close(); } } @Test public void testGetPortAndSetPort() { UDPMasterConnection conn = new UDPMasterConnection(null); UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(conn); instance.setPort(1234); assertEquals(1234, instance.getPort()); } @Test public void testGetTimeoutAndSetTimeout() throws Exception { UDPMasterConnection conn = new UDPMasterConnection(InetAddress.getLocalHost()); conn.connect(); try { UDPMasterConnectionWrapper instance = new UDPMasterConnectionWrapper(conn); instance.setTimeout(5678); assertEquals(5678, instance.getTimeout()); } finally { conn.close(); } } }