001package intermediate; 002 003import com.sandwich.koan.Koan; 004 005import java.text.DateFormat; 006import java.text.NumberFormat; 007import java.util.Calendar; 008import java.util.Date; 009import java.util.Locale; 010 011import static com.sandwich.koan.constant.KoanConstants.__; 012import static com.sandwich.util.Assert.assertEquals; 013 014public class AboutLocale { 015 016 @Koan 017 public void localizedOutputOfDates() { 018 Calendar cal = Calendar.getInstance(); 019 cal.set(2011, 3, 3); 020 Date date = cal.getTime(); 021 Locale localeBR = new Locale("pt", "BR"); // portuguese, Brazil 022 DateFormat dateformatBR = DateFormat.getDateInstance(DateFormat.FULL, localeBR); 023 assertEquals(dateformatBR.format(date), __); 024 025 Locale localeJA = new Locale("de"); // German 026 DateFormat dateformatJA = DateFormat.getDateInstance(DateFormat.FULL, localeJA); 027 // Well if you don't know how to type these characters, try "de", "it" or "us" ;-) 028 assertEquals(dateformatJA.format(date), __); 029 } 030 031 @Koan 032 public void getCountryInformation() { 033 Locale locBR = new Locale("pt", "BR"); 034 assertEquals(locBR.getDisplayCountry(), __); 035 assertEquals(locBR.getDisplayCountry(locBR), __); 036 037 Locale locCH = new Locale("it", "CH"); 038 assertEquals(locCH.getDisplayCountry(), __); 039 assertEquals(locCH.getDisplayCountry(locCH), __); 040 assertEquals(locCH.getDisplayCountry(new Locale("de", "CH")), __); 041 } 042 043 @Koan 044 public void formatCurrency() { 045 float someAmount = 442.23f; // Don't use floats for money in real life. Really. It's a bad idea. 046 Locale locBR = new Locale("pt", "BR"); 047 NumberFormat nf = NumberFormat.getCurrencyInstance(locBR); 048 assertEquals(nf.format(someAmount), __); 049 } 050}