// Path: src/main/java/org/jinstagram/auth/oauth/InstagramService.java
// public class InstagramService {
// 	private static final String VERSION = "1.0";
// 
// 	private static final String AUTHORIZATION_CODE = "authorization_code";
// 
// 	private final InstagramApi api;
// 
// 	private final OAuthConfig config;
// 
// 	/**
// 	 * Default constructor
// 	 * 
// 	 * @param api OAuth2.0 api information
// 	 * @param config OAuth 2.0 configuration param object
// 	 */
// 	public InstagramService(InstagramApi api, OAuthConfig config) {
// 		this.api = api;
// 		this.config = config;
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public Token getAccessToken(Verifier verifier) {
// 		OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint());
// 
// 		// Add the oauth parameter in the body
// 		request.addBodyParameter(OAuthConstants.CLIENT_ID, config.getApiKey());
// 		request.addBodyParameter(OAuthConstants.CLIENT_SECRET, config.getApiSecret());
// 		request.addBodyParameter(OAuthConstants.GRANT_TYPE, AUTHORIZATION_CODE);
// 		request.addBodyParameter(OAuthConstants.CODE, verifier.getValue());
// 		request.addBodyParameter(OAuthConstants.REDIRECT_URI, config.getCallback());
// 
// 		if (config.hasScope()) {
// 			request.addBodyParameter(OAuthConstants.SCOPE, config.getScope());
// 		}
// 
// 		if (config.getDisplay() != null) {
// 			request.addBodyParameter(OAuthConstants.DISPLAY, config.getDisplay());
// 		}
// 
// 		if (config.getRequestProxy() != null) {
// 			request.setProxy(config.getRequestProxy() );
// 		}
// 
// 		Response response;
// 		try {
// 			response = request.send();
// 		} catch (IOException e) {
// 			throw new OAuthException("Could not get access token", e);
// 		}
// 
// 		return api.getAccessTokenExtractor().extract(response.getBody());
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public Token getRequestToken() {
// 		throw new UnsupportedOperationException(
// 				"Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there");
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public String getVersion() {
// 		return VERSION;
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public void signRequest(Token accessToken, OAuthRequest request) {
// 		request.addQuerystringParameter(OAuthConstants.ACCESS_TOKEN, accessToken.getToken());
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public String getAuthorizationUrl() {
// 		return api.getAuthorizationUrl(config);
// 	}
// 
// 	/**
// 	 * Return an Instagram object
// 	 */
// 	public InstagramClient getInstagram(Token accessToken) {
// 		return new Instagram(accessToken);
// 	}
// 
// 	/**
// 	 * Return an Instagram object with enforced signed header
// 	 */
// 	@Deprecated
// 	public InstagramClient getSignedHeaderInstagram(Token accessToken, String ipAddress) {
// 		return new Instagram(accessToken.getToken(), config.getApiSecret(), ipAddress);
// 	}
// }


import static org.junit.Assert.assertNotNull;
import java.net.InetSocketAddress;
import java.net.Proxy;
import org.jinstagram.auth.oauth.InstagramService;
import org.junit.Test;

		// add additional test code here
		// An unexpected exception was thrown in user code while executing this
		// test:
		// java.lang.IllegalArgumentException: Invalid Api secret
		// at org.jinstagram.utils.Preconditions.check(Preconditions.java:116)
		// at
		// org.jinstagram.utils.Preconditions.checkEmptyString(Preconditions.java:48)
		// at
		// org.jinstagram.auth.InstagramAuthService.apiSecret(InstagramAuthService.java:67)
		assertNotNull(result);
	}

	/**
	 * Run the InstagramService build() method test.
	 *
	 * @throws Exception
	 *
	 * 
	 */
	@Test(expected = IllegalArgumentException.class)
	public void testBuild() throws Exception {
		InstagramAuthService fixture = new InstagramAuthService();
		fixture.apiSecret("");
		fixture.callback("");
		fixture.scope("");
		fixture.proxy(new Proxy(java.net.Proxy.Type.DIRECT, new InetSocketAddress(1)));
		fixture.apiKey("");
		fixture.display("");

// Path: src/main/java/org/jinstagram/auth/oauth/InstagramService.java
// public class InstagramService {
// 	private static final String VERSION = "1.0";
// 
// 	private static final String AUTHORIZATION_CODE = "authorization_code";
// 
// 	private final InstagramApi api;
// 
// 	private final OAuthConfig config;
// 
// 	/**
// 	 * Default constructor
// 	 * 
// 	 * @param api OAuth2.0 api information
// 	 * @param config OAuth 2.0 configuration param object
// 	 */
// 	public InstagramService(InstagramApi api, OAuthConfig config) {
// 		this.api = api;
// 		this.config = config;
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public Token getAccessToken(Verifier verifier) {
// 		OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint());
// 
// 		// Add the oauth parameter in the body
// 		request.addBodyParameter(OAuthConstants.CLIENT_ID, config.getApiKey());
// 		request.addBodyParameter(OAuthConstants.CLIENT_SECRET, config.getApiSecret());
// 		request.addBodyParameter(OAuthConstants.GRANT_TYPE, AUTHORIZATION_CODE);
// 		request.addBodyParameter(OAuthConstants.CODE, verifier.getValue());
// 		request.addBodyParameter(OAuthConstants.REDIRECT_URI, config.getCallback());
// 
// 		if (config.hasScope()) {
// 			request.addBodyParameter(OAuthConstants.SCOPE, config.getScope());
// 		}
// 
// 		if (config.getDisplay() != null) {
// 			request.addBodyParameter(OAuthConstants.DISPLAY, config.getDisplay());
// 		}
// 
// 		if (config.getRequestProxy() != null) {
// 			request.setProxy(config.getRequestProxy() );
// 		}
// 
// 		Response response;
// 		try {
// 			response = request.send();
// 		} catch (IOException e) {
// 			throw new OAuthException("Could not get access token", e);
// 		}
// 
// 		return api.getAccessTokenExtractor().extract(response.getBody());
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public Token getRequestToken() {
// 		throw new UnsupportedOperationException(
// 				"Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there");
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public String getVersion() {
// 		return VERSION;
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public void signRequest(Token accessToken, OAuthRequest request) {
// 		request.addQuerystringParameter(OAuthConstants.ACCESS_TOKEN, accessToken.getToken());
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	public String getAuthorizationUrl() {
// 		return api.getAuthorizationUrl(config);
// 	}
// 
// 	/**
// 	 * Return an Instagram object
// 	 */
// 	public InstagramClient getInstagram(Token accessToken) {
// 		return new Instagram(accessToken);
// 	}
// 
// 	/**
// 	 * Return an Instagram object with enforced signed header
// 	 */
// 	@Deprecated
// 	public InstagramClient getSignedHeaderInstagram(Token accessToken, String ipAddress) {
// 		return new Instagram(accessToken.getToken(), config.getApiSecret(), ipAddress);
// 	}
// }


// Path: src/test/java/org/jinstagram/auth/InstagramAuthServiceTest.java
import static org.junit.Assert.assertNotNull;
import java.net.InetSocketAddress;
import java.net.Proxy;
import org.jinstagram.auth.oauth.InstagramService;
import org.junit.Test;


		// add additional test code here
		// An unexpected exception was thrown in user code while executing this
		// test:
		// java.lang.IllegalArgumentException: Invalid Api secret
		// at org.jinstagram.utils.Preconditions.check(Preconditions.java:116)
		// at
		// org.jinstagram.utils.Preconditions.checkEmptyString(Preconditions.java:48)
		// at
		// org.jinstagram.auth.InstagramAuthService.apiSecret(InstagramAuthService.java:67)
		assertNotNull(result);
	}

	/**
	 * Run the InstagramService build() method test.
	 *
	 * @throws Exception
	 *
	 * 
	 */
	@Test(expected = IllegalArgumentException.class)
	public void testBuild() throws Exception {
		InstagramAuthService fixture = new InstagramAuthService();
		fixture.apiSecret("");
		fixture.callback("");
		fixture.scope("");
		fixture.proxy(new Proxy(java.net.Proxy.Type.DIRECT, new InetSocketAddress(1)));
		fixture.apiKey("");
		fixture.display("");

		InstagramService result = fixture.build();