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

com.undefinedlabs.scope.rules.ScopeMockWebServer Maven / Gradle / Ivy

package com.undefinedlabs.scope.rules;

import com.undefinedlabs.scope.logger.ScopeLogger;
import okhttp3.mockwebserver.Dispatcher;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import okhttp3.mockwebserver.RecordedRequest;
import org.slf4j.Logger;

import java.io.IOException;

public class ScopeMockWebServer {

    private static final Logger LOGGER = ScopeLogger.INSTANCE;
    private static MockWebServer MOCK_WEB_SERVER;

    public static void start() {
        try {
            MOCK_WEB_SERVER = new MockWebServer();
            MOCK_WEB_SERVER.setDispatcher(new Dispatcher() {
                @Override
                public MockResponse dispatch(RecordedRequest recordedRequest) throws InterruptedException {
                    LOGGER.debug("Captured request to MockWebServer. RequestURL: {}, Headers: {}", recordedRequest.getRequestUrl(), recordedRequest.getHeaders());
                    return new MockResponse().setResponseCode(200);
                }
            });
            MOCK_WEB_SERVER.start();
        } catch(IOException e){
            throw new RuntimeException(e);
        }
    }

    public static String url(final String path) {
       return MOCK_WEB_SERVER.url(path).toString();
    }

    public static void shutdown() {
        try {
            MOCK_WEB_SERVER.shutdown();
        } catch(IOException e){
            throw new RuntimeException(e);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy