Fix unit tests

This commit is contained in:
Sylvia van Os
2021-04-26 19:23:22 +02:00
parent 6421f09eab
commit b2c57258b3
12 changed files with 188 additions and 195 deletions

View File

@@ -38,7 +38,7 @@ public class DatabaseTest
public void setUp()
{
Activity activity = Robolectric.setupActivity(MainActivity.class);
db = new DBHelper(activity);
db = TestHelpers.getEmptyDb(activity);
}
@Test

View File

@@ -60,7 +60,7 @@ public class ImportExportTest
public void setUp()
{
activity = Robolectric.setupActivity(MainActivity.class);
db = new DBHelper(activity);
db = TestHelpers.getEmptyDb(activity);
nowMs = System.currentTimeMillis();
Calendar lastYear = Calendar.getInstance();
@@ -312,20 +312,6 @@ public class ImportExportTest
cursor.close();
}
/**
* Delete the contents of the database
*/
private void clearDatabase()
{
SQLiteDatabase database = db.getWritableDatabase();
database.execSQL("delete from " + DBHelper.LoyaltyCardDbIds.TABLE);
database.execSQL("delete from " + DBHelper.LoyaltyCardDbGroups.TABLE);
database.execSQL("delete from " + DBHelper.LoyaltyCardDbIdsGroups.TABLE);
database.close();
assertEquals(0, db.getLoyaltyCardCount());
}
@Test
public void multipleCardsExportImport() throws IOException
{
@@ -341,7 +327,7 @@ public class ImportExportTest
assertTrue(result);
outStream.close();
clearDatabase();
TestHelpers.getEmptyDb(activity);
ByteArrayInputStream inData = new ByteArrayInputStream(outData.toByteArray());
@@ -354,7 +340,7 @@ public class ImportExportTest
checkLoyaltyCards();
// Clear the database for the next format under test
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -372,7 +358,7 @@ public class ImportExportTest
assertTrue(result);
outStream.close();
clearDatabase();
TestHelpers.getEmptyDb(activity);
ByteArrayInputStream inData = new ByteArrayInputStream(outData.toByteArray());
@@ -385,7 +371,7 @@ public class ImportExportTest
checkLoyaltyCardsFiveStarred();
// Clear the database for the next format under test
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
private List<String> groupsToGroupNames(List<Group> groups)
@@ -445,7 +431,7 @@ public class ImportExportTest
assertTrue(result);
outStream.close();
clearDatabase();
TestHelpers.getEmptyDb(activity);
ByteArrayInputStream inData = new ByteArrayInputStream(outData.toByteArray());
@@ -471,7 +457,7 @@ public class ImportExportTest
assertEquals(emptyGroup, db.getLoyaltyCardGroups(10));
// Clear the database for the next format under test
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -500,7 +486,7 @@ public class ImportExportTest
checkLoyaltyCards();
// Clear the database for the next format under test
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -519,7 +505,7 @@ public class ImportExportTest
boolean result = MultiFormatExporter.exportData(db, outStream, DataFormat.Catima);
assertTrue(result);
clearDatabase();
TestHelpers.getEmptyDb(activity);
// commons-csv would throw a RuntimeException if an entry was quotes but had
// content after. For example:
@@ -535,7 +521,7 @@ public class ImportExportTest
assertEquals(0, db.getLoyaltyCardCount());
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
}
@@ -574,7 +560,7 @@ public class ImportExportTest
assertNotNull(listener.success);
assertEquals(true, listener.success);
clearDatabase();
TestHelpers.getEmptyDb(activity);
// Import everything back from the default location
@@ -597,7 +583,7 @@ public class ImportExportTest
checkLoyaltyCards();
// Clear the database for the next format under test
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -633,7 +619,7 @@ public class ImportExportTest
assertNull(card.headerColor);
assertEquals(0, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -671,7 +657,7 @@ public class ImportExportTest
assertNull(card.headerColor);
assertEquals(0, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -696,7 +682,7 @@ public class ImportExportTest
assertEquals(false, result);
assertEquals(0, db.getLoyaltyCardCount());
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -734,7 +720,7 @@ public class ImportExportTest
assertEquals(1, (long) card.headerColor);
assertEquals(0, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -772,7 +758,7 @@ public class ImportExportTest
assertEquals(1, (long) card.headerColor);
assertEquals(1, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -810,7 +796,7 @@ public class ImportExportTest
assertEquals(1, (long) card.headerColor);
assertEquals(0, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -867,7 +853,7 @@ public class ImportExportTest
assertEquals(1, (long) card.headerColor);
assertEquals(0, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -1024,7 +1010,7 @@ public class ImportExportTest
assertEquals(null, card6.headerColor);
assertEquals(0, card6.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
@Test
@@ -1085,6 +1071,6 @@ public class ImportExportTest
assertEquals(Color.rgb(128, 0, 128), (long) card.headerColor);
assertEquals(0, card.starStatus);
clearDatabase();
TestHelpers.getEmptyDb(activity);
}
}

View File

@@ -33,7 +33,7 @@ public class ImportURITest {
{
Activity activity = Robolectric.setupActivity(MainActivity.class);
importURIHelper = new ImportURIHelper(activity);
db = new DBHelper(activity);
db = TestHelpers.getEmptyDb(activity);
}
@Test

View File

@@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.view.View;
import android.widget.ImageView;
@@ -17,6 +18,7 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import java.math.BigDecimal;
import java.text.DateFormat;
@@ -24,10 +26,14 @@ import java.util.Currency;
import java.util.Date;
import androidx.preference.PreferenceManager;
import androidx.test.core.app.ApplicationProvider;
import androidx.recyclerview.widget.RecyclerView;
import protect.card_locker.preferences.Settings;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
@Config(sdk = 23)
@@ -40,8 +46,10 @@ public class LoyaltyCardCursorAdapterTest
@Before
public void setUp()
{
ShadowLog.stream = System.out;
activity = Robolectric.setupActivity(MainActivity.class);
db = new DBHelper(activity);
db = TestHelpers.getEmptyDb(activity);
settings = PreferenceManager.getDefaultSharedPreferences(activity);
}
@@ -54,12 +62,12 @@ public class LoyaltyCardCursorAdapterTest
private View createView(Cursor cursor)
{
LoyaltyCardCursorAdapter adapter = new LoyaltyCardCursorAdapter(activity.getApplicationContext(), cursor);
LoyaltyCardCursorAdapter adapter = new LoyaltyCardCursorAdapter(activity.getApplicationContext(), cursor, (MainActivity) activity);
View view = adapter.newView(activity.getApplicationContext(), cursor, null);
adapter.bindView(view, activity.getApplicationContext(), cursor);
RecyclerView.ViewHolder viewHolder = adapter.createViewHolder(activity.findViewById(R.id.list), 0);
adapter.bindViewHolder((LoyaltyCardCursorAdapter.LoyaltyCardListItemViewHolder) viewHolder, cursor.getPosition());
return view;
return viewHolder.itemView;
}
private void checkView(final View view, final String store, final String note, final String expiry, final String balance, boolean checkFontSizes)
@@ -148,7 +156,7 @@ public class LoyaltyCardCursorAdapterTest
@Test
public void TestCursorAdapterFontSizes()
{
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
Date expiryDate = new Date();
String dateString = context.getString(R.string.expiryStateSentence, DateFormat.getDateInstance(DateFormat.LONG).format(expiryDate));
@@ -173,22 +181,39 @@ public class LoyaltyCardCursorAdapterTest
@Test
public void TestCursorAdapterStarring()
{
db.insertLoyaltyCard("storeA", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0);
db.insertLoyaltyCard("storeB", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 1);
db.insertLoyaltyCard("storeC", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 1);
assertNotEquals(-1, db.insertLoyaltyCard("storeA", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0));
assertNotEquals(-1, db.insertLoyaltyCard("storeB", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 1));
assertNotEquals(-1, db.insertLoyaltyCard("storeC", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 1));
assertEquals(3, db.getLoyaltyCardCount());
Cursor cursor = db.getLoyaltyCardCursor();
assertEquals(3, cursor.getCount());
cursor.moveToFirst();
System.out.println(LoyaltyCard.toLoyaltyCard(cursor).store);
cursor.moveToNext();
System.out.println(LoyaltyCard.toLoyaltyCard(cursor).store);
cursor.moveToNext();
System.out.println(LoyaltyCard.toLoyaltyCard(cursor).store);
assertTrue(cursor.moveToFirst());
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
assertEquals("storeB", loyaltyCard.store);
View view = createView(cursor);
ImageView star = view.findViewById(R.id.star);
assertEquals(View.VISIBLE, star.getVisibility());
cursor.moveToNext();
assertTrue(cursor.moveToNext());
loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
assertEquals("storeC", loyaltyCard.store);
view = createView(cursor);
star = view.findViewById(R.id.star);
assertEquals(View.VISIBLE, star.getVisibility());
cursor.moveToNext();
assertTrue(cursor.moveToNext());
loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
assertEquals("storeA", loyaltyCard.store);
view = createView(cursor);
star = view.findViewById(R.id.star);
assertEquals(View.GONE, star.getVisibility());

View File

@@ -50,7 +50,6 @@ import java.util.Date;
import androidx.core.widget.TextViewCompat;
import androidx.preference.PreferenceManager;
import androidx.test.core.app.ApplicationProvider;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
@@ -330,7 +329,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never) , "0", context.getString(R.string.points), "", context.getString(R.string.sameAsCardId),"");
}
@@ -345,7 +344,7 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
assertEquals(0, db.getLoyaltyCardCount());
final EditText storeField = activity.findViewById(R.id.storeNameEdit);
@@ -390,7 +389,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", context.getString(R.string.sameAsCardId),"");
@@ -414,7 +413,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", context.getString(R.string.sameAsCardId), "");
@@ -433,7 +432,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", context.getString(R.string.sameAsCardId),"");
@@ -487,8 +486,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
@@ -506,8 +505,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
@@ -525,8 +524,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -549,8 +548,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -587,8 +586,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -620,8 +619,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", new Date(), new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -645,8 +644,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -696,8 +695,8 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("10.00"), Currency.getInstance("USD"), EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -737,7 +736,7 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
@@ -786,7 +785,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
activityController.start();
@@ -806,7 +805,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, null, 0);
activityController.start();
@@ -825,7 +824,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, null, 0);
activityController.start();
@@ -843,7 +842,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, null, Color.BLACK, 0);
activityController.start();
@@ -860,8 +859,8 @@ public class LoyaltyCardViewActivityTest
public void removeBarcodeFromLoyaltyCard() throws IOException, ParseException {
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
final Context context = activity.getApplicationContext();
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
@@ -891,7 +890,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
final int LARGE_FONT_SIZE = 40;
@@ -966,7 +965,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity) activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK,0);
activityController.start();
activityController.visible();
@@ -1001,7 +1000,7 @@ public class LoyaltyCardViewActivityTest
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
DBHelper db = TestHelpers.getEmptyDb(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0);
activityController.start();
@@ -1112,7 +1111,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
shadowOf(getMainLooper()).idle();
@@ -1135,7 +1134,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
final Context context = activity.getApplicationContext();
checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", context.getString(R.string.never), "0", context.getString(R.string.points), "123456", null, "AZTEC");
assertEquals(-416706, ((ColorDrawable) activity.findViewById(R.id.thumbnail).getBackground()).getColor());

View File

@@ -20,25 +20,19 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import org.w3c.dom.Text;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.robolectric.Shadows.shadowOf;
<<<<<<<HEAD
=======
>>>>>>>cdd9472(WIP Issue #14(and #65))
<<<<<<<HEAD
=======
>>>>>>>cdd9472(WIP Issue #14(and #65))
<<<<<<<HEAD
=======
>>>>>>>cdd9472(WIP Issue #14(and #65))
@RunWith(RobolectricTestRunner.class)
@Config(sdk = 23)
public class MainActivityTest
@@ -56,7 +50,7 @@ public class MainActivityTest
TextView noMatchingCardsText = activity.findViewById(R.id.noMatchingCardsText);
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
ListView list = activity.findViewById(R.id.list);
RecyclerView list = activity.findViewById(R.id.list);
assertEquals(View.GONE, list.getVisibility());
}
@@ -99,11 +93,11 @@ public class MainActivityTest
TextView helpText = mainActivity.findViewById(R.id.helpText);
TextView noMatchingCardsText = mainActivity.findViewById(R.id.noMatchingCardsText);
ListView list = mainActivity.findViewById(R.id.list);
RecyclerView list = mainActivity.findViewById(R.id.list);
assertEquals(0, list.getCount());
assertEquals(0, list.getAdapter().getItemCount());
DBHelper db = new DBHelper(mainActivity);
DBHelper db = TestHelpers.getEmptyDb(mainActivity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0);
assertEquals(View.VISIBLE, helpText.getVisibility());
@@ -117,9 +111,7 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getAdapter().getCount());
Cursor cursor = (Cursor)list.getAdapter().getItem(0);
assertNotNull(cursor);
assertEquals(1, list.getAdapter().getItemCount());
db.close();
}
@@ -132,14 +124,15 @@ public class MainActivityTest
Activity mainActivity = (Activity)activityController.get();
activityController.start();
activityController.resume();
activityController.visible();
TextView helpText = mainActivity.findViewById(R.id.helpText);
TextView noMatchingCardsText = mainActivity.findViewById(R.id.noMatchingCardsText);
ListView list = mainActivity.findViewById(R.id.list);
RecyclerView list = mainActivity.findViewById(R.id.list);
assertEquals(0, list.getCount());
assertEquals(0, list.getAdapter().getItemCount());
DBHelper db = new DBHelper(mainActivity);
DBHelper db = TestHelpers.getEmptyDb(mainActivity);
db.insertLoyaltyCard("storeB", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0);
db.insertLoyaltyCard("storeA", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0);
db.insertLoyaltyCard("storeD", "note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 1);
@@ -151,27 +144,17 @@ public class MainActivityTest
activityController.pause();
activityController.resume();
activityController.visible();
assertEquals(View.GONE, helpText.getVisibility());
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(4, list.getAdapter().getCount());
Cursor cursor = (Cursor)list.getAdapter().getItem(0);
assertNotNull(cursor);
assertEquals("storeC",cursor.getString(cursor.getColumnIndex("store")));
cursor = (Cursor)list.getAdapter().getItem(1);
assertNotNull(cursor);
assertEquals("storeD",cursor.getString(cursor.getColumnIndex("store")));
cursor = (Cursor)list.getAdapter().getItem(2);
assertNotNull(cursor);
assertEquals("storeA",cursor.getString(cursor.getColumnIndex("store")));
cursor = (Cursor)list.getAdapter().getItem(3);
assertNotNull(cursor);
assertEquals("storeB",cursor.getString(cursor.getColumnIndex("store")));
assertEquals(4, list.getAdapter().getItemCount());
assertEquals("storeC", ((TextView) list.findViewHolderForAdapterPosition(0).itemView.findViewById(R.id.store)).getText());
assertEquals("storeD", ((TextView) list.findViewHolderForAdapterPosition(1).itemView.findViewById(R.id.store)).getText());
assertEquals("storeA", ((TextView) list.findViewHolderForAdapterPosition(2).itemView.findViewById(R.id.store)).getText());
assertEquals("storeB", ((TextView) list.findViewHolderForAdapterPosition(3).itemView.findViewById(R.id.store)).getText());
db.close();
}
@@ -185,7 +168,7 @@ public class MainActivityTest
activityController.start();
activityController.resume();
DBHelper db = new DBHelper(mainActivity);
DBHelper db = TestHelpers.getEmptyDb(mainActivity);
TabLayout groupTabs = mainActivity.findViewById(R.id.groups);
@@ -237,10 +220,10 @@ public class MainActivityTest
TextView helpText = mainActivity.findViewById(R.id.helpText);
TextView noMatchingCardsText = mainActivity.findViewById(R.id.noMatchingCardsText);
ListView list = mainActivity.findViewById(R.id.list);
RecyclerView list = mainActivity.findViewById(R.id.list);
TabLayout groupTabs = mainActivity.findViewById(R.id.groups);
DBHelper db = new DBHelper(mainActivity);
DBHelper db = TestHelpers.getEmptyDb(mainActivity);
db.insertLoyaltyCard("The First Store", "Initial note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0);
db.insertLoyaltyCard("The Second Store", "Secondary note", null, new BigDecimal("0"), null, "cardId", null, BarcodeFormat.UPC_A, Color.BLACK, 0);
@@ -256,7 +239,7 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(2, list.getCount());
assertEquals(2, list.getAdapter().getItemCount());
mainActivity.mFilter = "store";
@@ -267,9 +250,8 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(2, list.getCount());
assertEquals(2, list.getAdapter().getItemCount());
<<<<<<< HEAD
// Switch to Group one
groupTabs.selectTab(groupTabs.getTabAt(1));
@@ -280,7 +262,7 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
// Switch back to all groups
groupTabs.selectTab(groupTabs.getTabAt(0));
@@ -289,12 +271,9 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(2, list.getCount());
assertEquals(2, list.getAdapter().getItemCount());
mainActivity.filter = "first";
=======
mainActivity.mFilter = "first";
>>>>>>> cdd9472 (WIP Issue #14 (and #65))
activityController.pause();
activityController.resume();
@@ -303,9 +282,8 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
<<<<<<< HEAD
// Switch to Group one
groupTabs.selectTab(groupTabs.getTabAt(1));
@@ -316,7 +294,7 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
// Switch back to all groups
groupTabs.selectTab(groupTabs.getTabAt(0));
@@ -325,12 +303,9 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
mainActivity.filter = "initial";
=======
mainActivity.mFilter = "initial";
>>>>>>> cdd9472 (WIP Issue #14 (and #65))
activityController.pause();
activityController.resume();
@@ -339,9 +314,8 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
<<<<<<< HEAD
// Switch to Group one
groupTabs.selectTab(groupTabs.getTabAt(1));
@@ -352,7 +326,7 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
// Switch back to all groups
groupTabs.selectTab(groupTabs.getTabAt(0));
@@ -361,12 +335,9 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
mainActivity.filter = "second";
=======
mainActivity.mFilter = "second";
>>>>>>> cdd9472 (WIP Issue #14 (and #65))
activityController.pause();
activityController.resume();
@@ -375,20 +346,21 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
<<<<<<< HEAD
// Switch to Group one
groupTabs.selectTab(groupTabs.getTabAt(1));
activityController.pause();
activityController.resume();
shadowOf(getMainLooper()).idle();
assertEquals(View.GONE, helpText.getVisibility());
assertEquals(View.VISIBLE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(0, list.getCount());
assertEquals(0, list.getAdapter().getItemCount());
// Switch back to all groups
groupTabs.selectTab(groupTabs.getTabAt(0));
@@ -397,34 +369,34 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
mainActivity.filter = "company";
=======
mainActivity.mFilter = "company";
>>>>>>> cdd9472 (WIP Issue #14 (and #65))
activityController.pause();
activityController.resume();
shadowOf(getMainLooper()).idle();
assertEquals(View.GONE, helpText.getVisibility());
assertEquals(View.VISIBLE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(0, list.getCount());
assertEquals(0, list.getAdapter().getItemCount());
<<<<<<< HEAD
// Switch to Group one
groupTabs.selectTab(groupTabs.getTabAt(1));
activityController.pause();
activityController.resume();
shadowOf(getMainLooper()).idle();
assertEquals(View.GONE, helpText.getVisibility());
assertEquals(View.VISIBLE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(0, list.getCount());
assertEquals(0, list.getAdapter().getItemCount());
// Switch back to all groups
groupTabs.selectTab(groupTabs.getTabAt(0));
@@ -433,21 +405,20 @@ public class MainActivityTest
assertEquals(View.VISIBLE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(0, list.getCount());
assertEquals(0, list.getAdapter().getItemCount());
mainActivity.filter = "";
=======
mainActivity.mFilter = "";
>>>>>>> cdd9472 (WIP Issue #14 (and #65))
activityController.pause();
activityController.resume();
shadowOf(getMainLooper()).idle();
assertEquals(View.GONE, helpText.getVisibility());
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(2, list.getCount());
assertEquals(2, list.getAdapter().getItemCount());
// Switch to Group one
groupTabs.selectTab(groupTabs.getTabAt(1));
@@ -455,11 +426,13 @@ public class MainActivityTest
activityController.pause();
activityController.resume();
shadowOf(getMainLooper()).idle();
assertEquals(View.GONE, helpText.getVisibility());
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(1, list.getCount());
assertEquals(1, list.getAdapter().getItemCount());
// Switch back to all groups
groupTabs.selectTab(groupTabs.getTabAt(0));
@@ -468,7 +441,7 @@ public class MainActivityTest
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
assertEquals(2, list.getCount());
assertEquals(2, list.getAdapter().getItemCount());
db.close();
}

View File

@@ -0,0 +1,18 @@
package protect.card_locker;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
public class TestHelpers {
static public DBHelper getEmptyDb(Activity activity) {
DBHelper db = new DBHelper(activity);
// Make sure DB is empty
SQLiteDatabase database = db.getWritableDatabase();
database.execSQL("delete from " + DBHelper.LoyaltyCardDbIds.TABLE);
database.execSQL("delete from " + DBHelper.LoyaltyCardDbGroups.TABLE);
database.execSQL("delete from " + DBHelper.LoyaltyCardDbIdsGroups.TABLE);
database.close();
return db;
}
}

View File

@@ -1,6 +1,5 @@
package protect.card_locker;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;