1.1 --- a/task3/solution11/test/org/apidesign/apifest08/test/Task2Test.java Tue Oct 07 11:05:34 2008 +0200
1.2 +++ b/task3/solution11/test/org/apidesign/apifest08/test/Task2Test.java Fri Oct 10 21:58:12 2008 +0200
1.3 @@ -49,49 +49,49 @@
1.4 * any other method being called previously. The API itself shall know
1.5 * nothing about any rates, before this method is called.
1.6 */
1.7 - public static Convertor<Integer, String> createTripleConvertor() {
1.8 + public static Convertor<Double, String> createTripleConvertor() {
1.9 // Rates: 1USD = 15CZK
1.10 // Rates: 1USD = 20SKK
1.11 // Rates: 75CZK = 100SKK
1.12 - Collection<ExchangeRateValue<Integer, String>> exchangeRates =
1.13 - new ArrayList<ExchangeRateValue<Integer, String>>();
1.14 + Collection<ExchangeRateValue<Double, String>> exchangeRates =
1.15 + new ArrayList<ExchangeRateValue<Double, String>>();
1.16 exchangeRates.add(ExchangeRateValue.getExchangeRate(
1.17 - CurrencyValue.getCurrencyValue(1, "USD"),
1.18 - CurrencyValue.getCurrencyValue(15, "CZK")));
1.19 + CurrencyValue.getCurrencyValue(1d, "USD"),
1.20 + CurrencyValue.getCurrencyValue(15d, "CZK")));
1.21 exchangeRates.add(ExchangeRateValue.getExchangeRate(
1.22 - CurrencyValue.getCurrencyValue(1, "USD"),
1.23 - CurrencyValue.getCurrencyValue(20, "SKK")));
1.24 + CurrencyValue.getCurrencyValue(1d, "USD"),
1.25 + CurrencyValue.getCurrencyValue(20d, "SKK")));
1.26 exchangeRates.add(ExchangeRateValue.getExchangeRate(
1.27 - CurrencyValue.getCurrencyValue(75, "CZK"),
1.28 - CurrencyValue.getCurrencyValue(100, "SKK")));
1.29 - return Convertor.getConvertorIntegerString(exchangeRates);
1.30 + CurrencyValue.getCurrencyValue(75d, "CZK"),
1.31 + CurrencyValue.getCurrencyValue(100d, "SKK")));
1.32 + return Convertor.getConvertorDoubleString(exchangeRates);
1.33 }
1.34
1.35 /** Define convertor that understands three currencies. Use it.
1.36 */
1.37 public void testConvertorForUSDandCZKandSKK() throws Exception {
1.38 - Convertor<Integer, String> c = createTripleConvertor();
1.39 + Convertor<Double, String> c = createTripleConvertor();
1.40
1.41 - CurrencyValue<Integer, String> result;
1.42 + CurrencyValue<Double, String> result;
1.43 // convert $5 to CZK using c:
1.44 // assertEquals("Result is 75 CZK");
1.45 - result = c.convert("CZK", CurrencyValue.getCurrencyValue(5, "USD"));
1.46 - assertEquals(CurrencyValue.getCurrencyValue(75, "CZK"), result);
1.47 + result = c.convert("CZK", CurrencyValue.getCurrencyValue(5d, "USD"));
1.48 + assertEquals(CurrencyValue.getCurrencyValue(75d, "CZK"), result);
1.49
1.50 // convert $5 to SKK using c:
1.51 // assertEquals("Result is 100 SKK");
1.52 - result = c.convert("SKK", CurrencyValue.getCurrencyValue(5, "USD"));
1.53 - assertEquals(CurrencyValue.getCurrencyValue(100, "SKK"), result);
1.54 + result = c.convert("SKK", CurrencyValue.getCurrencyValue(5d, "USD"));
1.55 + assertEquals(CurrencyValue.getCurrencyValue(100d, "SKK"), result);
1.56
1.57 // convert 200SKK to CZK using c:
1.58 // assertEquals("Result is 150 CZK");
1.59 - result = c.convert("CZK", CurrencyValue.getCurrencyValue(200, "SKK"));
1.60 - assertEquals(CurrencyValue.getCurrencyValue(150, "CZK"), result);
1.61 + result = c.convert("CZK", CurrencyValue.getCurrencyValue(200d, "SKK"));
1.62 + assertEquals(CurrencyValue.getCurrencyValue(150d, "CZK"), result);
1.63
1.64 // convert 200SKK to USK using c:
1.65 // assertEquals("Result is 10 USD");
1.66 - result = c.convert("USD", CurrencyValue.getCurrencyValue(200, "SKK"));
1.67 - assertEquals(CurrencyValue.getCurrencyValue(10, "USD"), result);
1.68 + result = c.convert("USD", CurrencyValue.getCurrencyValue(200d, "SKK"));
1.69 + assertEquals(CurrencyValue.getCurrencyValue(10d, "USD"), result);
1.70 }
1.71
1.72 /** Merge all currency rates of convertor 1 with convertor 2.
1.73 @@ -99,42 +99,42 @@
1.74 * into some API method which does the actual work, without requiring
1.75 * API clients to code anything complex.
1.76 */
1.77 - public static Convertor<Integer, String> merge(Convertor<Integer, String> one, Convertor<Integer, String> two) {
1.78 - return Convertor.mergeConvertorsIntegerString(one, two);
1.79 + public static Convertor<Double, String> merge(Convertor<Double, String> one, Convertor<Double, String> two) {
1.80 + return Convertor.mergeConvertorsDoubleString(one, two);
1.81 }
1.82
1.83 /** Join the convertors from previous task, Task1Test and show that it
1.84 * can be used to do reasonable conversions.
1.85 */
1.86 public void testConvertorComposition() throws Exception {
1.87 - Convertor<Integer, String> c = merge(
1.88 + Convertor<Double, String> c = merge(
1.89 Task1Test.createCZKtoUSD(),
1.90 Task1Test.createSKKtoCZK());
1.91
1.92 - CurrencyValue<Integer, String> result;
1.93 + CurrencyValue<Double, String> result;
1.94 // convert $5 to CZK using c:
1.95 // assertEquals("Result is 85 CZK");
1.96 - result = c.convert("CZK", CurrencyValue.getCurrencyValue(5, "USD"));
1.97 - assertEquals(CurrencyValue.getCurrencyValue(85, "CZK"), result);
1.98 + result = c.convert("CZK", CurrencyValue.getCurrencyValue(5d, "USD"));
1.99 + assertEquals(CurrencyValue.getCurrencyValue(85d, "CZK"), result);
1.100
1.101 // convert $8 to CZK using c:
1.102 // assertEquals("Result is 136 CZK");
1.103 - result = c.convert("CZK", CurrencyValue.getCurrencyValue(8, "USD"));
1.104 - assertEquals(CurrencyValue.getCurrencyValue(136, "CZK"), result);
1.105 + result = c.convert("CZK", CurrencyValue.getCurrencyValue(8d, "USD"));
1.106 + assertEquals(CurrencyValue.getCurrencyValue(136d, "CZK"), result);
1.107
1.108 // convert 1003CZK to USD using c:
1.109 // assertEquals("Result is 59 USD");
1.110 - result = c.convert("USD", CurrencyValue.getCurrencyValue(1003, "CZK"));
1.111 - assertEquals(CurrencyValue.getCurrencyValue(59, "USD"), result);
1.112 + result = c.convert("USD", CurrencyValue.getCurrencyValue(1003d, "CZK"));
1.113 + assertEquals(CurrencyValue.getCurrencyValue(59d, "USD"), result);
1.114
1.115 // convert 16CZK using c:
1.116 // assertEquals("Result is 20 SKK");
1.117 - result = c.convert("SKK", CurrencyValue.getCurrencyValue(16, "CZK"));
1.118 - assertEquals(CurrencyValue.getCurrencyValue(20, "SKK"), result);
1.119 + result = c.convert("SKK", CurrencyValue.getCurrencyValue(16d, "CZK"));
1.120 + assertEquals(CurrencyValue.getCurrencyValue(20d, "SKK"), result);
1.121
1.122 // convert 500SKK to CZK using c:
1.123 // assertEquals("Result is 400 CZK");
1.124 - result = c.convert("CZK", CurrencyValue.getCurrencyValue(500, "SKK"));
1.125 - assertEquals(CurrencyValue.getCurrencyValue(400, "CZK"), result);
1.126 + result = c.convert("CZK", CurrencyValue.getCurrencyValue(500d, "SKK"));
1.127 + assertEquals(CurrencyValue.getCurrencyValue(400d, "CZK"), result);
1.128 }
1.129 }