Package javax.faces.convert

Examples of javax.faces.convert.NumberConverter


    Number[] expectedValues = {new Long(9999), new Long(99), new Double(0.99), new Long(99), new Long(99)};
    String[] expectedStringValues = {"99,99","99", "99%","$99.00", "$99.00"} ;
    Locale usLocl = Locale.US;
    Locale[] locales = {usLocl, usLocl, usLocl, usLocl,Locale.CANADA};

    NumberConverter nconv = getNumberConverter();

    for (int i = 0; i < patterns.length; i++)
    {
      Mock mock = mock(UIComponent.class);
      UIComponent component = (UIComponent) mock.proxy();
      //we do not care about getValueExpression() being called or not
      mock.stubs().method("getValueExpression");


      setFacesContext(facesContext);
      try
      {
        nconv.setPattern(patterns[i]);
        nconv.setType(types[i]);
        nconv.setLocale(locales[i]);
       
        Object convValue = nconv.getAsObject(facesContext, component, inputValues[i]);
       
        // Trinidad does BigDecimal, for some reasons.
        // see TRINIDAD-1124
        if(i==2)
        {
          convValue = ((Number) convValue).doubleValue();
        }
        else
        {
          convValue = ((Number) convValue).longValue();
        }

        assertEquals(expectedValues[i], convValue);
       
        String outValue = nconv.getAsString(facesContext, component, expectedValues[i]);
       
        assertEquals(expectedStringValues[i], outValue);
      }
      finally
      {
View Full Code Here


    }
  }

  public void testStateHolderSaveRestore()
  {
    NumberConverter converter = getNumberConverter();

    NumberConverter restoreConverter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();
    //we do not care about getValueExpression() being called or not
    mock.stubs().method("getValueExpression");

    MockUIComponentWrapper wrapper = new MockUIComponentWrapper(mock, component);

    for (int i = 0; i < _LOCALES.length; i++)
    {
      converter.setLocale(_LOCALES[i]);
      restoreConverter.setLocale(_LOCALES[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setCurrencyCode( _CURRENCY_CODES[i]);
      restoreConverter.setCurrencyCode( _CURRENCY_CODES[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setCurrencySymbol(_CURRENCY_SYMBOLS[i]);
      restoreConverter.setCurrencySymbol(_CURRENCY_SYMBOLS[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setIntegerOnly(_INTEGER_ONLY[1]);
      restoreConverter.setIntegerOnly(_INTEGER_ONLY[1]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setMaxFractionDigits(_MAX_FRACTION_DIGITS[i]);
      restoreConverter.setMaxFractionDigits(_MAX_FRACTION_DIGITS[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setMaxIntegerDigits(_MAX_INT_DIGITS[i]);
      restoreConverter.setMaxIntegerDigits(_MAX_INT_DIGITS[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setMinFractionDigits(_MIN_FRACT_DIGITS[i]);
      restoreConverter.setMinFractionDigits(_MIN_FRACT_DIGITS[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setMinIntegerDigits(_MIN_INT_DIGITS[i]);
      restoreConverter.setMinIntegerDigits(_MIN_INT_DIGITS[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setPattern( _PATTTERNS[i]);
      restoreConverter.setPattern(_PATTTERNS[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setTransient(_TRANSIENT[i]);
      restoreConverter.setTransient(_TRANSIENT[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);

      converter.setType(_TYPES[i]);
      doTestStateHolderSaveRestore(converter, restoreConverter, facesContext, wrapper);
View Full Code Here


 
  public void testCurrencyCodeIsHonoured()
  {
    NumberConverter converter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();
    //we do not care about getValueExpression() being called or not
    mock.stubs().method("getValueExpression");

    converter.setLocale(Locale.US);
    converter.setType("currency");
    Double  value = new Double(99);

    setFacesContext(facesContext);
    try
    {
      String outPut = converter.getAsString(facesContext, component, value);
      assertEquals("$99.00", outPut);
      //Locale is US. By general convention the output prefix would be '$'
      // since we set the currency code to 'DEM' value should be DEM[value]
      converter.setCurrencyCode("DEM");
     
      outPut = converter.getAsString(facesContext, component, value);
      assertEquals("DEM99.00", outPut);
    }
    finally
    {
      setFacesContext(null);
View Full Code Here

    mock.verify();
  }

  public void testCurrencyCodeIsHonouredWhenCurrencyCodeAndCurrencySymbolIsSet()
  {
    NumberConverter converter   = getNumberConverter();
    Mock mock = buildMockUIComponent(2);
    UIComponent component = (UIComponent) mock.proxy();
    //we do not care about getValueExpression() being called or not
    mock.stubs().method("getValueExpression");

    converter.setLocale(Locale.US);
    converter.setType("currency");
    Double value = new Double(99);

    setFacesContext(facesContext);
    try
    {
      String outPut = converter.getAsString(facesContext, component, value);
      assertEquals("$99.00", outPut);
      //Locale is US. By general convention the output prefix would be '$'
      // since we set the currency code to 'DEM' value should be DEM[value]
      converter.setCurrencyCode("DEM");
     
      // Let us set the symbol to '*'. This should not take effect, since currency
      // code is set.
      converter.setCurrencySymbol("*");
     
      outPut = converter.getAsString(facesContext, component, value);
      assertEquals("DEM99.00", outPut);
      try
      {
        Number outValue = (Number)converter.getAsObject(facesContext, component, "DEM99.00");
        // FIXME =-= AdamWiner:  this is not reporting an error as of
        // JSF 1.2 - should it?
        //        fail("Exception should occur - since currency should not be considered while formatting");
      }
      catch(Exception e)
View Full Code Here

    mock.verify();
  }

  public void testCurrencyCodeIsHonouredWhenCurrencyCodeAndCurrencySymbolIsSet()
  {
    NumberConverter converter   = getNumberConverter();
    Mock mock = buildMockUIComponent(2);
    UIComponent component = (UIComponent) mock.proxy();

    converter.setLocale(Locale.US);
    converter.setType("currency");
    Double value = new Double(99);

    setFacesContext(facesContext);
    try
    {
      String outPut = converter.getAsString(facesContext, component, value);
      assertEquals("$99.00", outPut);
      //Locale is US. By general convention the output prefix would be '$'
      // since we set the currency code to 'DEM' value should be DEM[value]
      converter.setCurrencyCode("DEM");
     
      // Let us set the symbol to '*'. This should not take effect, since currency
      // code is set.
      converter.setCurrencySymbol("*");
     
      outPut = converter.getAsString(facesContext, component, value);
      assertEquals("DEM99.00", outPut);
      try
      {
        if(converter.getAsObject(facesContext, component, "DEM99.00") instanceof Number)
        {
          fail("Exception should occur - since currency should not be considered while formatting");
        }
      }
      catch(Exception e)
View Full Code Here

    mock.verify();
  }

  public void testCurrencySymbolIsHonoured()
  {
    NumberConverter converter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();
    converter.setLocale(Locale.US);
    converter.setType("currency");
    Double  value = new Double(99);
    //Locale is US. By general convention the output prefix would be '$'
    // since we set currency symbol to '*' we should get the value to be *99.00
    converter.setCurrencySymbol("*");
   
    setFacesContext(facesContext);
    try
    {
      String outPut = converter.getAsString(facesContext, component, value);
      assertEquals("*99.00", outPut);
    }
    finally
    {
      setFacesContext(null);
View Full Code Here

  }

  public void testIntegerOnlyIsHonoured()
  {
    // integerOnly is used only while parsing to create number objects
    NumberConverter converter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();
    converter.setLocale(Locale.US);

    String[] inputs = {"23.10", "44.90876", "11111", "67859.0001"};
    Number[] expectedValues = {new Long(23), new Long(44), new Long(11111), new Long(67859)};

    setFacesContext(facesContext);
    try
    {
      for (int i = 0; i < inputs.length; i++)
      {
        converter.setIntegerOnly(true);
        Number num = (Number) converter.getAsObject(facesContext, component, inputs[i]);
        assertEquals(expectedValues[i], num);
      }
    }
    finally
    {
View Full Code Here


  public void testSettingFractDigitsAndSettingMinDigitsDoesNotAffectParsing()
  {
    // integerOnly is used only while parsing to create number objects
    NumberConverter converter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();
    converter.setLocale(Locale.US);

    String[] inputs = {"23.10", "44.90876", "11111", "67859.0001"};
    Number[] expectedValues = {new Long(23), new Long(44), new Long(11111), new Long(67859)};

    setFacesContext(facesContext);
    try
    {
      for (int i = 0; i < inputs.length; i++)
      {
        // setting these values should not affect parsing.
        converter.setMaxFractionDigits(10);
        converter.setMaxIntegerDigits(1);
        converter.setMinFractionDigits(1);
        converter.setMinFractionDigits(0);
       
        // this should be taken care by the parsing code
        converter.setIntegerOnly(true);
        Number num = (Number) converter.getAsObject(facesContext, component, inputs[i]);
        assertEquals(expectedValues[i], num);
      }
    }
    finally
    {
View Full Code Here

  }

  public void testLocaleIsPickedUpFromViewRoot()
  {

    NumberConverter converter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();

    facesContext.getViewRoot().setLocale(Locale.US);

    String input = "1234.56";

    setFacesContext(facesContext);
    try
    {
      // if we get a valid object, implies locale was indeed picked up.
      // otherwise we would have got a null pointer exception or other exception
      Object value = converter.getAsObject(facesContext, component, input);
      assertEquals(new Double(1234.56), value);
    }
    finally
    {
      setFacesContext(null);
View Full Code Here

  {
    Number[] inputValues = {new Long(9999), new Long(99), new Double(0.99), new Double(99999.567), new Long(9999)};
    boolean [] isGroupingUsed = {true, true, true, false, false };
    String[] expectedValues = {"9,999", "99", "0.99", "99999.567", "9999"};

    NumberConverter converter = getNumberConverter();
    Mock mock = mock(UIComponent.class);
    UIComponent component = (UIComponent) mock.proxy();
    converter.setLocale(Locale.US);
    setFacesContext(facesContext);
    try
    {
      for (int i = 0; i < inputValues.length; i++)
      {
        converter.setGroupingUsed(isGroupingUsed[i]);
        String out = converter.getAsString(facesContext, component, inputValues[i]);
        assertEquals(expectedValues[i], out);
      }
    }
    finally
    {
View Full Code Here

TOP

Related Classes of javax.faces.convert.NumberConverter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.