// Path: heroku-api/src/main/java/com/heroku/api/connection/Connection.java
// public interface Connection {
// 
// 
//     /**
//      * Synchronously execute the given request, using a different apiKey than the one associated with this connection
//      *
//      * @param request the request to execute
//      * @param <T>     the response type
//      * @param apiKey  the apiKey of the user to make the request on behalf of
//      * @return the response as parsed by the request object
//      */
//     <T> T execute(Request<T> request, String apiKey);
// 
// 
//     /**
//      * Synchronously execute the given request, using a different apiKey than the one associated with this connection
//      *
//      * @param request the request to execute
//      * @param <T>     the response type
//      * @param extraHeaders any extra headers to send with the request
//      * @param apiKey  the apiKey of the user to make the request on behalf of
//      * @return the response as parsed by the request object
//      */
//     <T> T execute(Request<T> request, Map<String,String> extraHeaders, String apiKey);
// 
//     /**
//      * Release any resources associated with this connection
//      */
//     void close();
// 
// }


import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.heroku.api.connection.Connection;
import java.io.IOException;
package com.heroku.api;




/**
 * Guice Module for providing tests with authentication information.
 *
 * @author Naaman Newbold
 */
public abstract class ConnectionTestModule extends AbstractModule {

    @Override
    protected void configure() {
    }

// Path: heroku-api/src/main/java/com/heroku/api/connection/Connection.java
// public interface Connection {
// 
// 
//     /**
//      * Synchronously execute the given request, using a different apiKey than the one associated with this connection
//      *
//      * @param request the request to execute
//      * @param <T>     the response type
//      * @param apiKey  the apiKey of the user to make the request on behalf of
//      * @return the response as parsed by the request object
//      */
//     <T> T execute(Request<T> request, String apiKey);
// 
// 
//     /**
//      * Synchronously execute the given request, using a different apiKey than the one associated with this connection
//      *
//      * @param request the request to execute
//      * @param <T>     the response type
//      * @param extraHeaders any extra headers to send with the request
//      * @param apiKey  the apiKey of the user to make the request on behalf of
//      * @return the response as parsed by the request object
//      */
//     <T> T execute(Request<T> request, Map<String,String> extraHeaders, String apiKey);
// 
//     /**
//      * Release any resources associated with this connection
//      */
//     void close();
// 
// }


// Path: heroku-api-integration-tests/src/test/java/com/heroku/api/ConnectionTestModule.java
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.heroku.api.connection.Connection;
import java.io.IOException;

package com.heroku.api;




/**
 * Guice Module for providing tests with authentication information.
 *
 * @author Naaman Newbold
 */
public abstract class ConnectionTestModule extends AbstractModule {

    @Override
    protected void configure() {
    }

    abstract Connection getConnectionImpl() throws IOException;