/*
* $Id$
*
* Janus platform is an open-source multiagent platform.
* More details on http://www.janusproject.io
*
* Copyright (C) 2014-2015 Sebastian RODRIGUEZ, Nicolas GAUD, Stéphane GALLAND.
*
* 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 io.janusproject.tests.services.network;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URI;
import java.util.UUID;
import io.janusproject.services.network.NetworkUtil;
import io.janusproject.tests.testutils.AbstractJanusTest;
import org.junit.Test;
/**
* @author $Author: sgalland$
* @version $FullVersion$
* @mavengroupid $GroupId$
* @mavenartifactid $ArtifactId$
*/
@SuppressWarnings("all")
public class NetworkUtilTest extends AbstractJanusTest {
@Test
public void toByteArrayUUID() {
byte[] b = NetworkUtil.toByteArray(UUID.fromString("005dd043-8553-40d2-8094-ad159bfabf86")); //$NON-NLS-1$
assertNotNull(b);
assertEquals(36, b.length);
assertEquals((byte) '0', b[0]);
assertEquals((byte) '0', b[1]);
assertEquals((byte) '5', b[2]);
assertEquals((byte) 'd', b[3]);
assertEquals((byte) 'd', b[4]);
assertEquals((byte) '0', b[5]);
assertEquals((byte) '4', b[6]);
assertEquals((byte) '3', b[7]);
assertEquals((byte) '-', b[8]);
assertEquals((byte) '8', b[9]);
assertEquals((byte) '5', b[10]);
assertEquals((byte) '5', b[11]);
assertEquals((byte) '3', b[12]);
assertEquals((byte) '-', b[13]);
assertEquals((byte) '4', b[14]);
assertEquals((byte) '0', b[15]);
assertEquals((byte) 'd', b[16]);
assertEquals((byte) '2', b[17]);
assertEquals((byte) '-', b[18]);
assertEquals((byte) '8', b[19]);
assertEquals((byte) '0', b[20]);
assertEquals((byte) '9', b[21]);
assertEquals((byte) '4', b[22]);
assertEquals((byte) '-', b[23]);
assertEquals((byte) 'a', b[24]);
assertEquals((byte) 'd', b[25]);
assertEquals((byte) '1', b[26]);
assertEquals((byte) '5', b[27]);
assertEquals((byte) '9', b[28]);
assertEquals((byte) 'b', b[29]);
assertEquals((byte) 'f', b[30]);
assertEquals((byte) 'a', b[31]);
assertEquals((byte) 'b', b[32]);
assertEquals((byte) 'f', b[33]);
assertEquals((byte) '8', b[34]);
assertEquals((byte) '6', b[35]);
}
@Test(expected = IllegalArgumentException.class)
public void fromByteArray_invalid() {
byte[] b = new byte[] { (byte) '0', (byte) '8', (byte) '5', (byte) '5', (byte) '3', };
NetworkUtil.fromByteArray(b);
}
@Test
public void fromByteArray() {
byte[] b = new byte[] { (byte) '0', (byte) '0', (byte) '5', (byte) 'd', (byte) 'd', (byte) '0', (byte) '4', (byte) '3',
(byte) '-', (byte) '8', (byte) '5', (byte) '5', (byte) '3', (byte) '-', (byte) '4', (byte) '0', (byte) 'd',
(byte) '2', (byte) '-', (byte) '8', (byte) '0', (byte) '9', (byte) '4', (byte) '-', (byte) 'a', (byte) 'd',
(byte) '1', (byte) '5', (byte) '9', (byte) 'b', (byte) 'f', (byte) 'a', (byte) 'b', (byte) 'f', (byte) '8',
(byte) '6', };
UUID id = NetworkUtil.fromByteArray(b);
assertNotNull(id);
assertEquals(UUID.fromString("005dd043-8553-40d2-8094-ad159bfabf86"), id); //$NON-NLS-1$
}
@Test
public void toURIInetAddress() throws Exception {
InetAddress a;
a = InetAddress.getByName("190.191.192.193"); //$NON-NLS-1$
assertEquals(NetworkUtil.toURI("tcp://190.191.192.193"), NetworkUtil.toURI(a)); //$NON-NLS-1$
}
@Test
public void toURIInetSocketAddress() throws Exception {
InetAddress a;
InetSocketAddress sa;
a = InetAddress.getByName("190.191.192.193"); //$NON-NLS-1$
sa = new InetSocketAddress(a, 12346);
assertEquals(NetworkUtil.toURI("tcp://190.191.192.193:12346"), NetworkUtil.toURI(sa)); //$NON-NLS-1$
}
@Test
public void toURIInetAddressInt() throws Exception {
InetAddress a;
a = InetAddress.getByName("190.191.192.193"); //$NON-NLS-1$
assertEquals(NetworkUtil.toURI("tcp://190.191.192.193:12346"), NetworkUtil.toURI(a, 12346)); //$NON-NLS-1$
}
@Test
public void toInetAddress() throws Exception {
URI uri = NetworkUtil.toURI("tcp://190.191.192.193:12346"); //$NON-NLS-1$
InetAddress a = NetworkUtil.toInetAddress(uri);
assertEquals("190.191.192.193", a.getHostAddress()); //$NON-NLS-1$
}
@Test
public void toInetSocketAddress() throws Exception {
URI uri = NetworkUtil.toURI("tcp://190.191.192.193:12346"); //$NON-NLS-1$
InetSocketAddress a = NetworkUtil.toInetSocketAddress(uri);
assertEquals("190.191.192.193", a.getHostName()); //$NON-NLS-1$
assertEquals(12346, a.getPort());
}
@Test
public void getPrimaryAddress() {
InetAddress adr1 = NetworkUtil.getPrimaryAddress();
InetAddress adr2 = NetworkUtil.getPrimaryAddress();
if (adr1 == null) {
assertNull(adr2);
} else {
assertEquals(adr1, adr2);
}
}
@Test
public void getLoopbackAddress() {
InetAddress ref = InetAddress.getLoopbackAddress();
assertNotNull(ref);
if (ref instanceof Inet4Address) {
InetAddress adr1 = NetworkUtil.getLoopbackAddress();
InetAddress adr2 = NetworkUtil.getLoopbackAddress();
assertEquals(ref, adr1);
assertEquals(adr1, adr2);
} else {
InetAddress adr1 = NetworkUtil.getLoopbackAddress();
InetAddress adr2 = NetworkUtil.getLoopbackAddress();
assertNull(adr1);
assertNull(adr2);
}
}
@Test
public void isConnectedHost() {
InetAddress adr = NetworkUtil.getPrimaryAddress();
assertEquals((adr != null), NetworkUtil.isConnectedHost());
}
}