blob: fb2d78b4f563cc9a69d1761eb496bd018cff1930 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.harmony.tests.java.net;
import java.io.FileDescriptor;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocketImpl;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketAddress;
import java.net.SocketException;
import libcore.junit.junit3.TestCaseWithRules;
import libcore.junit.util.ResourceLeakageDetector;
import org.junit.Rule;
import org.junit.rules.TestRule;
public class DatagramSocketImplTest extends TestCaseWithRules {
@Rule
public TestRule guardRule = ResourceLeakageDetector.getRule();
/**
* java.net.DatagramSocketImpl#DatagramSocketImpl()
*/
public void test_Constructor() throws Exception {
// regression test for Harmony-1117
MockDatagramSocketImpl impl = new MockDatagramSocketImpl();
assertNull(impl.getFileDescriptor());
}
public void test_connect() throws Exception {
MockDatagramSocketImpl impl = new MockDatagramSocketImpl();
InetAddress localhost = InetAddress.getByName("localhost"); //$NON-NLS-1$
// connect do nothing, so will not throw exception
impl.test_connect(localhost, 0);
impl.test_connect(localhost, -1);
impl.test_connect(null, -1);
// disconnect
impl.test_disconnect();
}
}
class MockDatagramSocketImpl extends DatagramSocketImpl {
@Override
public FileDescriptor getFileDescriptor() {
return super.getFileDescriptor();
}
@Override
protected void bind(int port, InetAddress addr) throws SocketException {
// empty
}
@Override
protected void close() {
// empty
}
@Override
protected void create() throws SocketException {
// empty
}
public Object getOption(int optID) throws SocketException {
return null;
}
@Override
protected byte getTTL() throws IOException {
return 0;
}
@Override
protected int getTimeToLive() throws IOException {
return 0;
}
@Override
protected void join(InetAddress addr) throws IOException {
// empty
}
@Override
protected void joinGroup(SocketAddress addr, NetworkInterface netInterface)
throws IOException {
// empty
}
@Override
protected void leave(InetAddress addr) throws IOException {
// empty
}
@Override
protected void leaveGroup(SocketAddress addr, NetworkInterface netInterface)
throws IOException {
// empty
}
@Override
protected int peek(InetAddress sender) throws IOException {
return 0;
}
@Override
protected int peekData(DatagramPacket pack) throws IOException {
return 0;
}
@Override
protected void receive(DatagramPacket pack) throws IOException {
// empty
}
@Override
protected void send(DatagramPacket pack) throws IOException {
// empty
}
public void setOption(int optID, Object val) throws SocketException {
// empty
}
@Override
protected void setTTL(byte ttl) throws IOException {
// empty
}
@Override
protected void setTimeToLive(int ttl) throws IOException {
// empty
}
public void test_connect(InetAddress inetAddr, int port) throws SocketException {
super.connect(inetAddr, port);
}
public void test_disconnect() {
super.disconnect();
}
}