diff --git a/app/src/main/java/protect/card_locker/CsvDatabaseImporter.java b/app/src/main/java/protect/card_locker/CsvDatabaseImporter.java
index a4105002c..5ba74393e 100644
--- a/app/src/main/java/protect/card_locker/CsvDatabaseImporter.java
+++ b/app/src/main/java/protect/card_locker/CsvDatabaseImporter.java
@@ -309,7 +309,7 @@ public class CsvDatabaseImporter implements DatabaseImporter
} catch (FormatException _e ) {
// These fields did not exist in versions 1.8.1 and before
// We catch this exception so we can still import old backups
- balance = new BigDecimal("0.0");
+ balance = new BigDecimal("0");
}
Currency balanceType = null;
diff --git a/app/src/main/java/protect/card_locker/DBHelper.java b/app/src/main/java/protect/card_locker/DBHelper.java
index d25de0cb3..10a631eca 100644
--- a/app/src/main/java/protect/card_locker/DBHelper.java
+++ b/app/src/main/java/protect/card_locker/DBHelper.java
@@ -70,7 +70,7 @@ public class DBHelper extends SQLiteOpenHelper
LoyaltyCardDbIds.STORE + " TEXT not null," +
LoyaltyCardDbIds.NOTE + " TEXT not null," +
LoyaltyCardDbIds.EXPIRY + " INTEGER," +
- LoyaltyCardDbIds.BALANCE + " TEXT not null DEFAULT '0.0'," +
+ LoyaltyCardDbIds.BALANCE + " TEXT not null DEFAULT '0'," +
LoyaltyCardDbIds.BALANCE_TYPE + " TEXT," +
LoyaltyCardDbIds.HEADER_COLOR + " INTEGER," +
LoyaltyCardDbIds.HEADER_TEXT_COLOR + " INTEGER," +
@@ -139,7 +139,7 @@ public class DBHelper extends SQLiteOpenHelper
if(oldVersion < 8 && newVersion >= 8)
{
db.execSQL("ALTER TABLE " + LoyaltyCardDbIds.TABLE
- + " ADD COLUMN " + LoyaltyCardDbIds.BALANCE + " TEXT not null DEFAULT '0.0'");
+ + " ADD COLUMN " + LoyaltyCardDbIds.BALANCE + " TEXT not null DEFAULT '0'");
db.execSQL("ALTER TABLE " + LoyaltyCardDbIds.TABLE
+ " ADD COLUMN " + LoyaltyCardDbIds.BALANCE_TYPE + " TEXT");
}
diff --git a/app/src/main/java/protect/card_locker/ImportURIHelper.java b/app/src/main/java/protect/card_locker/ImportURIHelper.java
index 776f44832..54add450f 100644
--- a/app/src/main/java/protect/card_locker/ImportURIHelper.java
+++ b/app/src/main/java/protect/card_locker/ImportURIHelper.java
@@ -47,7 +47,7 @@ public class ImportURIHelper {
try {
// These values are allowed to be null
Date expiry = null;
- BigDecimal balance = new BigDecimal("0.0");
+ BigDecimal balance = new BigDecimal("0");
Currency balanceType = null;
Integer headerColor = null;
Integer headerTextColor = null;
diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java b/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java
index 4f069c5ed..e20a03769 100644
--- a/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java
+++ b/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java
@@ -65,9 +65,9 @@ class LoyaltyCardCursorAdapter extends CursorAdapter
noteField.setVisibility(View.GONE);
}
- if(!loyaltyCard.balance.equals(new BigDecimal(0))) {
+ if(!loyaltyCard.balance.equals(new BigDecimal("0"))) {
balanceField.setVisibility(View.VISIBLE);
- balanceField.setText(context.getString(R.string.balanceSentence, Utils.formatBalance(loyaltyCard.balance, loyaltyCard.balanceType)));
+ balanceField.setText(context.getString(R.string.balanceSentence, Utils.formatBalance(context, loyaltyCard.balance, loyaltyCard.balanceType)));
}
else
{
diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java
index 2d5970b55..dd7e7606b 100644
--- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java
+++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java
@@ -479,7 +479,7 @@ public class LoyaltyCardEditActivity extends AppCompatActivity
setTitle(R.string.addCardTitle);
expiryField.setTag(null);
expiryField.setText(getString(R.string.never));
- balanceField.setTag(new BigDecimal("0.0"));
+ balanceField.setTag(new BigDecimal("0"));
balanceCurrencyField.setTag(null);
formatBalanceCurrencyField(null);
hideBarcode();
diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
index c1e7ae719..db505dbd0 100644
--- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
+++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
@@ -292,7 +292,7 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
if(!loyaltyCard.balance.equals(new BigDecimal(0))) {
balanceView.setVisibility(View.VISIBLE);
- balanceView.setText(getString(R.string.balanceSentence, Utils.formatBalance(loyaltyCard.balance, loyaltyCard.balanceType)));
+ balanceView.setText(getString(R.string.balanceSentence, Utils.formatBalance(this, loyaltyCard.balance, loyaltyCard.balanceType)));
}
else
{
diff --git a/app/src/main/java/protect/card_locker/Utils.java b/app/src/main/java/protect/card_locker/Utils.java
index 6013e4619..abbfb2edb 100644
--- a/app/src/main/java/protect/card_locker/Utils.java
+++ b/app/src/main/java/protect/card_locker/Utils.java
@@ -83,12 +83,12 @@ public class Utils {
return expiryDate.before(date.getTime());
}
- static public String formatBalance(BigDecimal value, Currency currency) {
+ static public String formatBalance(Context context, BigDecimal value, Currency currency) {
NumberFormat numberFormat = NumberFormat.getInstance();
if (currency == null) {
numberFormat.setMaximumFractionDigits(0);
- return numberFormat.format(value);
+ return context.getString(R.string.balancePoints, numberFormat.format(value));
}
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bc4c826b8..71260b998 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -135,6 +135,7 @@
Expires: %s
Expired: %s
Balance: %s
+ %s points
Card
Barcode
diff --git a/app/src/test/java/protect/card_locker/DatabaseTest.java b/app/src/test/java/protect/card_locker/DatabaseTest.java
index 7fa31444a..a1f6b11da 100644
--- a/app/src/test/java/protect/card_locker/DatabaseTest.java
+++ b/app/src/test/java/protect/card_locker/DatabaseTest.java
@@ -17,6 +17,7 @@ import org.robolectric.annotation.Config;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Currency;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -54,6 +55,8 @@ public class DatabaseTest
assertEquals("store", loyaltyCard.store);
assertEquals("note", loyaltyCard.note);
assertEquals(null, loyaltyCard.expiry);
+ assertEquals(new BigDecimal("0"), loyaltyCard.balance);
+ assertEquals(null, loyaltyCard.balanceType);
assertEquals("cardId", loyaltyCard.cardId);
assertEquals(0, loyaltyCard.starStatus);
assertEquals(BarcodeFormat.UPC_A.toString(), loyaltyCard.barcodeType);
@@ -72,7 +75,7 @@ public class DatabaseTest
assertTrue(result);
assertEquals(1, db.getLoyaltyCardCount());
- result = db.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("0"), null, "cardId1", BarcodeFormat.AZTEC.toString(), DEFAULT_HEADER_COLOR);
+ result = db.updateLoyaltyCard(1, "store1", "note1", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), "cardId1", BarcodeFormat.AZTEC.toString(), DEFAULT_HEADER_COLOR);
assertTrue(result);
assertEquals(1, db.getLoyaltyCardCount());
@@ -81,6 +84,8 @@ public class DatabaseTest
assertEquals("store1", loyaltyCard.store);
assertEquals("note1", loyaltyCard.note);
assertEquals(null, loyaltyCard.expiry);
+ assertEquals(new BigDecimal("10.00"), loyaltyCard.balance);
+ assertEquals(Currency.getInstance("EUR"), loyaltyCard.balanceType);
assertEquals("cardId1", loyaltyCard.cardId);
assertEquals(0, loyaltyCard.starStatus);
assertEquals(BarcodeFormat.AZTEC.toString(), loyaltyCard.barcodeType);
@@ -103,6 +108,8 @@ public class DatabaseTest
assertEquals("store", loyaltyCard.store);
assertEquals("note", loyaltyCard.note);
assertEquals(null, loyaltyCard.expiry);
+ assertEquals(new BigDecimal("0"), loyaltyCard.balance);
+ assertEquals(null, loyaltyCard.balanceType);
assertEquals("cardId", loyaltyCard.cardId);
assertEquals(1, loyaltyCard.starStatus);
assertEquals(BarcodeFormat.UPC_A.toString(), loyaltyCard.barcodeType);
@@ -132,6 +139,8 @@ public class DatabaseTest
assertEquals("", loyaltyCard.store);
assertEquals("", loyaltyCard.note);
assertEquals(null, loyaltyCard.expiry);
+ assertEquals(new BigDecimal("0"), loyaltyCard.balance);
+ assertEquals(null, loyaltyCard.balanceType);
assertEquals("", loyaltyCard.cardId);
assertEquals("", loyaltyCard.barcodeType);
}
@@ -165,6 +174,8 @@ public class DatabaseTest
assertEquals("store"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE)));
assertEquals("note"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE)));
assertEquals(0, cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.EXPIRY)));
+ assertEquals("0", cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE)));
+ assertEquals(null, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE)));
assertEquals("cardId"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID)));
assertEquals(BarcodeFormat.UPC_A.toString(), cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE)));
assertEquals(0, cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS)));
@@ -212,6 +223,8 @@ public class DatabaseTest
assertEquals("store"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE)));
assertEquals("note"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE)));
assertEquals(0, cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.EXPIRY)));
+ assertEquals("0", cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE)));
+ assertEquals(null, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE)));
assertEquals("cardId"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID)));
assertEquals(BarcodeFormat.UPC_A.toString(), cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE)));
assertEquals(1, cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS)));
@@ -223,7 +236,9 @@ public class DatabaseTest
{
assertEquals("store"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE)));
assertEquals("note"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE)));
- assertEquals("cardId"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID)));
+ assertEquals(null, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.EXPIRY)));
+ assertEquals("0", cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE)));
+ assertEquals(null, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE)));
assertEquals("cardId"+index, cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID)));
assertEquals(BarcodeFormat.UPC_A.toString(), cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE)));
assertEquals(0, cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS)));
@@ -466,6 +481,8 @@ public class DatabaseTest
LoyaltyCard card = db.getLoyaltyCard(newCardId);
assertEquals("store", card.store);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("cardId", card.cardId);
assertEquals(BarcodeFormat.UPC_A.toString(), card.barcodeType);
assertEquals("", card.note);
diff --git a/app/src/test/java/protect/card_locker/ImportExportTest.java b/app/src/test/java/protect/card_locker/ImportExportTest.java
index 831644377..2baf9ee73 100644
--- a/app/src/test/java/protect/card_locker/ImportExportTest.java
+++ b/app/src/test/java/protect/card_locker/ImportExportTest.java
@@ -105,7 +105,8 @@ public class ImportExportTest
assertEquals(cardsToAdd, db.getLoyaltyCardCount());
}
- private void addLoyaltyCardsWithExpiryNeverPastTodayFuture()
+ @Test
+ public void addLoyaltyCardsWithExpiryNeverPastTodayFuture()
{
long id = db.insertLoyaltyCard("No Expiry", "", null, new BigDecimal("0"), null, BARCODE_DATA, BARCODE_TYPE, 0, 0);
boolean result = (id != -1);
@@ -161,6 +162,8 @@ public class ImportExportTest
assertEquals(expectedStore, card.store);
assertEquals(expectedNote, card.note);
+ assertEquals(new BigDecimal(String.valueOf(index)), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(index), card.headerColor);
@@ -191,6 +194,8 @@ public class ImportExportTest
assertEquals(expectedStore, card.store);
assertEquals(expectedNote, card.note);
+ assertEquals(new BigDecimal(String.valueOf(index)), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(index), card.headerColor);
@@ -209,6 +214,8 @@ public class ImportExportTest
assertEquals(expectedStore, card.store);
assertEquals(expectedNote, card.note);
+ assertEquals(new BigDecimal(String.valueOf(index)), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(index), card.headerColor);
@@ -577,6 +584,8 @@ public class ImportExportTest
assertEquals("store", card.store);
assertEquals("note", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("12345", card.cardId);
assertEquals("type", card.barcodeType);
assertEquals(0, card.starStatus);
@@ -613,6 +622,8 @@ public class ImportExportTest
assertEquals("store", card.store);
assertEquals("note", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("12345", card.cardId);
assertEquals("type", card.barcodeType);
assertEquals(0, card.starStatus);
@@ -675,6 +686,8 @@ public class ImportExportTest
assertEquals("store", card.store);
assertEquals("note", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("12345", card.cardId);
assertEquals("", card.barcodeType);
assertEquals(0, card.starStatus);
@@ -711,6 +724,8 @@ public class ImportExportTest
assertEquals("store", card.store);
assertEquals("note", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("12345", card.cardId);
assertEquals("type", card.barcodeType);
assertEquals(1, card.starStatus);
@@ -747,6 +762,8 @@ public class ImportExportTest
assertEquals("store", card.store);
assertEquals("note", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("12345", card.cardId);
assertEquals("type", card.barcodeType);
assertEquals(0, card.starStatus);
@@ -803,6 +820,8 @@ public class ImportExportTest
assertEquals("store", card.store);
assertEquals("note", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals("12345", card.cardId);
assertEquals("type", card.barcodeType);
assertEquals(0, card.starStatus);
@@ -820,6 +839,8 @@ public class ImportExportTest
assertEquals("Never", card.store);
assertEquals("", card.note);
assertEquals(null, card.expiry);
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(0), card.headerColor);
@@ -830,6 +851,8 @@ public class ImportExportTest
assertEquals("Past", card.store);
assertEquals("", card.note);
assertTrue(card.expiry.before(new Date()));
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(0), card.headerColor);
@@ -841,6 +864,8 @@ public class ImportExportTest
assertEquals("", card.note);
assertTrue(card.expiry.before(new Date(new Date().getTime()+86400)));
assertTrue(card.expiry.after(new Date(new Date().getTime()-86400)));
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(0), card.headerColor);
@@ -851,6 +876,8 @@ public class ImportExportTest
assertEquals("Future", card.store);
assertEquals("", card.note);
assertTrue(card.expiry.after(new Date(new Date().getTime()+86400)));
+ assertEquals(new BigDecimal("0"), card.balance);
+ assertEquals(null, card.balanceType);
assertEquals(BARCODE_DATA, card.cardId);
assertEquals(BARCODE_TYPE, card.barcodeType);
assertEquals(Integer.valueOf(0), card.headerColor);
diff --git a/app/src/test/java/protect/card_locker/ImportURITest.java b/app/src/test/java/protect/card_locker/ImportURITest.java
index 56b8153e8..2b29c47cb 100644
--- a/app/src/test/java/protect/card_locker/ImportURITest.java
+++ b/app/src/test/java/protect/card_locker/ImportURITest.java
@@ -12,6 +12,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.io.InvalidObjectException;
import java.math.BigDecimal;
+import java.util.Currency;
import java.util.Date;
import static org.junit.Assert.assertEquals;
@@ -39,7 +40,7 @@ public class ImportURITest {
// Generate card
Date date = new Date();
- db.insertLoyaltyCard("store", "note", date, new BigDecimal("0"), null, BarcodeFormat.UPC_A.toString(), LoyaltyCardDbIds.BARCODE_TYPE, Color.BLACK, 1);
+ db.insertLoyaltyCard("store", "note", date, new BigDecimal("100"), null, BarcodeFormat.UPC_A.toString(), LoyaltyCardDbIds.BARCODE_TYPE, Color.BLACK, 1);
// Get card
LoyaltyCard card = db.getLoyaltyCard(1);
@@ -56,6 +57,8 @@ public class ImportURITest {
assertEquals(card.headerColor, parsedCard.headerColor);
assertEquals(card.note, parsedCard.note);
assertEquals(card.expiry, parsedCard.expiry);
+ assertEquals(card.balance, parsedCard.balance);
+ assertEquals(card.balanceType, parsedCard.balanceType);
assertEquals(card.store, parsedCard.store);
// No export of starStatus for single cards foreseen therefore 0 will be imported
assertEquals(0, parsedCard.starStatus);
@@ -65,7 +68,7 @@ public class ImportURITest {
public void ensureNoCrashOnMissingHeaderFields() throws InvalidObjectException
{
// Generate card
- db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BarcodeFormat.UPC_A.toString(), LoyaltyCardDbIds.BARCODE_TYPE, null, 0);
+ db.insertLoyaltyCard("store", "note", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), BarcodeFormat.UPC_A.toString(), LoyaltyCardDbIds.BARCODE_TYPE, null, 0);
// Get card
LoyaltyCard card = db.getLoyaltyCard(1);
@@ -81,6 +84,8 @@ public class ImportURITest {
assertEquals(card.cardId, parsedCard.cardId);
assertEquals(card.note, parsedCard.note);
assertEquals(card.expiry, parsedCard.expiry);
+ assertEquals(card.balance, parsedCard.balance);
+ assertEquals(card.balanceType, parsedCard.balanceType);
assertEquals(card.store, parsedCard.store);
assertNull(parsedCard.headerColor);
assertNull(parsedCard.headerTextColor);
@@ -126,5 +131,8 @@ public class ImportURITest {
assertEquals("store", parsedCard.store);
assertEquals(Integer.valueOf(-416706), parsedCard.headerColor);
assertEquals(0, parsedCard.starStatus);
+ assertEquals(null, parsedCard.expiry);
+ assertEquals(new BigDecimal("0"), parsedCard.balance);
+ assertEquals(null, parsedCard.balanceType);
}
}
diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java
index 65d65e6fa..6132d1308 100644
--- a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java
+++ b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java
@@ -23,6 +23,7 @@ import org.robolectric.annotation.Config;
import java.math.BigDecimal;
import java.text.DateFormat;
+import java.util.Currency;
import java.util.Date;
import static org.junit.Assert.assertEquals;
@@ -61,11 +62,12 @@ public class LoyaltyCardCursorAdapterTest
return view;
}
- private void checkView(final View view, final String store, final String note, final String expiry, boolean checkFontSizes)
+ private void checkView(final View view, final String store, final String note, final String expiry, final String balance, boolean checkFontSizes)
{
final TextView storeField = view.findViewById(R.id.store);
final TextView noteField = view.findViewById(R.id.note);
final TextView expiryField = view.findViewById(R.id.expiry);
+ final TextView balanceField = view.findViewById(R.id.balance);
if(checkFontSizes)
{
@@ -78,7 +80,7 @@ public class LoyaltyCardCursorAdapterTest
}
assertEquals(store, storeField.getText().toString());
- if(note.isEmpty() == false)
+ if(!note.isEmpty())
{
assertEquals(View.VISIBLE, noteField.getVisibility());
assertEquals(note, noteField.getText().toString());
@@ -88,7 +90,7 @@ public class LoyaltyCardCursorAdapterTest
assertEquals(View.GONE, noteField.getVisibility());
}
- if(expiry.isEmpty() == false)
+ if(!expiry.isEmpty())
{
assertEquals(View.VISIBLE, expiryField.getVisibility());
assertEquals(expiry, expiryField.getText().toString());
@@ -97,6 +99,16 @@ public class LoyaltyCardCursorAdapterTest
{
assertEquals(View.GONE, expiryField.getVisibility());
}
+
+ if(!balance.isEmpty())
+ {
+ assertEquals(View.VISIBLE, balanceField.getVisibility());
+ assertEquals(balance, balanceField.getText().toString());
+ }
+ else
+ {
+ assertEquals(View.GONE, balanceField.getVisibility());
+ }
}
@@ -111,7 +123,7 @@ public class LoyaltyCardCursorAdapterTest
View view = createView(cursor);
- checkView(view, card.store, card.note, "", false);
+ checkView(view, card.store, card.note, "", "",false);
cursor.close();
}
@@ -127,7 +139,7 @@ public class LoyaltyCardCursorAdapterTest
View view = createView(cursor);
- checkView(view, card.store, card.note, "", false);
+ checkView(view, card.store, card.note, "", "",false);
cursor.close();
}
@@ -148,11 +160,11 @@ public class LoyaltyCardCursorAdapterTest
setFontSizes(1, 2);
View view = createView(cursor);
- checkView(view, card.store, card.note, dateString, true);
+ checkView(view, card.store, card.note, dateString, "", true);
setFontSizes(30, 31);
view = createView(cursor);
- checkView(view, card.store, card.note, dateString, true);
+ checkView(view, card.store, card.note, dateString, "",true);
cursor.close();
}
@@ -182,4 +194,68 @@ public class LoyaltyCardCursorAdapterTest
cursor.close();
}
+
+ @Test
+ public void TestCursorAdapter0Points()
+ {
+ db.insertLoyaltyCard("store", "", null, new BigDecimal("0"), null, "cardId", BarcodeFormat.UPC_A.toString(), Color.BLACK, 0);
+ LoyaltyCard card = db.getLoyaltyCard(1);
+
+ Cursor cursor = db.getLoyaltyCardCursor();
+ cursor.moveToFirst();
+
+ View view = createView(cursor);
+
+ checkView(view, card.store, card.note, "", "",false);
+
+ cursor.close();
+ }
+
+ @Test
+ public void TestCursorAdapter0EUR()
+ {
+ db.insertLoyaltyCard("store", "", null, new BigDecimal("0"), Currency.getInstance("EUR"), "cardId", BarcodeFormat.UPC_A.toString(), Color.BLACK, 0);
+ LoyaltyCard card = db.getLoyaltyCard(1);
+
+ Cursor cursor = db.getLoyaltyCardCursor();
+ cursor.moveToFirst();
+
+ View view = createView(cursor);
+
+ checkView(view, card.store, card.note, "", "",false);
+
+ cursor.close();
+ }
+
+ @Test
+ public void TestCursorAdapter100Points()
+ {
+ db.insertLoyaltyCard("store", "note", null, new BigDecimal("100"), null, "cardId", BarcodeFormat.UPC_A.toString(), Color.BLACK, 0);
+ LoyaltyCard card = db.getLoyaltyCard(1);
+
+ Cursor cursor = db.getLoyaltyCardCursor();
+ cursor.moveToFirst();
+
+ View view = createView(cursor);
+
+ checkView(view, card.store, card.note, "", "Balance: 100 points",false);
+
+ cursor.close();
+ }
+
+ @Test
+ public void TestCursorAdapter10Eur()
+ {
+ db.insertLoyaltyCard("store", "note", null, new BigDecimal("10.00"), Currency.getInstance("EUR"), "cardId", BarcodeFormat.UPC_A.toString(), Color.BLACK, 0);
+ LoyaltyCard card = db.getLoyaltyCard(1);
+
+ Cursor cursor = db.getLoyaltyCardCursor();
+ cursor.moveToFirst();
+
+ View view = createView(cursor);
+
+ checkView(view, card.store, card.note, "", "Balance: €10.00",false);
+
+ cursor.close();
+ }
}
diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java
index 6c0430c93..6a2b7f4b5 100644
--- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java
+++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java
@@ -41,6 +41,7 @@ import com.google.zxing.client.android.Intents;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.DateFormat;
+import java.util.Currency;
import java.util.Date;
import org.junit.Before;
import org.junit.Test;
@@ -109,6 +110,8 @@ public class LoyaltyCardViewActivityTest
private void saveLoyaltyCardWithArguments(final Activity activity,
final String store, final String note,
final Date expiry,
+ final BigDecimal balance,
+ final Currency balanceType,
final String cardId,
final String barcodeType,
boolean creatingNewCard)
@@ -126,12 +129,20 @@ public class LoyaltyCardViewActivityTest
final EditText storeField = activity.findViewById(R.id.storeNameEdit);
final EditText noteField = activity.findViewById(R.id.noteEdit);
final TextInputLayout expiryView = activity.findViewById(R.id.expiryView);
+ final EditText balanceView = activity.findViewById(R.id.balanceField);
+ final EditText balanceCurrencyField = activity.findViewById(R.id.balanceCurrencyField);
final TextView cardIdField = activity.findViewById(R.id.cardIdView);
final TextView barcodeTypeField = activity.findViewById(R.id.barcodeTypeField);
storeField.setText(store);
noteField.setText(note);
expiryView.setTag(expiry);
+ if (balance != null) {
+ balanceView.setText(balance.toPlainString());
+ }
+ if (balanceType != null) {
+ balanceCurrencyField.setText(balanceType.getSymbol());
+ }
cardIdField.setText(cardId);
barcodeTypeField.setText(barcodeType);
@@ -144,6 +155,13 @@ public class LoyaltyCardViewActivityTest
LoyaltyCard card = db.getLoyaltyCard(1);
assertEquals(store, card.store);
assertEquals(note, card.note);
+ assertEquals(expiry, card.expiry);
+ if (balance != null) {
+ assertEquals(balance, card.balance);
+ } else {
+ assertEquals(new BigDecimal("0"), card.balance);
+ }
+ assertEquals(balanceType, card.balanceType);
assertEquals(cardId, card.cardId);
// The special "No barcode" string shouldn't actually be written to the loyalty card
@@ -254,7 +272,9 @@ public class LoyaltyCardViewActivityTest
}
private void checkAllFields(final Activity activity, ViewMode mode,
- final String store, final String note, final String expiryString, final String cardId, final String barcodeType)
+ final String store, final String note, final String expiryString,
+ final String balanceString, final String balanceTypeString,
+ final String cardId, final String barcodeType)
{
if(mode == ViewMode.VIEW_CARD)
{
@@ -267,6 +287,8 @@ public class LoyaltyCardViewActivityTest
checkFieldProperties(activity, R.id.storeNameEdit, editVisibility, store);
checkFieldProperties(activity, R.id.noteEdit, editVisibility, note);
checkFieldProperties(activity, R.id.expiryView, editVisibility, expiryString);
+ checkFieldProperties(activity, R.id.balanceField, editVisibility, balanceString);
+ checkFieldProperties(activity, R.id.balanceCurrencyField, editVisibility, balanceTypeString);
checkFieldProperties(activity, R.id.cardIdView, View.VISIBLE, cardId);
checkFieldProperties(activity, R.id.barcodeTypeField, View.VISIBLE, barcodeType);
checkFieldProperties(activity, R.id.barcode, View.VISIBLE, null);
@@ -284,7 +306,7 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never) , "", "");
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never) , "0", context.getString(R.string.points), "", "");
}
@Test
@@ -302,7 +324,6 @@ public class LoyaltyCardViewActivityTest
final EditText storeField = activity.findViewById(R.id.storeNameEdit);
final EditText noteField = activity.findViewById(R.id.noteEdit);
- final TextView cardIdField = activity.findViewById(R.id.cardIdView);
activity.findViewById(R.id.fabSave).performClick();
assertEquals(0, db.getLoyaltyCardCount());
@@ -346,15 +367,17 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "", "");
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", "");
// Complete barcode capture successfully
captureBarcodeWithResult(activity, true);
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
+
+ shadowOf(getMainLooper()).idle();
// Save and check the loyalty card
- saveLoyaltyCardWithArguments(activity, "store", "note", null, BARCODE_DATA, BARCODE_TYPE, true);
+ saveLoyaltyCardWithArguments(activity, "store", "note", null, null, null, BARCODE_DATA, BARCODE_TYPE, true);
}
@Test
@@ -368,12 +391,12 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "", "");
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", "");
// Complete barcode capture in failure
captureBarcodeWithResult(activity, false);
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "", "");
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", "");
}
@Test
@@ -387,12 +410,12 @@ public class LoyaltyCardViewActivityTest
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "", "");
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), "", "");
// Complete barcode capture successfully
captureBarcodeWithResult(activity, true);
- checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.ADD_CARD, "", "", context.getString(R.string.never), "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
// Cancel the loyalty card creation
assertEquals(false, activity.isFinishing());
@@ -439,6 +462,7 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
+ final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, BARCODE_TYPE, Color.BLACK, 0);
@@ -447,7 +471,7 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
db.close();
}
@@ -457,6 +481,7 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
+ final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, BARCODE_TYPE, Color.BLACK, 0);
@@ -465,7 +490,7 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
- checkAllFields(activity, ViewMode.VIEW_CARD, "store", "note", null, BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.VIEW_CARD, "store", "note", null, "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
db.close();
}
@@ -475,6 +500,7 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
+ final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -483,12 +509,12 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
// Complete barcode capture successfully
captureBarcodeWithResult(activity, true);
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
db.close();
}
@@ -498,6 +524,7 @@ public class LoyaltyCardViewActivityTest
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
+ final Context context = ApplicationProvider.getApplicationContext();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, EAN_BARCODE_TYPE, Color.BLACK, 0);
@@ -506,12 +533,12 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
// Complete barcode capture successfully
captureBarcodeWithResult(activity, true);
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", null, "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
// Cancel the loyalty card creation
assertEquals(false, activity.isFinishing());
@@ -544,7 +571,7 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
// Set date to today
MaterialAutoCompleteTextView expiryField = activity.findViewById(R.id.expiryField);
@@ -558,7 +585,7 @@ public class LoyaltyCardViewActivityTest
shadowOf(getMainLooper()).idle();
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", DateFormat.getDateInstance(DateFormat.LONG).format(new Date()), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", DateFormat.getDateInstance(DateFormat.LONG).format(new Date()), "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
db.close();
}
@@ -577,13 +604,105 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", DateFormat.getDateInstance(DateFormat.LONG).format(new Date()), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", DateFormat.getDateInstance(DateFormat.LONG).format(new Date()), "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
// Set date to never
MaterialAutoCompleteTextView expiryField = activity.findViewById(R.id.expiryField);
expiryField.setText(expiryField.getAdapter().getItem(0).toString(), false);
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+
+ db.close();
+ }
+
+ @Test
+ public void startWithLoyaltyCardNoBalanceSetBalance() throws IOException
+ {
+ ActivityController activityController = createActivityWithLoyaltyCard(true);
+ Activity activity = (Activity)activityController.get();
+ final Context context = ApplicationProvider.getApplicationContext();
+ DBHelper db = new DBHelper(activity);
+
+ db.insertLoyaltyCard("store", "note", null, new BigDecimal("0"), null, EAN_BARCODE_DATA, EAN_BARCODE_TYPE, Color.BLACK, 0);
+
+ activityController.start();
+ activityController.visible();
+ activityController.resume();
+
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), "0", context.getString(R.string.points), EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+
+ // Set balance to 10 points
+ EditText balanceField = activity.findViewById(R.id.balanceField);
+ balanceField.setText("10");
+
+ shadowOf(getMainLooper()).idle();
+
+ // Change points to EUR
+ MaterialAutoCompleteTextView balanceTypeField = activity.findViewById(R.id.balanceCurrencyField);
+ balanceTypeField.setText("€", false);
+
+ shadowOf(getMainLooper()).idle();
+
+ // Ensure the balance is reformatted for EUR when focus is cleared
+ shadowOf(getMainLooper()).idle();
+ balanceField.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ assertEquals("10.00", balanceField.getText().toString());
+
+ shadowOf(getMainLooper()).idle();
+
+ DatePickerDialog datePickerDialog = (DatePickerDialog) (ShadowDialog.getLatestDialog());
+ assertNotNull(datePickerDialog);
+ datePickerDialog.getButton(DatePickerDialog.BUTTON_POSITIVE).performClick();
+
+ shadowOf(getMainLooper()).idle();
+
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", DateFormat.getDateInstance(DateFormat.LONG).format(new Date()), "10.00", "€", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+
+ db.close();
+ }
+ });
+ balanceField.clearFocus();
+ }
+
+ @Test
+ public void startWithLoyaltyCardBalanceSetNoBalance() throws IOException
+ {
+ ActivityController activityController = createActivityWithLoyaltyCard(true);
+ Activity activity = (Activity)activityController.get();
+ final Context context = ApplicationProvider.getApplicationContext();
+ DBHelper db = new DBHelper(activity);
+
+ db.insertLoyaltyCard("store", "note", new Date(), new BigDecimal("10.00"), Currency.getInstance("EUR"), EAN_BARCODE_DATA, EAN_BARCODE_TYPE, Color.BLACK, 0);
+
+ activityController.start();
+ activityController.visible();
+ activityController.resume();
+
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", DateFormat.getDateInstance(DateFormat.LONG).format(new Date()), "10.00", "€", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
+
+ shadowOf(getMainLooper()).idle();
+
+ // Change EUR to WON
+ MaterialAutoCompleteTextView balanceTypeField = activity.findViewById(R.id.balanceCurrencyField);
+ balanceTypeField.setText("₩", false);
+
+ shadowOf(getMainLooper()).idle();
+
+ // Ensure the balance is reformatted for WON when focus is cleared
+ EditText balanceField = activity.findViewById(R.id.balanceField);
+ balanceField.clearFocus();
+ assertEquals("10", balanceField.getText().toString());
+
+ shadowOf(getMainLooper()).idle();
+
+ // Set the balance to 0
+ balanceField.setText("0");
+
+ shadowOf(getMainLooper()).idle();
+
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), "0", "₩", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
db.close();
}
@@ -690,7 +809,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
// Save and check the loyalty card
- saveLoyaltyCardWithArguments(activity, "store", "note", null, BARCODE_DATA, BARCODE_TYPE, false);
+ saveLoyaltyCardWithArguments(activity, "store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, BARCODE_TYPE, false);
db.close();
}
@@ -709,7 +828,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
// Save and check the loyalty card
- saveLoyaltyCardWithArguments(activity, "store", "note", null, BARCODE_DATA, activity.getApplicationContext().getString(R.string.noBarcode), false);
+ saveLoyaltyCardWithArguments(activity, "store", "note", null, new BigDecimal("0"), null, BARCODE_DATA, activity.getApplicationContext().getString(R.string.noBarcode), false);
db.close();
}
@@ -729,17 +848,17 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
// First check if the card is as expected
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), BARCODE_DATA, BARCODE_TYPE);
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), "0", context.getString(R.string.points), BARCODE_DATA, BARCODE_TYPE);
// Complete empty barcode selection successfully
selectBarcodeWithResult(activity, BARCODE_DATA, "", true);
// Check if the barcode type is NO_BARCODE as expected
- checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), BARCODE_DATA, activity.getApplicationContext().getString(R.string.noBarcode));
+ checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.never), "0", context.getString(R.string.points), BARCODE_DATA, activity.getApplicationContext().getString(R.string.noBarcode));
assertEquals(View.GONE, activity.findViewById(R.id.barcodeLayout).getVisibility());
// Check if the special NO_BARCODE string doesn't get saved
- saveLoyaltyCardWithArguments(activity, "store", "note", null, BARCODE_DATA, activity.getApplicationContext().getString(R.string.noBarcode), false);
+ saveLoyaltyCardWithArguments(activity, "store", "note", null, null, null, BARCODE_DATA, activity.getApplicationContext().getString(R.string.noBarcode), false);
db.close();
}
@@ -961,7 +1080,7 @@ public class LoyaltyCardViewActivityTest
{
Date date = new Date();
- Uri importUri = Uri.parse("https://thelastproject.github.io/Catima/share?store=Example%20Store¬e=&expiry=" + date.getTime() + "&cardid=123456&barcodetype=AZTEC&headercolor=-416706&headertextcolor=-1");
+ Uri importUri = Uri.parse("https://thelastproject.github.io/Catima/share?store=Example%20Store¬e=&expiry=" + date.getTime() + "&balance=10&balanceType=EUR&cardid=123456&barcodetype=AZTEC&headercolor=-416706&headertextcolor=-1");
Intent intent = new Intent();
intent.setData(importUri);
@@ -975,7 +1094,9 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
- checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", DateFormat.getDateInstance(DateFormat.LONG).format(date), "123456", "AZTEC");
+ shadowOf(getMainLooper()).idle();
+
+ checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", DateFormat.getDateInstance(DateFormat.LONG).format(date), "10.00", "€", "123456", "AZTEC");
assertEquals(-416706, ((ColorDrawable) activity.findViewById(R.id.thumbnail).getBackground()).getColor());
}
@@ -996,7 +1117,7 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
final Context context = ApplicationProvider.getApplicationContext();
- checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", context.getString(R.string.never), "123456", "AZTEC");
+ checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", context.getString(R.string.never), "0", context.getString(R.string.points), "123456", "AZTEC");
assertEquals(-416706, ((ColorDrawable) activity.findViewById(R.id.thumbnail).getBackground()).getColor());
}
}