/* * 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.datalayer.AccountRepository; import com.money.manager.ex.domainmodel.Account; 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 junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static org.assertj.core.api.Assertions.assertThat; /** * Test Account model. */ @RunWith(RobolectricTestRunner.class) @Config(constants = BuildConfig.class) public class AccountTests { private Account account; @Before public void setup() { this.account = new Account(); } @Test public void testInstantiation() { Account account = new Account(); assertTrue(account != null); } @Test public void testPropertySetting() { final int id = 3; this.account.setId(id); int actual = this.account.getId(); assertEquals(id, actual); } @Test public void testThrowException() { Integer actual = this.account.getId(); assertNull(actual); } @Test public void canUpdateValueInDb() { // Given UnitTestHelper.setupContentProvider(); Context context = UnitTestHelper.getContext(); AccountRepository repo = new AccountRepository(context); Account account = Account.create("first", AccountTypes.CHECKING, AccountStatuses.OPEN, true, 1); String accountNumber = "blah blah"; // When repo.save(account); Integer id = account.getId(); Account loaded = repo.load(id); loaded.setAccountNumber(accountNumber); repo.save(loaded); loaded = repo.load(id); String actual = loaded.getAccountNumber(); // Then assertThat(id).isEqualTo(1); assertThat(actual).isEqualTo(accountNumber); } }