На Android как проверить правильность кода валюты? - PullRequest
0 голосов
/ 14 ноября 2011

В документации SDK Currency.getInstance (String currencyCode) должен вызвать исключение IllegalArgumentException, если currencyCode не является ISO 4217, но я попытался использовать это как средство проверки кода валюты в случае, если пользователь вводит валюту не вПредварительно заполненный Spinner.

Но в моих тестах исключение не срабатывает, оно возвращает мне экземпляр Currency со строкой, переданной как символ.

Есть ли способ проверить код валюты вAndroid?

String currency = mCustomCurrency.getText().toString().trim().toUpperCase();
try {
    Currency.getInstance(currency);
} catch (IllegalArgumentException e) {
    if (errMsg.length() > 0)
        errMsg.append("\n");
    errMsg.append(getString(R.string.bad_format_for_currency));
    res = false;
}

1 Ответ

1 голос
/ 14 ноября 2011

Я только что написал это, и он работает (не работает) нормально.

import java.util.Currency;

import junit.framework.TestCase;

public class CurrencyTest extends TestCase {

    public void test_ExpectExceptionWithInvalidCurrencyCode() {
        try {
            Currency curr = Currency.getInstance("BLABLABLA");
            fail("Expected IllegalArgumentException");
        } catch (IllegalArgumentException e) {
            System.out.println("Exception thrown, as expected.");
        }
    }

}

Итак, в вашем тесте, что вы делаете с res?

...