From 49200fff48c109ffce3a52cc2b544e75d5ed2800 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Tue, 23 Nov 2021 23:23:58 +0100 Subject: [PATCH] Fix most spotBugs issues --- .../card_locker/BaseCursorAdapter.java | 2 +- .../card_locker/CatimaCaptureManager.java | 7 +- .../java/protect/card_locker/DBHelper.java | 8 +- .../card_locker/GroupCursorAdapter.java | 13 +- .../protect/card_locker/ImportURIHelper.java | 2 +- .../card_locker/LoyaltyCardCursorAdapter.java | 16 +- .../card_locker/LoyaltyCardEditActivity.java | 2 +- .../protect/card_locker/MainActivity.java | 59 ++---- .../card_locker/ManageGroupActivity.java | 2 +- .../card_locker/ManageGroupCursorAdapter.java | 4 - .../card_locker/preferences/Settings.java | 18 +- .../protect/card_locker/DatabaseTest.java | 191 +++++++++--------- 12 files changed, 139 insertions(+), 185 deletions(-) diff --git a/app/src/main/java/protect/card_locker/BaseCursorAdapter.java b/app/src/main/java/protect/card_locker/BaseCursorAdapter.java index 7c9d77899..1bd5160b7 100644 --- a/app/src/main/java/protect/card_locker/BaseCursorAdapter.java +++ b/app/src/main/java/protect/card_locker/BaseCursorAdapter.java @@ -5,7 +5,7 @@ import android.database.Cursor; import androidx.recyclerview.widget.RecyclerView; public abstract class BaseCursorAdapter extends RecyclerView.Adapter { - private Cursor mCursor; + protected Cursor mCursor; private boolean mDataValid; private int mRowIDColumn; diff --git a/app/src/main/java/protect/card_locker/CatimaCaptureManager.java b/app/src/main/java/protect/card_locker/CatimaCaptureManager.java index bff294749..7507d8090 100644 --- a/app/src/main/java/protect/card_locker/CatimaCaptureManager.java +++ b/app/src/main/java/protect/card_locker/CatimaCaptureManager.java @@ -1,24 +1,25 @@ package protect.card_locker; import android.app.Activity; +import android.content.Context; import android.widget.Toast; import com.journeyapps.barcodescanner.CaptureManager; import com.journeyapps.barcodescanner.DecoratedBarcodeView; public class CatimaCaptureManager extends CaptureManager { - private Activity activity; + private final Context mContext; public CatimaCaptureManager(Activity activity, DecoratedBarcodeView barcodeView) { super(activity, barcodeView); - this.activity = activity; + mContext = activity.getApplicationContext(); } @Override protected void displayFrameworkBugMessageAndExit(String message) { // We don't want to exit, as we also have a enter from card image and add manually button here // So we show a toast instead - Toast.makeText(activity, message, Toast.LENGTH_LONG).show(); + Toast.makeText(mContext, message, Toast.LENGTH_LONG).show(); } } diff --git a/app/src/main/java/protect/card_locker/DBHelper.java b/app/src/main/java/protect/card_locker/DBHelper.java index 6b9aa515d..a8fee8220 100644 --- a/app/src/main/java/protect/card_locker/DBHelper.java +++ b/app/src/main/java/protect/card_locker/DBHelper.java @@ -71,12 +71,8 @@ public class DBHelper extends SQLiteOpenHelper { Descending } - private Context mContext; - public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); - - mContext = context; } @Override @@ -583,7 +579,7 @@ public class DBHelper extends SQLiteOpenHelper { } } - public boolean deleteLoyaltyCard(final int id) { + public boolean deleteLoyaltyCard(Context context, final int id) { SQLiteDatabase db = getWritableDatabase(); // Delete card int rowsDeleted = db.delete(LoyaltyCardDbIds.TABLE, @@ -603,7 +599,7 @@ public class DBHelper extends SQLiteOpenHelper { // Also wipe card images associated with this card for (ImageLocationType imageLocationType : ImageLocationType.values()) { try { - Utils.saveCardImage(mContext, null, id, imageLocationType); + Utils.saveCardImage(context, null, id, imageLocationType); } catch (FileNotFoundException e) { e.printStackTrace(); } diff --git a/app/src/main/java/protect/card_locker/GroupCursorAdapter.java b/app/src/main/java/protect/card_locker/GroupCursorAdapter.java index 05cc1d9f6..306027b0e 100644 --- a/app/src/main/java/protect/card_locker/GroupCursorAdapter.java +++ b/app/src/main/java/protect/card_locker/GroupCursorAdapter.java @@ -14,7 +14,6 @@ import protect.card_locker.preferences.Settings; class GroupCursorAdapter extends BaseCursorAdapter { Settings mSettings; - private Cursor mCursor; private final Context mContext; private final GroupCursorAdapter.GroupAdapterListener mListener; DBHelper mDb; @@ -27,13 +26,7 @@ class GroupCursorAdapter extends BaseCursorAdapter { private int mCurrentSelectedIndex = -1; - private Cursor mCursor; Settings mSettings; boolean mDarkModeEnabled; private final Context mContext; @@ -44,20 +43,14 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter mMainRequestLauncher; private ActivityResultLauncher mBarcodeScannerLauncher; private ActionMode.Callback mCurrentActionModeCallback = new ActionMode.Callback() { @@ -143,7 +142,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard for (LoyaltyCard loyaltyCard : mAdapter.getSelectedItems()) { Log.e(TAG, "Deleting card: " + loyaltyCard.id); - db.deleteLoyaltyCard(loyaltyCard.id); + db.deleteLoyaltyCard(MainActivity.this, loyaltyCard.id); ShortcutHelper.removeShortcut(MainActivity.this, loyaltyCard.id); } @@ -267,16 +266,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } */ - mMainRequestLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { - // We're coming back from another view so clear the search - // We only do this now to prevent a flash of all entries right after picking one - mFilter = ""; - if (mMenu != null) { - MenuItem searchItem = mMenu.findItem(R.id.action_search); - searchItem.collapseActionView(); - } - }); - mBarcodeScannerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { Intent intent = result.getData(); BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, this); @@ -305,12 +294,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard mCurrentActionMode.finish(); } - if (mMenu != null) { - SearchView searchView = (SearchView) mMenu.findItem(R.id.action_search).getActionView(); - - if (!searchView.isIconified()) { - mFilter = searchView.getQuery().toString(); - } + if (mSearchView != null && !mSearchView.isIconified()) { + mFilter = mSearchView.getQuery().toString(); } // Start of active tab logic @@ -361,13 +346,9 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard @Override public void onBackPressed() { - if (mMenu != null) { - SearchView searchView = (SearchView) mMenu.findItem(R.id.action_search).getActionView(); - - if (!searchView.isIconified()) { - searchView.setIconified(true); - return; - } + if (!mSearchView.isIconified()) { + mSearchView.setIconified(true); + return; } super.onBackPressed(); @@ -444,22 +425,20 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard @Override public boolean onCreateOptionsMenu(Menu inputMenu) { - this.mMenu = inputMenu; - getMenuInflater().inflate(R.menu.main_menu, inputMenu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); if (searchManager != null) { - SearchView searchView = (SearchView) inputMenu.findItem(R.id.action_search).getActionView(); - searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); - searchView.setSubmitButtonEnabled(false); + mSearchView = (SearchView) inputMenu.findItem(R.id.action_search).getActionView(); + mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); + mSearchView.setSubmitButtonEnabled(false); - searchView.setOnCloseListener(() -> { + mSearchView.setOnCloseListener(() -> { invalidateOptionsMenu(); return false; }); - searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; @@ -543,25 +522,25 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard if (id == R.id.action_manage_groups) { Intent i = new Intent(getApplicationContext(), ManageGroupsActivity.class); - mMainRequestLauncher.launch(i); + startActivity(i); return true; } if (id == R.id.action_import_export) { Intent i = new Intent(getApplicationContext(), ImportExportActivity.class); - mMainRequestLauncher.launch(i); + startActivity(i); return true; } if (id == R.id.action_settings) { Intent i = new Intent(getApplicationContext(), SettingsActivity.class); - mMainRequestLauncher.launch(i); + startActivity(i); return true; } if (id == R.id.action_about) { Intent i = new Intent(getApplicationContext(), AboutActivity.class); - mMainRequestLauncher.launch(i); + startActivity(i); return true; } @@ -703,8 +682,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard if (mAdapter.getSelectedItemCount() > 0) { enableActionMode(inputPosition); } else { - Cursor selected = mAdapter.getCursor(); - selected.moveToPosition(inputPosition); // FIXME // // There is a really nasty edge case that can happen when someone taps a card but right @@ -715,7 +692,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard // click is being processed. Sadly, I have not yet found a way to make that possible. LoyaltyCard loyaltyCard; try { - loyaltyCard = LoyaltyCard.toLoyaltyCard(selected); + loyaltyCard = mAdapter.getCard(inputPosition); } catch (CursorIndexOutOfBoundsException e) { Log.w(TAG, "Prevented crash from tap + swipe on ID " + inputPosition + ": " + e); return; @@ -729,7 +706,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard ShortcutHelper.updateShortcuts(MainActivity.this, loyaltyCard); - mMainRequestLauncher.launch(i); + startActivity(i); } } } diff --git a/app/src/main/java/protect/card_locker/ManageGroupActivity.java b/app/src/main/java/protect/card_locker/ManageGroupActivity.java index 8e0df0883..19482bce0 100644 --- a/app/src/main/java/protect/card_locker/ManageGroupActivity.java +++ b/app/src/main/java/protect/card_locker/ManageGroupActivity.java @@ -165,7 +165,7 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana private void updateLoyaltyCardList() { mAdapter.swapCursor(mDB.getLoyaltyCardCursor()); - if (mAdapter.getCountFromCursor() == 0) { + if (mAdapter.getItemCount() == 0) { mCardList.setVisibility(View.GONE); mHelpText.setVisibility(View.VISIBLE); } else { diff --git a/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java b/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java index cef4fb8d1..bf37effb5 100644 --- a/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java +++ b/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java @@ -105,8 +105,4 @@ public class ManageGroupCursorAdapter extends LoyaltyCardCursorAdapter { public HashMap exportInGroupState() { return new HashMap<>(mInGroupOverlay); } - - public int getCountFromCursor() { - return super.getCursor().getCount(); - } } diff --git a/app/src/main/java/protect/card_locker/preferences/Settings.java b/app/src/main/java/protect/card_locker/preferences/Settings.java index 977271ffc..1583382be 100644 --- a/app/src/main/java/protect/card_locker/preferences/Settings.java +++ b/app/src/main/java/protect/card_locker/preferences/Settings.java @@ -13,32 +13,32 @@ import protect.card_locker.R; import protect.card_locker.Utils; public class Settings { - private Context context; - private SharedPreferences settings; + private final Context mContext; + private SharedPreferences mSettings; public Settings(Context context) { - this.context = context; - this.settings = PreferenceManager.getDefaultSharedPreferences(context); + mContext = context.getApplicationContext(); + mSettings = PreferenceManager.getDefaultSharedPreferences(context); } private String getResString(@StringRes int resId) { - return context.getString(resId); + return mContext.getString(resId); } private int getResInt(@IntegerRes int resId) { - return context.getResources().getInteger(resId); + return mContext.getResources().getInteger(resId); } private String getString(@StringRes int keyId, String defaultValue) { - return settings.getString(getResString(keyId), defaultValue); + return mSettings.getString(getResString(keyId), defaultValue); } private int getInt(@StringRes int keyId, @IntegerRes int defaultId) { - return settings.getInt(getResString(keyId), getResInt(defaultId)); + return mSettings.getInt(getResString(keyId), getResInt(defaultId)); } private boolean getBoolean(@StringRes int keyId, boolean defaultValue) { - return settings.getBoolean(getResString(keyId), defaultValue); + return mSettings.getBoolean(getResString(keyId), defaultValue); } public Locale getLocale() { diff --git a/app/src/test/java/protect/card_locker/DatabaseTest.java b/app/src/test/java/protect/card_locker/DatabaseTest.java index d75038d10..cb5271f55 100644 --- a/app/src/test/java/protect/card_locker/DatabaseTest.java +++ b/app/src/test/java/protect/card_locker/DatabaseTest.java @@ -29,25 +29,26 @@ import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) @Config(sdk = 23) public class DatabaseTest { - private DBHelper db; + private DBHelper mDb; + private Activity mActivity; private static final Integer DEFAULT_HEADER_COLOR = Color.BLACK; @Before public void setUp() { - Activity activity = Robolectric.setupActivity(MainActivity.class); - db = TestHelpers.getEmptyDb(activity); + mActivity = Robolectric.setupActivity(MainActivity.class); + mDb = TestHelpers.getEmptyDb(mActivity); } @Test public void addRemoveOneGiftCard() { - assertEquals(0, db.getLoyaltyCardCount()); - long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); + assertEquals(0, mDb.getLoyaltyCardCount()); + long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); - LoyaltyCard loyaltyCard = db.getLoyaltyCard(1); + LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1); assertNotNull(loyaltyCard); assertEquals("store", loyaltyCard.store); assertEquals("note", loyaltyCard.note); @@ -60,24 +61,24 @@ public class DatabaseTest { assertEquals(DEFAULT_HEADER_COLOR, loyaltyCard.headerColor); assertEquals(0, loyaltyCard.starStatus); - result = db.deleteLoyaltyCard(1); + result = mDb.deleteLoyaltyCard(mActivity, 1); assertTrue(result); - assertEquals(0, db.getLoyaltyCardCount()); - assertNull(db.getLoyaltyCard(1)); + assertEquals(0, mDb.getLoyaltyCardCount()); + assertNull(mDb.getLoyaltyCard(1)); } @Test public void updateGiftCard() { - long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); + long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); - result = db.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), "cardId1", null, CatimaBarcode.fromBarcode(BarcodeFormat.AZTEC), DEFAULT_HEADER_COLOR); + result = mDb.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), "cardId1", null, CatimaBarcode.fromBarcode(BarcodeFormat.AZTEC), DEFAULT_HEADER_COLOR); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); - LoyaltyCard loyaltyCard = db.getLoyaltyCard(1); + LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1); assertNotNull(loyaltyCard); assertEquals("store1", loyaltyCard.store); assertEquals("note1", loyaltyCard.note); @@ -93,16 +94,16 @@ public class DatabaseTest { @Test public void updateGiftCardOnlyStar() { - long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); + long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); - result = db.updateLoyaltyCardStarStatus(1, 1); + result = mDb.updateLoyaltyCardStarStatus(1, 1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); - LoyaltyCard loyaltyCard = db.getLoyaltyCard(1); + LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1); assertNotNull(loyaltyCard); assertEquals("store", loyaltyCard.store); assertEquals("note", loyaltyCard.note); @@ -118,22 +119,22 @@ public class DatabaseTest { @Test public void updateMissingGiftCard() { - assertEquals(0, db.getLoyaltyCardCount()); + assertEquals(0, mDb.getLoyaltyCardCount()); - boolean result = db.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("0"), null, "cardId1", + boolean result = mDb.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("0"), null, "cardId1", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR); assertEquals(false, result); - assertEquals(0, db.getLoyaltyCardCount()); + assertEquals(0, mDb.getLoyaltyCardCount()); } @Test public void emptyGiftCardValues() { - long id = db.insertLoyaltyCard("", "", null, new BigDecimal("0"), null, "", null, null, null, 0, null); + long id = mDb.insertLoyaltyCard("", "", null, new BigDecimal("0"), null, "", null, null, null, 0, null); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); - LoyaltyCard loyaltyCard = db.getLoyaltyCard(1); + LoyaltyCard loyaltyCard = mDb.getLoyaltyCard(1); assertNotNull(loyaltyCard); assertEquals("", loyaltyCard.store); assertEquals("", loyaltyCard.note); @@ -154,15 +155,15 @@ public class DatabaseTest { // Add the gift cards in reverse order, to ensure // that they are sorted for (int index = CARDS_TO_ADD - 1; index >= 0; index--) { - long id = db.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index, + long id = mDb.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index, null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), index, 0, null); boolean result = (id != -1); assertTrue(result); } - assertEquals(CARDS_TO_ADD, db.getLoyaltyCardCount()); + assertEquals(CARDS_TO_ADD, mDb.getLoyaltyCardCount()); - Cursor cursor = db.getLoyaltyCardCursor(); + Cursor cursor = mDb.getLoyaltyCardCursor(); assertNotNull(cursor); assertEquals(CARDS_TO_ADD, cursor.getCount()); @@ -198,19 +199,19 @@ public class DatabaseTest { // that they are sorted for (int index = CARDS_TO_ADD - 1; index >= 0; index--) { if (index == CARDS_TO_ADD - 1) { - id = db.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index, + id = mDb.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index, null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), index, 1, null); } else { - id = db.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index, + id = mDb.insertLoyaltyCard("store" + index, "note" + index, null, new BigDecimal("0"), null, "cardId" + index, null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), index, 0, null); } boolean result = (id != -1); assertTrue(result); } - assertEquals(CARDS_TO_ADD, db.getLoyaltyCardCount()); + assertEquals(CARDS_TO_ADD, mDb.getLoyaltyCardCount()); - Cursor cursor = db.getLoyaltyCardCursor(); + Cursor cursor = mDb.getLoyaltyCardCursor(); assertNotNull(cursor); assertEquals(CARDS_TO_ADD, cursor.getCount()); @@ -279,130 +280,130 @@ public class DatabaseTest { @Test public void addRemoveOneGroup() { - assertEquals(0, db.getGroupCount()); - long id = db.insertGroup("group one"); + assertEquals(0, mDb.getGroupCount()); + long id = mDb.insertGroup("group one"); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getGroupCount()); + assertEquals(1, mDb.getGroupCount()); - Group group = db.getGroup("group one"); + Group group = mDb.getGroup("group one"); assertNotNull(group); assertEquals("group one", group._id); - result = db.deleteGroup("group one"); + result = mDb.deleteGroup("group one"); assertTrue(result); - assertEquals(0, db.getGroupCount()); - assertNull(db.getGroup("group one")); + assertEquals(0, mDb.getGroupCount()); + assertNull(mDb.getGroup("group one")); } @Test public void updateGroup() { // Create card - assertEquals(0, db.getLoyaltyCardCount()); - long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); + assertEquals(0, mDb.getLoyaltyCardCount()); + long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); // Create group - long groupId = db.insertGroup("group one"); + long groupId = mDb.insertGroup("group one"); result = (groupId != -1); assertTrue(result); - assertEquals(1, db.getGroupCount()); + assertEquals(1, mDb.getGroupCount()); // Add card to group - Group group = db.getGroup("group one"); + Group group = mDb.getGroup("group one"); List groupList1 = new ArrayList<>(); groupList1.add(group); - db.setLoyaltyCardGroups(1, groupList1); + mDb.setLoyaltyCardGroups(1, groupList1); // Ensure the card has one group and the group has one card - List cardGroups = db.getLoyaltyCardGroups((int) id); + List cardGroups = mDb.getLoyaltyCardGroups((int) id); assertEquals(1, cardGroups.size()); assertEquals("group one", cardGroups.get(0)._id); - assertEquals(1, db.getGroupCardCount("group one")); + assertEquals(1, mDb.getGroupCardCount("group one")); // Rename group - result = db.updateGroup("group one", "group one renamed"); + result = mDb.updateGroup("group one", "group one renamed"); assertTrue(result); - assertEquals(1, db.getGroupCount()); + assertEquals(1, mDb.getGroupCount()); // Group one no longer exists - group = db.getGroup("group one"); + group = mDb.getGroup("group one"); assertNull(group); // But group one renamed does - Group group2 = db.getGroup("group one renamed"); + Group group2 = mDb.getGroup("group one renamed"); assertNotNull(group2); assertEquals("group one renamed", group2._id); // And card is in "group one renamed" // Ensure the card has one group and the group has one card - cardGroups = db.getLoyaltyCardGroups((int) id); + cardGroups = mDb.getLoyaltyCardGroups((int) id); assertEquals(1, cardGroups.size()); assertEquals("group one renamed", cardGroups.get(0)._id); - assertEquals(1, db.getGroupCardCount("group one renamed")); + assertEquals(1, mDb.getGroupCardCount("group one renamed")); } @Test public void updateMissingGroup() { - assertEquals(0, db.getGroupCount()); + assertEquals(0, mDb.getGroupCount()); - boolean result = db.updateGroup("group one", "new name"); + boolean result = mDb.updateGroup("group one", "new name"); assertEquals(false, result); - assertEquals(0, db.getGroupCount()); + assertEquals(0, mDb.getGroupCount()); } @Test public void emptyGroupValues() { - long id = db.insertGroup(""); + long id = mDb.insertGroup(""); boolean result = (id != -1); assertFalse(result); - assertEquals(0, db.getLoyaltyCardCount()); + assertEquals(0, mDb.getLoyaltyCardCount()); } @Test public void duplicateGroupName() { - assertEquals(0, db.getGroupCount()); - long id = db.insertGroup("group one"); + assertEquals(0, mDb.getGroupCount()); + long id = mDb.insertGroup("group one"); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getGroupCount()); + assertEquals(1, mDb.getGroupCount()); - Group group = db.getGroup("group one"); + Group group = mDb.getGroup("group one"); assertNotNull(group); assertEquals("group one", group._id); // Should fail on duplicate - long id2 = db.insertGroup("group one"); + long id2 = mDb.insertGroup("group one"); boolean result2 = (id2 != -1); assertFalse(result2); - assertEquals(1, db.getGroupCount()); + assertEquals(1, mDb.getGroupCount()); } @Test public void updateGroupDuplicate() { - long id = db.insertGroup("group one"); + long id = mDb.insertGroup("group one"); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getGroupCount()); + assertEquals(1, mDb.getGroupCount()); - long id2 = db.insertGroup("group two"); + long id2 = mDb.insertGroup("group two"); boolean result2 = (id2 != -1); assertTrue(result2); - assertEquals(2, db.getGroupCount()); + assertEquals(2, mDb.getGroupCount()); // Should fail when trying to rename group two to one - boolean result3 = db.updateGroup("group two", "group one"); + boolean result3 = mDb.updateGroup("group two", "group one"); assertFalse(result3); - assertEquals(2, db.getGroupCount()); + assertEquals(2, mDb.getGroupCount()); // Rename failed so both should still be the same - Group group = db.getGroup("group one"); + Group group = mDb.getGroup("group one"); assertNotNull(group); assertEquals("group one", group._id); - Group group2 = db.getGroup("group two"); + Group group2 = mDb.getGroup("group two"); assertNotNull(group2); assertEquals("group two", group2._id); } @@ -410,52 +411,52 @@ public class DatabaseTest { @Test public void cardAddAndRemoveGroups() { // Create card - assertEquals(0, db.getLoyaltyCardCount()); - long id = db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); + assertEquals(0, mDb.getLoyaltyCardCount()); + long id = mDb.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), DEFAULT_HEADER_COLOR, 0, null); boolean result = (id != -1); assertTrue(result); - assertEquals(1, db.getLoyaltyCardCount()); + assertEquals(1, mDb.getLoyaltyCardCount()); // Create two groups to only one card - assertEquals(0, db.getGroupCount()); - long gid = db.insertGroup("one"); + assertEquals(0, mDb.getGroupCount()); + long gid = mDb.insertGroup("one"); boolean gresult = (gid != -1); assertTrue(gresult); - long gid2 = db.insertGroup("two"); + long gid2 = mDb.insertGroup("two"); boolean gresult2 = (gid2 != -1); assertTrue(gresult2); - assertEquals(2, db.getGroupCount()); + assertEquals(2, mDb.getGroupCount()); - Group group1 = db.getGroup("one"); + Group group1 = mDb.getGroup("one"); // Card has no groups by default - List cardGroups = db.getLoyaltyCardGroups(1); + List cardGroups = mDb.getLoyaltyCardGroups(1); assertEquals(0, cardGroups.size()); // Add one groups to card List groupList1 = new ArrayList<>(); groupList1.add(group1); - db.setLoyaltyCardGroups(1, groupList1); + mDb.setLoyaltyCardGroups(1, groupList1); - List cardGroups1 = db.getLoyaltyCardGroups(1); + List cardGroups1 = mDb.getLoyaltyCardGroups(1); assertEquals(1, cardGroups1.size()); assertEquals(cardGroups1.get(0)._id, group1._id); - assertEquals(1, db.getGroupCardCount("one")); - assertEquals(0, db.getGroupCardCount("two")); + assertEquals(1, mDb.getGroupCardCount("one")); + assertEquals(0, mDb.getGroupCardCount("two")); // Remove groups - db.setLoyaltyCardGroups(1, new ArrayList()); - List cardGroups2 = db.getLoyaltyCardGroups(1); + mDb.setLoyaltyCardGroups(1, new ArrayList()); + List cardGroups2 = mDb.getLoyaltyCardGroups(1); assertEquals(0, cardGroups2.size()); - assertEquals(0, db.getGroupCardCount("one")); - assertEquals(0, db.getGroupCardCount("two")); + assertEquals(0, mDb.getGroupCardCount("one")); + assertEquals(0, mDb.getGroupCardCount("two")); } @Test public void databaseUpgradeFromVersion1() { - SQLiteDatabase database = db.getWritableDatabase(); + SQLiteDatabase database = mDb.getWritableDatabase(); // Setup the database as it appeared in revision 1 setupDatabaseVersion1(database); @@ -465,10 +466,10 @@ public class DatabaseTest { int newCardId2 = insertCardVersion1(database, "store", "cardId", ""); // Upgrade database - db.onUpgrade(database, DBHelper.ORIGINAL_DATABASE_VERSION, DBHelper.DATABASE_VERSION); + mDb.onUpgrade(database, DBHelper.ORIGINAL_DATABASE_VERSION, DBHelper.DATABASE_VERSION); // Determine that the entries are queryable and the fields are correct - LoyaltyCard card = db.getLoyaltyCard(newCardId); + LoyaltyCard card = mDb.getLoyaltyCard(newCardId); assertEquals("store", card.store); assertEquals("", card.note); assertEquals(null, card.expiry); @@ -483,7 +484,7 @@ public class DatabaseTest { assertEquals(100, card.zoomLevel); // Determine that the entries are queryable and the fields are correct - LoyaltyCard card2 = db.getLoyaltyCard(newCardId2); + LoyaltyCard card2 = mDb.getLoyaltyCard(newCardId2); assertEquals("store", card2.store); assertEquals("", card2.note); assertEquals(null, card2.expiry);