/** * Copyright (C) 2009-2013 Barchart, Inc. <http://www.barchart.com/> * * All rights reserved. Licensed under the OSI BSD License. * * http://www.opensource.org/licenses/bsd-license.php */ package com.barchart.udt; import static org.junit.Assert.*; import static util.UnitHelp.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import util.TestAny; public class TestOptionUDT extends TestAny { @Test public void testOptionBasic() throws Exception { final SocketUDT socket = new SocketUDT(TypeUDT.DATAGRAM); OptionUDT option; option = OptionUDT.UDT_SNDSYN; boolean booleanValue; booleanValue = true; socket.setOption(option, booleanValue); assertEquals(booleanValue, socket.getOption(option)); booleanValue = false; socket.setOption(option, booleanValue); assertEquals(booleanValue, socket.getOption(option)); log.info("pass: boolean"); option = OptionUDT.UDP_RCVBUF; int intValue; intValue = 123456789; socket.setOption(option, intValue); assertEquals(intValue, socket.getOption(option)); intValue = 987654321; socket.setOption(option, intValue); assertEquals(intValue, socket.getOption(option)); log.info("pass: int"); option = OptionUDT.UDT_MAXBW; long longValue; longValue = 1234567890123456789L; socket.setOption(option, longValue); assertEquals(longValue, socket.getOption(option)); longValue = 8765432109876543210L; socket.setOption(option, longValue); assertEquals(longValue, socket.getOption(option)); log.info("pass: long"); } @Test(expected = IllegalArgumentException.class) public void testOptionLingerRange1() throws ExceptionUDT { new LingerUDT(12345678); } @Test public void testOptionLingerRange2() throws ExceptionUDT { new LingerUDT(-12345678); new LingerUDT(0); new LingerUDT(65535); } @Test public void testOptionLinger() throws Exception { final SocketUDT socket = new SocketUDT(TypeUDT.DATAGRAM); final OptionUDT option = OptionUDT.UDT_LINGER; final LingerUDT linger1 = new LingerUDT(65432); socket.setOption(option, linger1); assertEquals(linger1, socket.getOption(option)); final LingerUDT linger2 = new LingerUDT(-12345); socket.setOption(option, linger2); assertEquals(LingerUDT.LINGER_ZERO, socket.getOption(option)); log.info("pass: linger"); } @Test public void testOptionsPrint() throws Exception { final SocketUDT accept = new SocketUDT(TypeUDT.DATAGRAM); accept.bind(localSocketAddress()); accept.listen(1); assertTrue(accept.isBound()); final SocketUDT client = new SocketUDT(TypeUDT.DATAGRAM); client.bind(localSocketAddress()); log.info("client {}", client); assertTrue(client.isBound()); client.connect(accept.getLocalSocketAddress()); assertTrue(client.isConnected()); final SocketUDT server = accept.accept(); assertTrue(server.isConnected()); log.info("client options:{}", client.toStringOptions()); log.info("server options:{}", server.toStringOptions()); } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } }