< prev index next >

test/java/util/Currency/PropertiesTest.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -23,20 +23,26 @@
 
 import java.io.*;
 import java.text.*;
 import java.util.*;
 import java.util.regex.*;
+import java.util.stream.Collectors;
 
 public class PropertiesTest {
     public static void main(String[] args) throws Exception {
         if (args.length == 2 && args[0].equals("-d")) {
             dump(args[1]);
         } else if (args.length == 4 && args[0].equals("-c")) {
             compare(args[1], args[2], args[3]);
+        } else if (args.length == 1 && args[0].equals("bug7102969")) {
+            bug7102969();
+        } else if (args.length == 1 && args[0].equals("bug8157138")) {
+            bug8157138();
         } else {
             System.err.println("Usage:  java PropertiesTest -d <dumpfile>");
             System.err.println("        java PropertiesTest -c <beforedump> <afterdump> <propsfile>");
+            System.err.println("        java PropertiesTest bug[JBS bug id number] e.g. bug7102969");
             System.exit(-1);
         }
     }
 
     private static void dump(String outfile) {

@@ -172,10 +178,78 @@
             }
             throw new RuntimeException(sb.toString());
         }
     }
 
+    private static void bug7102969() {
+
+        // check the correct overriding of special case entries
+        Currency cur = Currency.getInstance(new Locale("", "JP"));
+        if (!cur.getCurrencyCode().equals("ABC")) {
+            throw new RuntimeException("[Expected: ABC as currency code of JP, found: "
+                    + cur.getCurrencyCode() + "]");
+        }
+
+        /* check if the currency instance is returned by
+         * getAvailableCurrencies() method
+         */
+        if (!Currency.getAvailableCurrencies().contains(cur)) {
+            throw new RuntimeException("[The Currency instance ["
+                    + cur.getCurrencyCode() + ", "
+                    + cur.getNumericCode() + ", "
+                    + cur.getDefaultFractionDigits()
+                    + "] is not available in the currencies list]");
+        }
+
+    }
+
+    private static void bug8157138() {
+
+        /* check the currencies which exist only as a special case are
+         * accessible i.e. it should not throw IllegalArgumentException
+         */
+        try {
+            Currency.getInstance("MAD");
+        } catch (IllegalArgumentException ex) {
+            throw new RuntimeException("Test Failed: "
+                    + "special case currency instance MAD not found"
+                    + "via Currency.getInstance(\"MAD\")");
+        }
+
+        try {
+            Currency.getInstance("ABC");
+        } catch (IllegalArgumentException ex) {
+            throw new RuntimeException("Test Failed: "
+                    + "special case currency instance ABC not found"
+                    + "via Currency.getInstance(\"ABC\")");
+        }
+
+        /* check the currency value is returned by getAvailableCurrencies()
+         * method
+        */
+        List<Currency> list = Currency.getAvailableCurrencies().stream()
+                .filter(cur -> cur.getCurrencyCode().equals("MAD"))
+                .collect(Collectors.toList());
+
+        if (list.isEmpty()) {
+            throw new RuntimeException("Test Failed: "
+                    + "special case currency instance MAD not found"
+                    + "in Currency.getAvailableCurrencies() list");
+        }
+
+        list = Currency.getAvailableCurrencies().stream()
+                .filter(cur -> cur.getCurrencyCode().equals("ABC"))
+                .collect(Collectors.toList());
+
+        if (list.isEmpty()) {
+            throw new RuntimeException("Test Failed: "
+                    + "special case currency instance ABC not found"
+                    + "in Currency.getAvailableCurrencies() list");
+        }
+
+    }
+
     private static boolean isPastCutoverDate(String s)
             throws IndexOutOfBoundsException, NullPointerException, ParseException {
         String dateString = s.substring(s.lastIndexOf(',')+1, s.length()).trim();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ROOT);
         format.setTimeZone(TimeZone.getTimeZone("GMT"));
< prev index next >