/* * Copyright (C) 2012-2015 The Android Money Manager Ex Project Team * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.moneymanagerex.android.tests; import android.content.Context; import com.money.manager.ex.BuildConfig; import com.money.manager.ex.account.AccountStatuses; import com.money.manager.ex.account.AccountTypes; import com.money.manager.ex.currency.CurrencyService; import com.money.manager.ex.datalayer.AccountRepository; import com.money.manager.ex.domainmodel.Account; import com.money.manager.ex.domainmodel.Currency; import com.money.manager.ex.servicelayer.AccountService; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.moneymanagerex.android.testhelpers.UnitTestHelper; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import static org.assertj.core.api.Assertions.assertThat; /** * Account Service tests. */ @RunWith(RobolectricTestRunner.class) @Config(constants = BuildConfig.class) public class AccountServiceTests { private AccountService testObject; @Before public void setup() { // initialize support for activities (UI) // this.controller = UnitTestHelper.getController(MainActivity.class); // this.activity = UnitTestHelper.getActivity(this.controller); // initialize database // UnitTestHelper.setupContentProvider(); Context context = UnitTestHelper.getContext(); testObject = new AccountService(context); } @After public void tearDown() { // Reset database instance between tests. UnitTestHelper.teardownDatabase(); // Destroy the activity controller. // this.controller.destroy(); testObject = null; } @Test public void instantiation() { assertThat(testObject).isNotNull(); } @Test public void getAccountCurrency() { // Given UnitTestHelper.setupContentProvider(); String expectedCode = "ISK"; Context context = UnitTestHelper.getContext(); CurrencyService currencyService = new CurrencyService(context); Currency currency = currencyService.getCurrency(expectedCode); AccountRepository repo = new AccountRepository(context); Account account = Account.create("bank account", AccountTypes.CHECKING, AccountStatuses.OPEN, false, currency.getCurrencyId()); repo.save(account); int accountId = account.getId(); // When String actual = testObject.getAccountCurrencyCode(accountId); // Then assertThat(actual).isEqualTo(expectedCode); } }