Files
Android/app/src/test/java/protect/card_locker/TestHelpers.java
Sylvia van Os a5599dc673 Remove automatic barcode encoding type
Migrates all automatic cards to ISO-8859-1 and uses that as default
2026-01-13 19:47:29 +01:00

79 lines
2.9 KiB
Java

package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.google.zxing.BarcodeFormat;
import java.io.FileNotFoundException;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
public class TestHelpers {
private static final String BARCODE_DATA = "428311627547";
private static final CatimaBarcode BARCODE_TYPE = CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A);
public static DBHelper getEmptyDb(Context context) {
DBHelper db = new DBHelper(context);
SQLiteDatabase database = db.getWritableDatabase();
// Make sure no files remain
Cursor cursor = DBHelper.getLoyaltyCardCursor(database);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
int cardID = cursor.getColumnIndex(DBHelper.LoyaltyCardDbIds.ID);
for (ImageLocationType imageLocationType : ImageLocationType.values()) {
try {
Utils.saveCardImage(context.getApplicationContext(), null, cardID, imageLocationType);
} catch (FileNotFoundException ignored) {
}
}
cursor.moveToNext();
}
// Make sure DB is empty
database.execSQL("delete from " + DBHelper.LoyaltyCardDbIds.TABLE);
database.execSQL("delete from " + DBHelper.LoyaltyCardDbGroups.TABLE);
database.execSQL("delete from " + DBHelper.LoyaltyCardDbIdsGroups.TABLE);
return db;
}
/**
* Add the given number of cards, each with an index in the store name.
*
* @param mDatabase
* @param cardsToAdd
*/
public static void addLoyaltyCards(final SQLiteDatabase mDatabase, final int cardsToAdd) {
// Add in reverse order to test sorting
for (int index = cardsToAdd; index > 0; index--) {
String storeName = String.format("store, \"%4d", index);
String note = String.format("note, \"%4d", index);
long id = DBHelper.insertLoyaltyCard(mDatabase, storeName, note, null, null, new BigDecimal(String.valueOf(index)), null, BARCODE_DATA, null, BARCODE_TYPE, StandardCharsets.ISO_8859_1, index, 0, null,0);
boolean result = (id != -1);
assertTrue(result);
}
assertEquals(cardsToAdd, DBHelper.getLoyaltyCardCount(mDatabase));
}
public static void addGroups(final SQLiteDatabase mDatabase, int groupsToAdd) {
// Add in reverse order to test sorting
for (int index = groupsToAdd; index > 0; index--) {
String groupName = String.format("group, \"%4d", index);
long id = DBHelper.insertGroup(mDatabase, groupName);
boolean result = (id != -1);
assertTrue(result);
}
assertEquals(groupsToAdd, DBHelper.getGroupCount(mDatabase));
}
}