/* Copyright (C) 1999, 2002 Hewlett-Packard Company This file is part of Mauve. Mauve is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. Mauve is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Mauve; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // Tags: JDK1.1 package gnu.testlet.wonka.lang.Double; import gnu.testlet.TestHarness; import gnu.testlet.Testlet; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class DoubleSetterTest implements Testlet { protected static TestHarness harness; /** * Tests the conversion of behaviour of max values when converting from double into Double */ public void test_max() { // Check directly the MAX_VALUE against NaN harness.check(!Double.isNaN(Double.MAX_VALUE)); harness.check(!Double.isNaN(new Double(Double.MAX_VALUE).doubleValue())); // Check the MAX_VALUE against NaN via a direct method setter DoubleHolder doubleHolder = new DoubleHolder(); doubleHolder.setValue(Double.MAX_VALUE); harness.check(Double.MAX_VALUE, doubleHolder.getValue()); // Check the MAX_VALUE against NaN via a setter called by reflection DoubleHolder doubleHolder2 = new DoubleHolder(); try { Method setMethod = DoubleHolder.class.getDeclaredMethod("setValue", new Class[] {double.class}); setMethod.invoke(doubleHolder2, new Object[] {new Double(Double.MAX_VALUE)}); } catch (NoSuchMethodException e) { harness.fail("no method setValue"); } catch (IllegalAccessException e) { harness.fail("illegal access"); } catch (InvocationTargetException e) { harness.fail("invocation failed"); } harness.check(!Double.isNaN(doubleHolder2.getValue())); } /** * Simple holder used to test various way of setting and getting primitive double */ private static class DoubleHolder { private double value; public DoubleHolder() { // TODO Auto-generated constructor stub } public double getValue() { return value; } public void setValue(double value) { this.value = value; } } public void test (TestHarness the_harness) { harness = the_harness; test_max(); } }