jaroslav@63
|
1 |
/*
|
jaroslav@63
|
2 |
* To change this template, choose Tools | Templates
|
jaroslav@63
|
3 |
* and open the template in the editor.
|
jaroslav@63
|
4 |
*/
|
jaroslav@63
|
5 |
|
jaroslav@63
|
6 |
package org.apidesign.apifest08.test;
|
jaroslav@63
|
7 |
|
jaroslav@63
|
8 |
import java.math.BigDecimal;
|
jaroslav@63
|
9 |
import java.text.SimpleDateFormat;
|
jaroslav@63
|
10 |
import junit.framework.TestCase;
|
jaroslav@63
|
11 |
import org.apidesign.apifest08.currency.ConversionResult;
|
jaroslav@63
|
12 |
import org.apidesign.apifest08.currency.Convertor;
|
jaroslav@63
|
13 |
import org.apidesign.apifest08.currency.ConvertorCurrency;
|
jaroslav@63
|
14 |
import org.apidesign.apifest08.currency.ExchangeRateProvider;
|
jaroslav@63
|
15 |
|
jaroslav@63
|
16 |
/**
|
jaroslav@63
|
17 |
*
|
jaroslav@63
|
18 |
* @author arnostvalicek
|
jaroslav@63
|
19 |
*/
|
jaroslav@63
|
20 |
public class RemainderTest extends TestCase {
|
jaroslav@63
|
21 |
private static ConvertorCurrency CZK = ConvertorCurrency.getInstance("CZK");
|
jaroslav@63
|
22 |
private static ConvertorCurrency SKK = ConvertorCurrency.getInstance("SKK");
|
jaroslav@63
|
23 |
private static ConvertorCurrency USD = ConvertorCurrency.getInstance("USD");
|
jaroslav@63
|
24 |
private SimpleDateFormat df;
|
jaroslav@63
|
25 |
|
jaroslav@63
|
26 |
@Override
|
jaroslav@63
|
27 |
protected void setUp() throws Exception {
|
jaroslav@63
|
28 |
super.setUp();
|
jaroslav@63
|
29 |
df = new SimpleDateFormat("yyyy-MM-dd HH:mm zzzz");
|
jaroslav@63
|
30 |
|
jaroslav@63
|
31 |
}
|
jaroslav@63
|
32 |
|
jaroslav@63
|
33 |
@Override
|
jaroslav@63
|
34 |
protected void tearDown() throws Exception {
|
jaroslav@63
|
35 |
super.tearDown();
|
jaroslav@63
|
36 |
}
|
jaroslav@63
|
37 |
|
jaroslav@63
|
38 |
public void testRemainder1() {
|
jaroslav@63
|
39 |
Convertor c = Task2Test.createUsdToSkkConvertor();
|
jaroslav@63
|
40 |
{
|
jaroslav@63
|
41 |
final BigDecimal convertedValue = new BigDecimal("12.34");
|
jaroslav@63
|
42 |
ConversionResult result = c.convertWithReversibleRates(SKK,USD,convertedValue);
|
jaroslav@63
|
43 |
//System.out.println("Result = "+result);
|
jaroslav@63
|
44 |
assertEquals("Converted", new BigDecimal("0.61"),result.getConverted());
|
jaroslav@63
|
45 |
assertEquals("Remainder", new BigDecimal("0.14"),result.getRemainder());
|
jaroslav@63
|
46 |
|
jaroslav@63
|
47 |
ConversionResult resultBack = c.convertWithReversibleRates(USD, SKK, result.getConverted());
|
jaroslav@63
|
48 |
assertEquals("Conversion back", convertedValue, resultBack.getConverted().add(result.getRemainder()));
|
jaroslav@63
|
49 |
|
jaroslav@63
|
50 |
}
|
jaroslav@63
|
51 |
{
|
jaroslav@63
|
52 |
ConversionResult result = c.convertWithReversibleRates(SKK,USD,new BigDecimal("20.00"));
|
jaroslav@63
|
53 |
//System.out.println("Result = "+result);
|
jaroslav@63
|
54 |
}
|
jaroslav@63
|
55 |
|
jaroslav@63
|
56 |
{
|
jaroslav@63
|
57 |
ConversionResult result = c.convertWithReversibleRates(USD,SKK,new BigDecimal("1.00"));
|
jaroslav@63
|
58 |
//System.out.println("Result = "+result);
|
jaroslav@63
|
59 |
}
|
jaroslav@63
|
60 |
|
jaroslav@63
|
61 |
}
|
jaroslav@63
|
62 |
|
jaroslav@63
|
63 |
public void testRemainderStripCents() {
|
jaroslav@63
|
64 |
ConvertorCurrency CZK_cents=ConvertorCurrency.getInstance("CZK", 2);
|
jaroslav@63
|
65 |
ConvertorCurrency CZK_nocents=ConvertorCurrency.getInstance("CZK", 0);
|
jaroslav@63
|
66 |
|
jaroslav@63
|
67 |
|
jaroslav@63
|
68 |
ExchangeRateProvider exchangeRateProvider = ExchangeRateProvider.createExchangeRateProvider();
|
jaroslav@63
|
69 |
exchangeRateProvider.addFixedCurencyRate(CZK_cents, new BigDecimal(1), CZK_nocents, new BigDecimal(1));
|
jaroslav@63
|
70 |
|
jaroslav@63
|
71 |
Convertor c = Convertor.createConvertor(exchangeRateProvider);
|
jaroslav@63
|
72 |
|
jaroslav@63
|
73 |
ConversionResult result = c.convertWithReversibleRates(CZK_cents, CZK_nocents, new BigDecimal("2.34"));
|
jaroslav@63
|
74 |
assertEquals("Converted",new BigDecimal("2"),result.getConverted());
|
jaroslav@63
|
75 |
assertEquals("Remainder",new BigDecimal("0.34"),result.getRemainder());
|
jaroslav@63
|
76 |
}
|
jaroslav@63
|
77 |
|
jaroslav@63
|
78 |
|
jaroslav@63
|
79 |
|
jaroslav@63
|
80 |
}
|