Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,10 @@

<dependencies>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>
</project>
Empty file removed src/main/java/DELETEME
Empty file.
28 changes: 28 additions & 0 deletions src/main/java/Exchange.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Map;


public class Exchange {














public static void main(String[] args) {

}



}
58 changes: 58 additions & 0 deletions src/main/java/Rate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import java.math.BigDecimal;
import java.util.TreeMap;


public class Rate {

private String country;
private Double rate;

TreeMap<String, Double> currenyCollection = new TreeMap<String, Double>() {
{
put("USD", 1.00);
put("EUR", 0.94);
put("GBP", 0.82);
put("INR", 68.32);
put("AUD", 1.35);
put("CAD", 1.32);
put("SGD", 1.43);
put("CHF", 1.01);
put("MYR", 4.47);
put("JPY", 115.84);
put("CNY", 6.92);
}

};

public Rate(){

}

public BigDecimal conversion ( String country1, String country2, double amount) {
double convertedAmount = (currenyCollection.get(country2) / currenyCollection.get(country1)) * amount;
BigDecimal currencyAmount = new BigDecimal(convertedAmount);
return currencyAmount.setScale(2, BigDecimal.ROUND_CEILING);

}



public static void main(String[] args) {



}
}


// public final static double usDollar = 1.00;
// public final static double euro = 0.94;
// public final static double britishPound = 0.82;
// public final static double indianRupee = 68.32;
// public final static double austrialianDollar = 1.35;
// public final static double canadianDollar = 1.32;
// public final static double singaporeDollar = 1.43;
// public final static double swissFranc = 1.01;
// public final static double malaysianRiggit = 4.47;
// public final static double japaneseYen = 115.84;
// public final static double chineseYuan = 6.92;
164 changes: 164 additions & 0 deletions src/test/java/RateTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.Assert;
import java.math.BigDecimal;

import org.junit.Test;

public class RateTest {

Rate testRate;

@Before
public void setUp(){
testRate = new Rate();
}


@Test
public void testConvertDollarToEuro() {
String country1 = "USD";
String country2 = "EUR";
double amount = 100.1456;
BigDecimal expectedAmount = new BigDecimal("94.14");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);


}
@Test
public void convertEuroToDollar() {
String country1 = "EUR";
String country2 = "USD";
double amount = 250.50;
BigDecimal expectedAmount = new BigDecimal("266.49");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);
}

@Test
public void ConvertEuroToBritishPound() {
String country1 = "EUR";
String country2 = "GBP";
double amount = 656.354;
BigDecimal expectedAmount = new BigDecimal("572.57");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);
}
@Test
public void ConvertBritishPoundToIndianRupee() {
String country1 = "GBP";
String country2 = "INR";
double amount = 345.00;
BigDecimal expectedAmount = new BigDecimal("28744.40");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);
}

@Test
public void ConvertRupeeToCanadianDollar() {
String country1 = "INR";
String country2 = "CAD";
double amount = 97.47;
BigDecimal expectedAmount = new BigDecimal("1.89");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);
}

@Test

public void ConvertCanadianDollarToSingaporeDollar(){
String country1 = "CAD";
String country2 = "SGD";
double amount = 1000.00;
BigDecimal expectedAmount = new BigDecimal("1083.34");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);

}

@Test
public void ConvertSingaporeDollarToSwissFranc(){
String country1 = "SGD";
String country2 = "CHF";
double amount = 1526.35;
BigDecimal expectedAmount = new BigDecimal("1078.06");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);

}

@Test
public void ConvertSwissFranctoMalaysianRinggit(){
String country1 = "CHF";
String country2 = "MYR";
double amount = 345.00;
BigDecimal expectedAmount = new BigDecimal("1526.89");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);

}

@Test
public void ConvertMalaysianRinggitToJapaneseYen(){
String country1 = "MYR";
String country2 = "JPY";
double amount = 345.00;
BigDecimal expectedAmount = new BigDecimal("8940.68");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);

}

@Test

public void ConvertJapaneseYenToChineseYuan(){
String country1 = "JPY";
String country2 = "CNY";
double amount = 345.00;
BigDecimal expectedAmount = new BigDecimal("20.61");

//:When
BigDecimal actualAmount = testRate.conversion(country1, country2, amount);

//:Then
Assert.assertEquals(expectedAmount, actualAmount);

}
}
Binary file added target/classes/Exchange.class
Binary file not shown.
Binary file added target/classes/Rate$1.class
Binary file not shown.
Binary file added target/classes/Rate.class
Binary file not shown.
Binary file added target/test-classes/RateTest.class
Binary file not shown.