// Path: src/main/java/com/lookfirst/wepay/api/WePayAccount.java
// @Data
// @EqualsAndHashCode(callSuper=false)
// public class WePayAccount extends AccountUri {
// 	private static final long serialVersionUID = 1L;
// 
// 	/** The name of the account. */
// 	private String name;
// 	/** The state of the account: active, disabled or deleted. */
// 	private String state;
// 	/** The account description. */
// 	private String description;
// 	/** The unique reference ID of the account (this is set by the application in the /account/create or /account/modify call). */
// 	private String referenceId;
// 	/** The maximum amount in dollars (including fees) that you can charge for payments to this account. */
// 	private String paymentLimit;
// 	/** An array of Google Analytics domains associated with the app. */
// 	private List<String> gaqDomains;
// 	/** The theme object associated with the App (if applicable). */
// 	private ThemeObject themeObject;
// 	/** Returns "verified" if the account has been verified and "unverified" if it has not. If the account has pending verification, then it is "pending". */
// 	private String verificationState;
// 	/** If the account is "unverified" then you can send the user to this url to verify their account. */
// 	private String verificationUrl;
// 	/** The account type. Can be "personal", "nonprofit", or "business". */
// 	private String type;
// 	/** The unixtime when the account was created. */
// 	private Long createTime;
// 	/** Array of account balances for each currency. */
// 	private List<AccountBalance> balances;
// 	/** Array of account incoming and outgoing payments status for each currency. */
// 	private List<AccountStatus> statuses;
// 	/** Array of action strings explaining all the actions that are required to make this account active. It will be empty if no action is required. */
// 	private List<String> actionReasons;
// 	/** The account's country of origin 2-letter ISO code (e.g. 'US') */
// 	private String country;
// 	/** Array of supported currency strings for this account (e.g. ["USD"]). Only "USD" is supported for now. */
// 	private List<String> currencies;
// }
// 
// Path: src/main/java/com/lookfirst/wepay/api/req/AccountFindRequest.java
// @Data
// @EqualsAndHashCode(callSuper=false)
// public class AccountFindRequest extends WePayRequest<List<WePayAccount>> {
// 
// 	/** The name of the account you are searching for. */
// 	private String name;
// 	/** The reference ID of the account you are searching for (set by the app in in /account/create or account/modify). */
// 	private String referenceId;
// 	/** Sort the results of the search by time created. Use 'DESC' for most recent to least recent. Use 'ASC' for least recent to most recent. Defaults to 'DESC'. */
// 	private SortOrder sortOrder;
// 
// 	/** */
// 	@Override
// 	public String getEndpoint() {
// 		return "/account/find";
// 	}
// }
// 
// Path: src/test/java/com/lookfirst/wepay/util/FakeDataProvider.java
// @AllArgsConstructor
// public class FakeDataProvider implements DataProvider {
// 	@NonNull
// 	final String data;
// 
// 	@Override
// 	public InputStream getData(String uri, String postJson, String token) throws IOException {
// 		return new ByteArrayInputStream(data.getBytes());
// 	}
// }


import com.lookfirst.wepay.api.WePayAccount;
import com.lookfirst.wepay.api.req.AccountFindRequest;
import com.lookfirst.wepay.util.FakeDataProvider;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.util.List;
package com.lookfirst.wepay;



/**
 * Testing the Account API calls
 */
@Test
public class AccountTest {

	private WePayKey key;

	@BeforeTest
	private void setup() {
		key = new WePayKey(false, 123L, "secret");
	}

	public void testAccountFind() throws Exception {
		String response = "[\n" +
			"{\n" +
// Path: src/main/java/com/lookfirst/wepay/api/WePayAccount.java
// @Data
// @EqualsAndHashCode(callSuper=false)
// public class WePayAccount extends AccountUri {
// 	private static final long serialVersionUID = 1L;
// 
// 	/** The name of the account. */
// 	private String name;
// 	/** The state of the account: active, disabled or deleted. */
// 	private String state;
// 	/** The account description. */
// 	private String description;
// 	/** The unique reference ID of the account (this is set by the application in the /account/create or /account/modify call). */
// 	private String referenceId;
// 	/** The maximum amount in dollars (including fees) that you can charge for payments to this account. */
// 	private String paymentLimit;
// 	/** An array of Google Analytics domains associated with the app. */
// 	private List<String> gaqDomains;
// 	/** The theme object associated with the App (if applicable). */
// 	private ThemeObject themeObject;
// 	/** Returns "verified" if the account has been verified and "unverified" if it has not. If the account has pending verification, then it is "pending". */
// 	private String verificationState;
// 	/** If the account is "unverified" then you can send the user to this url to verify their account. */
// 	private String verificationUrl;
// 	/** The account type. Can be "personal", "nonprofit", or "business". */
// 	private String type;
// 	/** The unixtime when the account was created. */
// 	private Long createTime;
// 	/** Array of account balances for each currency. */
// 	private List<AccountBalance> balances;
// 	/** Array of account incoming and outgoing payments status for each currency. */
// 	private List<AccountStatus> statuses;
// 	/** Array of action strings explaining all the actions that are required to make this account active. It will be empty if no action is required. */
// 	private List<String> actionReasons;
// 	/** The account's country of origin 2-letter ISO code (e.g. 'US') */
// 	private String country;
// 	/** Array of supported currency strings for this account (e.g. ["USD"]). Only "USD" is supported for now. */
// 	private List<String> currencies;
// }
// 
// Path: src/main/java/com/lookfirst/wepay/api/req/AccountFindRequest.java
// @Data
// @EqualsAndHashCode(callSuper=false)
// public class AccountFindRequest extends WePayRequest<List<WePayAccount>> {
// 
// 	/** The name of the account you are searching for. */
// 	private String name;
// 	/** The reference ID of the account you are searching for (set by the app in in /account/create or account/modify). */
// 	private String referenceId;
// 	/** Sort the results of the search by time created. Use 'DESC' for most recent to least recent. Use 'ASC' for least recent to most recent. Defaults to 'DESC'. */
// 	private SortOrder sortOrder;
// 
// 	/** */
// 	@Override
// 	public String getEndpoint() {
// 		return "/account/find";
// 	}
// }
// 
// Path: src/test/java/com/lookfirst/wepay/util/FakeDataProvider.java
// @AllArgsConstructor
// public class FakeDataProvider implements DataProvider {
// 	@NonNull
// 	final String data;
// 
// 	@Override
// 	public InputStream getData(String uri, String postJson, String token) throws IOException {
// 		return new ByteArrayInputStream(data.getBytes());
// 	}
// }


// Path: src/test/java/com/lookfirst/wepay/AccountTest.java
import com.lookfirst.wepay.api.WePayAccount;
import com.lookfirst.wepay.api.req.AccountFindRequest;
import com.lookfirst.wepay.util.FakeDataProvider;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.util.List;

package com.lookfirst.wepay;



/**
 * Testing the Account API calls
 */
@Test
public class AccountTest {

	private WePayKey key;

	@BeforeTest
	private void setup() {
		key = new WePayKey(false, 123L, "secret");
	}

	public void testAccountFind() throws Exception {
		String response = "[\n" +
			"{\n" +
			"\"account_id\":12345,\n" +