package name.abuchen.portfolio.datatransfer.actions; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import java.util.List; import name.abuchen.portfolio.datatransfer.Extractor; import name.abuchen.portfolio.datatransfer.ImportAction; import name.abuchen.portfolio.model.Account; import name.abuchen.portfolio.model.Portfolio; public class AssertImportActions { private static class TestContext implements ImportAction.Context { private Account account; private Portfolio portfolio; private Account secondaryAccount; private Portfolio secondaryPortfolio; public TestContext(String currency) { this.account = new Account(); this.account.setCurrencyCode(currency); this.portfolio = new Portfolio(); this.secondaryAccount = new Account(); this.secondaryAccount.setCurrencyCode(currency); this.secondaryPortfolio = new Portfolio(); } @Override public Account getAccount() { return account; } @Override public Portfolio getPortfolio() { return portfolio; } @Override public Account getSecondaryAccount() { return secondaryAccount; } @Override public Portfolio getSecondaryPortfolio() { return secondaryPortfolio; } } private static final ImportAction[] actions = new ImportAction[] { // new CheckValidTypesAction(), new CheckCurrenciesAction() }; public void check(List<Extractor.Item> items, ImportAction.Context context) { for (Extractor.Item item : items) { for (ImportAction action : actions) { ImportAction.Status status = item.apply(action, context); assertThat(status.getMessage(), status.getCode(), is(ImportAction.Status.Code.OK)); } } } public void check(List<Extractor.Item> items, String currencyCode) { check(items, new TestContext(currencyCode)); } }