1.1 --- a/task2/solution10/test/org/apidesign/apifest08/test/Task1Test.java Tue Oct 07 01:18:23 2008 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,134 +0,0 @@
1.4 -package org.apidesign.apifest08.test;
1.5 -
1.6 -import junit.framework.*;
1.7 -import org.apidesign.apifest08.currency.*;
1.8 -
1.9 -import java.util.*;
1.10 -
1.11 -/** Finish the Convertor API, and then write bodies of methods inside
1.12 - * of this class to match the given tasks. To fullfil your task, use the
1.13 - * API define in the <code>org.apidesign.apifest08.currency</code> package.
1.14 - * Do not you reflection, or other hacks as your code
1.15 - * shall run without any runtime permissions.
1.16 - */
1.17 -public class Task1Test extends TestCase {
1.18 -
1.19 - private static final String
1.20 - USD = "USD",
1.21 - CZK = "CZK",
1.22 - SKK = "SKK";
1.23 -
1.24 - private static final Currency
1.25 - USD2 = Currency.getInstance(USD),
1.26 - CZK2 = Currency.getInstance(CZK),
1.27 - SKK2 = Currency.getInstance(SKK);
1.28 -
1.29 - public Task1Test(String testName) {
1.30 - super(testName);
1.31 - }
1.32 -
1.33 - @Override
1.34 - protected void setUp() throws Exception {
1.35 - }
1.36 -
1.37 - @Override
1.38 - protected void tearDown() throws Exception {
1.39 - }
1.40 -
1.41 - /** Create convertor that understands two currencies, CZK and
1.42 - * USD. Make 1 USD == 17 CZK.
1.43 - *
1.44 - * Creation of the convertor shall not require subclassing of any class
1.45 - * or interface on the client side.
1.46 - *
1.47 - * @return prepared convertor ready for converting USD to CZK and CZK to USD
1.48 - */
1.49 - public static CurrencyConverter createCZKtoUSD() {
1.50 - return OfflineConverterProvider.getInstance().getConverter(17, CZK, 1, USD);
1.51 - }
1.52 -
1.53 - public static CurrencyConverter createCZKtoUSD2() {
1.54 - return OfflineConverterProvider.getInstance().getConverter(CZK, USD);
1.55 - }
1.56 -
1.57 - /** Create convertor that understands two currencies, CZK and
1.58 - * SKK. Make 100 SKK == 80 CZK.
1.59 - *
1.60 - * Creation of the convertor shall not require subclassing of any class
1.61 - * or interface on the client side.
1.62 - *
1.63 - * @return prepared convertor ready for converting SKK to CZK and CZK to SKK
1.64 - */
1.65 - public static CurrencyConverter createSKKtoCZK() {
1.66 - return OfflineConverterProvider.getInstance().getConverter(100, SKK, 80, CZK);
1.67 - }
1.68 -
1.69 - public static CurrencyConverter createSKKtoCZK2() {
1.70 - return OfflineConverterProvider.getInstance().getConverter(SKK, CZK);
1.71 - }
1.72 -
1.73 - /** Use the convertor from <code>createCZKtoUSD</code> method and do few conversions
1.74 - * with it.
1.75 - */
1.76 - public void testCurrencyCZKUSD() throws Exception {
1.77 - CurrencyConverter c = createCZKtoUSD();
1.78 - testCZKUSD(c);
1.79 -
1.80 - // test without specifying rates
1.81 - c = createCZKtoUSD2();
1.82 - testCZKUSD(c);
1.83 - }
1.84 -
1.85 - private void testCZKUSD(CurrencyConverter c) {
1.86 - double czk, usd;
1.87 - // convert $5 to CZK using c:
1.88 - // assertEquals("Result is 85 CZK");
1.89 - czk = c.convert(5, USD, CZK);
1.90 - assertEquals(85.0, czk, 0.0);
1.91 - czk = c.convert(5, USD2, CZK2);
1.92 - assertEquals(85.0, czk, 0.0);
1.93 -
1.94 - // convert $8 to CZK
1.95 - // assertEquals("Result is 136 CZK");
1.96 - czk = c.convert(8, USD, CZK);
1.97 - assertEquals(136.0, czk, 0.0);
1.98 - czk = c.convert(8, USD2, CZK2);
1.99 - assertEquals(136.0, czk, 0.0);
1.100 -
1.101 - // convert 1003CZK to USD
1.102 - // assertEquals("Result is 59 USD");
1.103 - usd = c.convert(1003, CZK, USD);
1.104 - assertEquals(59.0, usd, 0.0);
1.105 - usd = c.convert(1003, CZK2, USD2);
1.106 - assertEquals(59.0, usd, 0.0);
1.107 - }
1.108 -
1.109 - /** Use the convertor from <code>createSKKtoCZK</code> method and do few conversions
1.110 - * with it.
1.111 - */
1.112 - public void testCurrencySKKCZK() throws Exception {
1.113 - CurrencyConverter c = createSKKtoCZK();
1.114 - testCZKSKK(c);
1.115 -
1.116 - // test without specifying rates
1.117 - c = createSKKtoCZK2();
1.118 - testCZKSKK(c);
1.119 - }
1.120 -
1.121 - private void testCZKSKK(CurrencyConverter c) {
1.122 - double czk, skk;
1.123 - // convert 16CZK using c:
1.124 - // assertEquals("Result is 20 SKK");
1.125 - skk = c.convert(16, CZK, SKK);
1.126 - assertEquals(20.0, skk, 0.0);
1.127 - skk = c.convert(16, CZK2, SKK2);
1.128 - assertEquals(20.0, skk, 0.0);
1.129 -
1.130 - // convert 500SKK to CZK
1.131 - // assertEquals("Result is 400 CZK");
1.132 - czk = c.convert(500, SKK, CZK);
1.133 - assertEquals(400.0, czk, 0.0);
1.134 - czk = c.convert(500, SKK2, CZK2);
1.135 - assertEquals(400.0, czk, 0.0);
1.136 - }
1.137 -}
1.138 \ No newline at end of file