All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ninja.RecycledNinjaServerTester Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (C) the original author or authors.
 *
 * 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 ninja;

import ninja.utils.NinjaMode;
import ninja.utils.NinjaTestServer;
import org.junit.ClassRule;
import org.junit.rules.ExternalResource;

/**
 * Uses a single NinjaTestServer per junit test class.  The server
 * is started a single time when the class loads and used across all tests.
 * If you're unit tests do not rely on a fresh server then this approach will
 * dramatically increase the speed of your unit tests -- by not starting up
 * and shutting down a ninja test server for each unit test.
 * 
 * 
 * public class MyControllerTest extends RecycledNinjaServerTester {
 * 
 *     @Test
 *     public void usersIndex() {
 *         String url = withBaseUrl("/users");
 *         // do rest of test...
 *     }
 * 
 * }
 * 
 * 
 * @see FreshNinjaServerTester
 */
public class RecycledNinjaServerTester extends BaseNinjaServerTester {
    
    static private NinjaTestServer ninjaTestServer;
    
    @ClassRule
    static public ExternalResource ninjaTestServerResource = new ExternalResource() {
        @Override
        protected void before() throws Throwable {
            ninjaTestServer = NinjaTestServer.builder().ninjaMode(NinjaMode.test).build();
        }

        @Override
        protected void after() {
            ninjaTestServer.shutdown();
            ninjaTestServer = null;
        }
    };

    @Override
    public NinjaTestServer getNinjaTestServer() {
        return ninjaTestServer;
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy