blob: 7a93eacd2ca557c9cc24878a1b3d3bceb33e7c46 [file] [log] [blame]
/*
* Copyright 2015 Open Networking Laboratory
*
* 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 org.onosproject.rest.resources;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
import java.io.IOException;
import java.net.ServerSocket;
/**
* Base class for REST API tests. Performs common configuration operations.
*/
public class ResourceTest extends JerseyTest {
private static final int DEFAULT_PORT = 9998;
/**
* Creates a new web-resource test.
*/
public ResourceTest() {
super(ResourceConfig.forApplicationClass(CoreWebApplication.class));
this.set("jersey.config.test.container.port", getRandomPort(DEFAULT_PORT));
}
/**
* Creates a new web-resource test.
*/
public ResourceTest(ResourceConfig config) {
super(config);
this.set("jersey.config.test.container.port", getRandomPort(DEFAULT_PORT));
}
/**
* Returns an unused port number to make sure that each unit test runs in
* different port number.
*
* @param defaultPort default port number
* @return a randomized unique port number
*/
private int getRandomPort(int defaultPort) {
try {
ServerSocket socket = new ServerSocket(0);
socket.setReuseAddress(true);
int port = socket.getLocalPort();
socket.close();
return port;
} catch (IOException ioe) {
return defaultPort;
}
}
}