// Path: src/main/java/com/in28minutes/junit/model/Amount.java
// public interface Amount {
// 	BigDecimal getValue();
// 
// 	Currency getCurrency();
// }
// 
// Path: src/main/java/com/in28minutes/junit/model/Currency.java
// public enum Currency {
// 
// 	EURO("EUR"), UNITED_STATES_DOLLAR("USD"), INDIAN_RUPEE("INR");
// 
// 	private final String textValue;
// 
// 	Currency(final String textValue) {
// 		this.textValue = textValue;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return textValue;
// 	}
// }
// 
// Path: src/main/java/com/in28minutes/junit/model/Product.java
// public interface Product {
// 
// 	long getId();
// 
// 	String getName();
// 
// 	ProductType getType();
// 
// 	Amount getAmount();
// }


import java.math.BigDecimal;
import java.util.List;
import com.in28minutes.junit.business.exception.DifferentCurrenciesException;
import com.in28minutes.junit.model.Amount;
import com.in28minutes.junit.model.AmountImpl;
import com.in28minutes.junit.model.Currency;
import com.in28minutes.junit.model.Product;

package com.in28minutes.junit.business;



public class ClientBOImpl implements ClientBO {

	public Amount getClientProductsSum(List<Product> products)
			throws DifferentCurrenciesException {

		if (products.size() == 0)

// Path: src/main/java/com/in28minutes/junit/model/Amount.java
// public interface Amount {
// 	BigDecimal getValue();
// 
// 	Currency getCurrency();
// }
// 
// Path: src/main/java/com/in28minutes/junit/model/Currency.java
// public enum Currency {
// 
// 	EURO("EUR"), UNITED_STATES_DOLLAR("USD"), INDIAN_RUPEE("INR");
// 
// 	private final String textValue;
// 
// 	Currency(final String textValue) {
// 		this.textValue = textValue;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return textValue;
// 	}
// }
// 
// Path: src/main/java/com/in28minutes/junit/model/Product.java
// public interface Product {
// 
// 	long getId();
// 
// 	String getName();
// 
// 	ProductType getType();
// 
// 	Amount getAmount();
// }


// Path: src/main/java/com/in28minutes/junit/business/ClientBOImpl.java
import java.math.BigDecimal;
import java.util.List;
import com.in28minutes.junit.business.exception.DifferentCurrenciesException;
import com.in28minutes.junit.model.Amount;
import com.in28minutes.junit.model.AmountImpl;
import com.in28minutes.junit.model.Currency;
import com.in28minutes.junit.model.Product;

package com.in28minutes.junit.business;



public class ClientBOImpl implements ClientBO {

	public Amount getClientProductsSum(List<Product> products)
			throws DifferentCurrenciesException {

		if (products.size() == 0)

			return new AmountImpl(BigDecimal.ZERO, Currency.EURO);
