package name.abuchen.portfolio.datatransfer.actions;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
import name.abuchen.portfolio.datatransfer.ImportAction.Status;
import name.abuchen.portfolio.model.Account;
import name.abuchen.portfolio.model.AccountTransaction;
import name.abuchen.portfolio.model.Portfolio;
import name.abuchen.portfolio.model.PortfolioTransaction;
import name.abuchen.portfolio.model.Security;
import name.abuchen.portfolio.money.Money;
@SuppressWarnings("nls")
public class CheckValidTypesActionTest
{
CheckValidTypesAction action = new CheckValidTypesAction();
@Test
public void testAccountTransaction()
{
Account account = new Account();
account.setCurrencyCode("EUR");
AccountTransaction t = new AccountTransaction();
t.setMonetaryAmount(Money.of("EUR", 1_00));
t.setType(AccountTransaction.Type.BUY);
assertThat(action.process(t, account).getCode(), is(Status.Code.ERROR));
t.setType(AccountTransaction.Type.SELL);
assertThat(action.process(t, account).getCode(), is(Status.Code.ERROR));
t.setType(AccountTransaction.Type.TRANSFER_IN);
assertThat(action.process(t, account).getCode(), is(Status.Code.ERROR));
t.setType(AccountTransaction.Type.TRANSFER_OUT);
assertThat(action.process(t, account).getCode(), is(Status.Code.ERROR));
t.setType(AccountTransaction.Type.DEPOSIT);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.DIVIDENDS);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.FEES);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.FEES_REFUND);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.INTEREST);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.INTEREST_CHARGE);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.REMOVAL);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.TAX_REFUND);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
t.setType(AccountTransaction.Type.TAXES);
assertThat(action.process(t, account).getCode(), is(Status.Code.OK));
}
@Test
public void testPortfolioTransaction()
{
Portfolio portfolio = new Portfolio();
Security security = new Security("", "EUR");
PortfolioTransaction t = new PortfolioTransaction();
t.setMonetaryAmount(Money.of("EUR", 1_00));
t.setSecurity(security);
t.setType(PortfolioTransaction.Type.BUY);
assertThat(action.process(t, portfolio).getCode(), is(Status.Code.ERROR));
t.setType(PortfolioTransaction.Type.SELL);
assertThat(action.process(t, portfolio).getCode(), is(Status.Code.ERROR));
t.setType(PortfolioTransaction.Type.TRANSFER_IN);
assertThat(action.process(t, portfolio).getCode(), is(Status.Code.ERROR));
t.setType(PortfolioTransaction.Type.TRANSFER_OUT);
assertThat(action.process(t, portfolio).getCode(), is(Status.Code.ERROR));
t.setType(PortfolioTransaction.Type.DELIVERY_INBOUND);
assertThat(action.process(t, portfolio).getCode(), is(Status.Code.OK));
t.setType(PortfolioTransaction.Type.DELIVERY_OUTBOUND);
assertThat(action.process(t, portfolio).getCode(), is(Status.Code.OK));
}
}