// Path: website/src/main/java/fr/cph/stock/enumtype/Currency.java
// public enum Currency {
// 	AUD("Australia Dollar", "$", "AUD"),
// 	CAD("Canada Dollar", "$", "CAD"),
// 	// CHF("Switzerland Franc", "CHF", "CHF"),
// 	EUR("Euro", "€", "EUR"),
// 	GBP("United Kingdom Pound", "£", "GBP"),
// 	JPY("Japanese Yen", "¥", "JPY"),
// 	// HKD("Hong Kong Dollar", "$", "HKD"),
// 	// SGD("Singapore Dollar", "$", "SGD"),
// 	USD("United States Dollar", "$", "USD");
// 	// ZAR("South Africa Rand", "R", "ZAR");
// 
// 	/**
// 	 * Constructor
// 	 *
// 	 * @param n  the name
// 	 * @param sy the symbol
// 	 * @param c  the code
// 	 */
// 	Currency(final String n, final String sy, final String c) {
// 		this.name = n;
// 		this.symbol = sy;
// 		this.code = c;
// 	}
// 
// 	/**
// 	 * Get the name
// 	 *
// 	 * @return the name
// 	 */
// 	public final String getName() {
// 		return name;
// 	}
// 
// 	/**
// 	 * Get Symbol
// 	 *
// 	 * @return the symbol
// 	 */
// 	public final String getSymbol() {
// 		return symbol;
// 	}
// 
// 	/**
// 	 * Get the code
// 	 *
// 	 * @return the code
// 	 */
// 	public final String getCode() {
// 		return code;
// 	}
// 
// 	/**
// 	 * Get a list of currency data
// 	 *
// 	 * @return the list of currency data
// 	 */
// 	public final List<CurrencyData> getCurrencyData() {
// 		return currencyData;
// 	}
// 
// 	/**
// 	 * Set currency data list
// 	 *
// 	 * @param currencyD the currency data list
// 	 */
// 	public final void setCurrencyData(final List<CurrencyData> currencyD) {
// 		this.currencyData = currencyD;
// 	}
// 
// 	/**
// 	 * Get parity
// 	 *
// 	 * @param currency the currency
// 	 * @return the parity
// 	 */
// 	public final Double getParity(final Currency currency) {
// 		Double res = 0d;
// 		for (CurrencyData currencyD : getCurrencyData()) {
// 			if (currencyD.getCurrency1() == currency) {
// 				res = currencyD.getValue();
// 				break;
// 			}
// 		}
// 		return res;
// 	}
// 
// 	/**
// 	 * Get enum from str
// 	 *
// 	 * @param value the str value
// 	 * @return the currency
// 	 */
// 	public static Currency getEnum(final String value) {
// 		if (value == null) {
// 			throw new IllegalArgumentException();
// 		}
// 		for (Currency c : values()) {
// 			if (value.equalsIgnoreCase(c.getCode())) {
// 				return c;
// 			}
// 		}
// 		throw new IllegalArgumentException();
// 	}
// 
// 	/**
// 	 * Get jsonobject
// 	 *
// 	 * @return the JSONObject
// 	 */
// 	public final JsonObject getJSONObject() {
// 		final JsonObject json = new JsonObject();
// 		json.addProperty("name", getName());
// 		json.addProperty("symbol", getSymbol());
// 		json.addProperty("code", getCode());
// 		return json;
// 	}
// 
// 	/**
// 	 * List of currency data
// 	 **/
// 	private List<CurrencyData> currencyData;
// 	/**
// 	 * name
// 	 **/
// 	private final String name;
// 	/**
// 	 * symbol
// 	 **/
// 	private final String symbol;
// 	/**
// 	 * cod
// 	 **/
// 	private final String code;
// 
// }


import com.google.gson.JsonObject;
import fr.cph.stock.enumtype.Currency;
import org.junit.Before;
import org.junit.Test;
import java.sql.Timestamp;
import java.util.*;
import static fr.cph.stock.enumtype.MarketCapitalization.LARGE_CAP;
import static fr.cph.stock.enumtype.MarketCapitalization.MEGA_CAP;
import static fr.cph.stock.util.Constants.FUND;
import static fr.cph.stock.util.Constants.UNKNOWN;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

	private List<Account> createAccounts() {
		Account account1 = Account.builder().id(2).name(FIDELITY).del(false).currency(Currency.USD).build();
		Account account2 = Account.builder().id(3).del(true).currency(Currency.USD).build();
		return Arrays.asList(account1, account2);
	}

	private List<ShareValue> createShareValues() {
		Date date = new Date();
		ShareValue shareValue1 = new ShareValue();
		shareValue1.setShareValue(5d);
		shareValue1.setDate(new Date(date.getTime() + 50000));

		ShareValue shareValue2 = new ShareValue();
		shareValue2.setShareValue(10d);
		shareValue2.setDate(date);
		return Arrays.asList(shareValue1, shareValue2);
	}

	private List<Equity> createEquities() {
		Company companyGoogle = Company.builder()
			.yahooId(GOOGLE)
			.quote(200d)
			.lastUpdate(new Timestamp(new Date().getTime()))
			.currency(Currency.USD)
			.realTime(true)
			.fund(false)
			.build();

		Equity google = Equity.builder()
// Path: website/src/main/java/fr/cph/stock/enumtype/Currency.java
// public enum Currency {
// 	AUD("Australia Dollar", "$", "AUD"),
// 	CAD("Canada Dollar", "$", "CAD"),
// 	// CHF("Switzerland Franc", "CHF", "CHF"),
// 	EUR("Euro", "€", "EUR"),
// 	GBP("United Kingdom Pound", "£", "GBP"),
// 	JPY("Japanese Yen", "¥", "JPY"),
// 	// HKD("Hong Kong Dollar", "$", "HKD"),
// 	// SGD("Singapore Dollar", "$", "SGD"),
// 	USD("United States Dollar", "$", "USD");
// 	// ZAR("South Africa Rand", "R", "ZAR");
// 
// 	/**
// 	 * Constructor
// 	 *
// 	 * @param n  the name
// 	 * @param sy the symbol
// 	 * @param c  the code
// 	 */
// 	Currency(final String n, final String sy, final String c) {
// 		this.name = n;
// 		this.symbol = sy;
// 		this.code = c;
// 	}
// 
// 	/**
// 	 * Get the name
// 	 *
// 	 * @return the name
// 	 */
// 	public final String getName() {
// 		return name;
// 	}
// 
// 	/**
// 	 * Get Symbol
// 	 *
// 	 * @return the symbol
// 	 */
// 	public final String getSymbol() {
// 		return symbol;
// 	}
// 
// 	/**
// 	 * Get the code
// 	 *
// 	 * @return the code
// 	 */
// 	public final String getCode() {
// 		return code;
// 	}
// 
// 	/**
// 	 * Get a list of currency data
// 	 *
// 	 * @return the list of currency data
// 	 */
// 	public final List<CurrencyData> getCurrencyData() {
// 		return currencyData;
// 	}
// 
// 	/**
// 	 * Set currency data list
// 	 *
// 	 * @param currencyD the currency data list
// 	 */
// 	public final void setCurrencyData(final List<CurrencyData> currencyD) {
// 		this.currencyData = currencyD;
// 	}
// 
// 	/**
// 	 * Get parity
// 	 *
// 	 * @param currency the currency
// 	 * @return the parity
// 	 */
// 	public final Double getParity(final Currency currency) {
// 		Double res = 0d;
// 		for (CurrencyData currencyD : getCurrencyData()) {
// 			if (currencyD.getCurrency1() == currency) {
// 				res = currencyD.getValue();
// 				break;
// 			}
// 		}
// 		return res;
// 	}
// 
// 	/**
// 	 * Get enum from str
// 	 *
// 	 * @param value the str value
// 	 * @return the currency
// 	 */
// 	public static Currency getEnum(final String value) {
// 		if (value == null) {
// 			throw new IllegalArgumentException();
// 		}
// 		for (Currency c : values()) {
// 			if (value.equalsIgnoreCase(c.getCode())) {
// 				return c;
// 			}
// 		}
// 		throw new IllegalArgumentException();
// 	}
// 
// 	/**
// 	 * Get jsonobject
// 	 *
// 	 * @return the JSONObject
// 	 */
// 	public final JsonObject getJSONObject() {
// 		final JsonObject json = new JsonObject();
// 		json.addProperty("name", getName());
// 		json.addProperty("symbol", getSymbol());
// 		json.addProperty("code", getCode());
// 		return json;
// 	}
// 
// 	/**
// 	 * List of currency data
// 	 **/
// 	private List<CurrencyData> currencyData;
// 	/**
// 	 * name
// 	 **/
// 	private final String name;
// 	/**
// 	 * symbol
// 	 **/
// 	private final String symbol;
// 	/**
// 	 * cod
// 	 **/
// 	private final String code;
// 
// }


// Path: website/src/test/java/fr/cph/stock/entities/PortfolioTest.java
import com.google.gson.JsonObject;
import fr.cph.stock.enumtype.Currency;
import org.junit.Before;
import org.junit.Test;
import java.sql.Timestamp;
import java.util.*;
import static fr.cph.stock.enumtype.MarketCapitalization.LARGE_CAP;
import static fr.cph.stock.enumtype.MarketCapitalization.MEGA_CAP;
import static fr.cph.stock.util.Constants.FUND;
import static fr.cph.stock.util.Constants.UNKNOWN;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;


	private List<Account> createAccounts() {
		Account account1 = Account.builder().id(2).name(FIDELITY).del(false).currency(Currency.USD).build();
		Account account2 = Account.builder().id(3).del(true).currency(Currency.USD).build();
		return Arrays.asList(account1, account2);
	}

	private List<ShareValue> createShareValues() {
		Date date = new Date();
		ShareValue shareValue1 = new ShareValue();
		shareValue1.setShareValue(5d);
		shareValue1.setDate(new Date(date.getTime() + 50000));

		ShareValue shareValue2 = new ShareValue();
		shareValue2.setShareValue(10d);
		shareValue2.setDate(date);
		return Arrays.asList(shareValue1, shareValue2);
	}

	private List<Equity> createEquities() {
		Company companyGoogle = Company.builder()
			.yahooId(GOOGLE)
			.quote(200d)
			.lastUpdate(new Timestamp(new Date().getTime()))
			.currency(Currency.USD)
			.realTime(true)
			.fund(false)
			.build();

		Equity google = Equity.builder()
			.quantity(5d)