- Adding a small test to count transaction list items
This commit is contained in:
parent
09b6f75a1f
commit
7306652dda
5 changed files with 115 additions and 29 deletions
|
@ -27,12 +27,15 @@ android {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
|
//androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
|
||||||
exclude group: 'com.android.support', module: 'support-annotations'
|
androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.1', {
|
||||||
|
exclude group: 'com.android.support', module: 'support-annotations'
|
||||||
})
|
})
|
||||||
compile 'com.android.support:appcompat-v7:26.+'
|
compile 'com.android.support:appcompat-v7:26.1.0'
|
||||||
compile 'com.android.support.constraint:constraint-layout:1.0.2'
|
compile 'com.android.support.constraint:constraint-layout:1.0.2'
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
|
testCompile 'org.mockito:mockito-core:1.10.19'
|
||||||
|
//testCompile 'com.android.support.test:runner:1.0.1'
|
||||||
|
|
||||||
compile "android.arch.lifecycle:runtime:1.0.0-alpha9-1"
|
compile "android.arch.lifecycle:runtime:1.0.0-alpha9-1"
|
||||||
compile "android.arch.lifecycle:extensions:1.0.0-alpha9-1"
|
compile "android.arch.lifecycle:extensions:1.0.0-alpha9-1"
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package carbon.crypto.com.carbon.Assertions;
|
||||||
|
|
||||||
|
import android.support.test.espresso.NoMatchingViewException;
|
||||||
|
import android.support.test.espresso.ViewAssertion;
|
||||||
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.is;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Henry Varona on 19/9/2017.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class RecyclerViewItemsCountAssertion implements ViewAssertion {
|
||||||
|
private final int expectedCount;
|
||||||
|
|
||||||
|
public RecyclerViewItemsCountAssertion(int expectedCount) {
|
||||||
|
this.expectedCount = expectedCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void check(View view, NoMatchingViewException noViewFoundException) {
|
||||||
|
if (noViewFoundException != null) {
|
||||||
|
throw noViewFoundException;
|
||||||
|
}
|
||||||
|
|
||||||
|
RecyclerView recyclerView = (RecyclerView) view;
|
||||||
|
RecyclerView.Adapter adapter = recyclerView.getAdapter();
|
||||||
|
assertThat(adapter.getItemCount(), is(expectedCount));
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,26 +0,0 @@
|
||||||
package carbon.crypto.com.carbon;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.support.test.InstrumentationRegistry;
|
|
||||||
import android.support.test.runner.AndroidJUnit4;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instrumentation test, which will execute on an Android device.
|
|
||||||
*
|
|
||||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
|
||||||
*/
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
|
||||||
public class ExampleInstrumentedTest {
|
|
||||||
@Test
|
|
||||||
public void useAppContext() throws Exception {
|
|
||||||
// Context of the app under test.
|
|
||||||
Context appContext = InstrumentationRegistry.getTargetContext();
|
|
||||||
|
|
||||||
assertEquals("carbon.crypto.com.carbon", appContext.getPackageName());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
package carbon.crypto.com.carbon;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import android.support.test.InstrumentationRegistry;
|
||||||
|
import android.support.test.rule.ActivityTestRule;
|
||||||
|
import android.support.test.runner.AndroidJUnit4;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import carbon.crypto.com.carbon.Assertions.RecyclerViewItemsCountAssertion;
|
||||||
|
import cy.agorise.crystalwallet.IntroActivity;
|
||||||
|
import cy.agorise.crystalwallet.R;
|
||||||
|
import cy.agorise.crystalwallet.dao.CrystalDatabase;
|
||||||
|
import cy.agorise.crystalwallet.models.CryptoCoinTransaction;
|
||||||
|
|
||||||
|
import static android.support.test.espresso.Espresso.onView;
|
||||||
|
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Henry Varona on 19/9/2017.
|
||||||
|
*/
|
||||||
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class TransactionListTest {
|
||||||
|
CrystalDatabase db;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void addingTransactions(){
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
|
||||||
|
this.db = CrystalDatabase.getAppDatabase(InstrumentationRegistry.getTargetContext());
|
||||||
|
cal.set(2017,01,01,01,01,01);
|
||||||
|
CryptoCoinTransaction newTransaction = new CryptoCoinTransaction();
|
||||||
|
newTransaction.setAmount(1);
|
||||||
|
newTransaction.setFrom("friend1");
|
||||||
|
newTransaction.setTo("me1");
|
||||||
|
newTransaction.setDate(cal.getTime());
|
||||||
|
db.transactionDao().insertTransaction(newTransaction);
|
||||||
|
|
||||||
|
cal.set(2017,02,02,02,02,02);
|
||||||
|
newTransaction = new CryptoCoinTransaction();
|
||||||
|
newTransaction.setAmount(2);
|
||||||
|
newTransaction.setFrom("friend2");
|
||||||
|
newTransaction.setTo("me2");
|
||||||
|
newTransaction.setDate(cal.getTime());
|
||||||
|
db.transactionDao().insertTransaction(newTransaction);
|
||||||
|
|
||||||
|
cal.set(2017,03,03,03,03,03);
|
||||||
|
newTransaction = new CryptoCoinTransaction();
|
||||||
|
newTransaction.setAmount(3);
|
||||||
|
newTransaction.setFrom("friend3");
|
||||||
|
newTransaction.setTo("me3");
|
||||||
|
newTransaction.setDate(cal.getTime());
|
||||||
|
db.transactionDao().insertTransaction(newTransaction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public ActivityTestRule<IntroActivity> activityTestRule = new ActivityTestRule<IntroActivity>(IntroActivity.class);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void numberOfTransactionsInList(){
|
||||||
|
onView(withId(R.id.transactionListView)).check(new RecyclerViewItemsCountAssertion(3));
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void deleteTransactions(){
|
||||||
|
this.db.transactionDao().deleteAllTransactions();
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,4 +25,7 @@ public interface TransactionDao {
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
public void insertTransaction(CryptoCoinTransaction... transactions);
|
public void insertTransaction(CryptoCoinTransaction... transactions);
|
||||||
|
|
||||||
|
@Query("DELETE FROM crypto_coin_transaction")
|
||||||
|
public void deleteAllTransactions();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue