blob: 7a6e8893443f4ac555c2ab2cd4a4351b803f6cb0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.axis2.databinding.utils;
import junit.framework.TestCase;
import static org.assertj.core.api.Assertions.assertThat;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import org.apache.axiom.attachments.ByteArrayDataSource;
import org.apache.axiom.util.base64.Base64Utils;
import org.apache.axis2.databinding.types.NormalizedString;
public class ConverterUtilTest extends TestCase {
/** Test conversion of Big Integer */
public void testBigInteger() {
List l = new ArrayList();
l.add("23445");
l.add("23446");
l.add("23456646");
l.add("1113646");
Object convertedObj = ConverterUtil.convertToArray(
BigInteger.class, l);
assertTrue(convertedObj.getClass().isArray());
assertTrue(convertedObj.getClass().equals(BigInteger[].class));
}
public void testBigDecimal() {
String inputString = "0.0000000000";
BigDecimal decimal = new BigDecimal(inputString);
String outputString = ConverterUtil.convertToString(decimal);
System.out.println("BigDecimal==> " + outputString);
assertEquals(inputString, outputString);
}
/** integer arrays */
public void testInt() {
List l = new ArrayList();
l.add("23445");
l.add("23446");
l.add("23456646");
l.add("1113646");
Object convertedObj = ConverterUtil.convertToArray(
int.class, l);
assertTrue(convertedObj.getClass().isArray());
assertTrue(convertedObj.getClass().equals(int[].class));
}
/** boolean arrays */
public void testBool() {
List l = new ArrayList();
l.add("true");
l.add("false");
l.add("true");
l.add("false");
Object convertedObj = ConverterUtil.convertToArray(
boolean.class, l);
assertTrue(convertedObj.getClass().isArray());
assertTrue(convertedObj.getClass().equals(boolean[].class));
}
public void testConvertToDateTime() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Calendar calendar;
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29");
System.out.println("String ==> " + "2007-02-15T14:54:29");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29.399");
System.out.println("String ==> " + "2007-02-15T14:54:29.399");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29+05:30");
System.out.println("String ==> " + "2007-02-15T14:54:29+05:30");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29.399+05:30");
System.out.println("String ==> " + "2007-02-15T14:54:29.399+05:30");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29Z");
System.out.println("String ==> " + "2007-02-15T14:54:29Z");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29.399Z");
System.out.println("String ==> " + "2007-02-15T14:54:29.399Z");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2006-12-11T23:57:16.625Z");
System.out.println("String ==> " + "2006-12-11T23:57:16.625Z");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
calendar = ConverterUtil.convertToDateTime("2007-02-15T14:54:29.399-05:30");
System.out.println("String ==> " + "2007-02-15T14:54:29.399-05:30");
System.out.println("calendar ==> " + simpleDateFormat.format(calendar.getTime()));
System.out.println("calendar ==> " + ConverterUtil.convertToString(calendar));
TimeZone currentTimeZone = TimeZone.getDefault();
System.out.println("before Test: TimeZone is "+TimeZone.getDefault().getDisplayName());
try {
// run tests with default JVM time zone
this.internalTestConvertToDateTime();
// We use two time zone with GMT+1. One north and one south.
// We hope that one is currently using daylight savings and the
// other is not using it.
// run tests with time zone "Europe/Berlin"
System.out.println( "setting time zone to Europe/Berlin" );
TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin"));
this.internalTestConvertToDateTime();
// run tests with time zone "Africa/Windhoek"
System.out.println( "setting time zone to Africa/Tunis" );
TimeZone.setDefault(TimeZone.getTimeZone("Africa/Tunis"));
this.internalTestConvertToDateTime();
// run tests with time zone "Australia/Darwin"
System.out.println( "setting time zone to Australia/Darwin" );
TimeZone.setDefault(TimeZone.getTimeZone("Australia/Darwin"));
this.internalTestConvertToDateTime();
// run tests with time zone "US/Mountain"
System.out.println( "setting time zone to US/Mountain" );
TimeZone.setDefault(TimeZone.getTimeZone("US/Mountain"));
this.internalTestConvertToDateTime();
} finally {
TimeZone.setDefault( currentTimeZone );
System.out.println("after Test: TimeZone is "+TimeZone.getDefault().getDisplayName());
}
}
public void testConvertToDateString() {
Date date = new Date();
String dateString = ConverterUtil.convertToString(date);
System.out.println("Date ==> " + dateString);
}
public void testConvertToDate() {
Date date;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-ddZ");
date = ConverterUtil.convertToDate("2007-02-15");
System.out.println("String ==> " + "2007-02-15");
System.out.println("calendar ==> " + simpleDateFormat.format(date));
System.out.println("calendar ==> " + ConverterUtil.convertToString(date));
date = ConverterUtil.convertToDate("2007-02-15Z");
System.out.println("String ==> " + "2007-02-15Z");
System.out.println("calendar ==> " + simpleDateFormat.format(date));
System.out.println("calendar ==> " + ConverterUtil.convertToString(date));
date = ConverterUtil.convertToDate("2007-02-15+05:30");
System.out.println("String ==> " + "2007-02-15+05:30");
System.out.println("calendar ==> " + simpleDateFormat.format(date));
System.out.println("calendar ==> " + ConverterUtil.convertToString(date));
date = ConverterUtil.convertToDate("2007-02-15-12:30");
System.out.println("String ==> " + "2007-02-15-12:30");
System.out.println("calendar ==> " + simpleDateFormat.format(date));
System.out.println("calendar ==> " + ConverterUtil.convertToString(date));
//Included two new tests from here http://www.w3.org/TR/NOTE-datetime
date = ConverterUtil.convertToDate("2011-11-05T08:15:30-05:00");
System.out.println("String ==> " + "2011-11-05T08:15:30-05:00");
System.out.println("calendar ==> " + simpleDateFormat.format(date));
System.out.println("calendar ==> " + ConverterUtil.convertToString(date));
date = ConverterUtil.convertToDate("1994-11-05T13:15:30Z");
System.out.println("String ==> " + "1994-11-05T13:15:30Z");
System.out.println("calendar ==> " + simpleDateFormat.format(date));
System.out.println("calendar ==> " + ConverterUtil.convertToString(date));
}
public void testConvertCalendarToString() {
TimeZone timeZone = TimeZone.getTimeZone("Australia/Perth");
Calendar c = Calendar.getInstance(timeZone);
c.clear();
c.set(2008, Calendar.JANUARY, 1);
TestCase.assertTrue(ConverterUtil.convertToString(c).endsWith("+09:00"));
}
public void testconvertToDateXML() {
Date date = null;
String dateStr = null;
dateStr = "2007-02-15";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "2007-02-15Z";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "2007-02-15+05:30";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "2007-02-15-12:30";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "1997-07-16T19:20:30.45+01:00";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "2011-09-27T14:43:55.162+05:30";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "1997-07-16T19:20:30+01:00";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
dateStr = "1994-11-05T13:15:30Z";
date = ConverterUtil.convertXmlToDate(dateStr);
assertNotNull(date);
}
public void testConvertToStringFromDataHandler() {
String inStr = "Sample Data";
DataSource ds = new ByteArrayDataSource(inStr.getBytes());
DataHandler dh = new DataHandler(ds);
String rawOutStr = ConverterUtil.convertToString(dh);
String outStr = new String(Base64Utils.decode(rawOutStr));
assertEquals("Not expected content", inStr, outStr);
}
/**
* Used to by formatCalendar* to format millisecond field.
* @param millis the millisecond value
* @param digits the number of digits to use
* (0=none)
* @return something like ".123" or "" (when digits=0)
*/
private static String formatMillis(int millis, int digits) {
if (digits == 0) return "";
StringBuffer sb = new StringBuffer(16);
sb.append('.');
sb.append(millis);
while( sb.length() > digits && sb.charAt(sb.length()-1) == '0' ) {
sb.deleteCharAt(sb.length()-1); // remove trailing '0'
}
while( sb.length() < digits+1 ) {
sb.append('0'); // add trailing '0'
}
return sb.toString();
}
/**
* Format a Calendar object to a schema datetime string.
* Used by testConvertToDateTime().
* @param c the object to format
* @param millisDigits number of digits used for millisecond field
* (0 = none)
* @param tz the time zone to use (null = default time zone)
* @return something like "1111-22-33T44:55:66.789"
*/
private static String formatCalendarXsd(Calendar c, int millisDigits, TimeZone tz)
{
String formatString = "yyyy-MM-dd'T'HH:mm:ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatString);
if (tz != null) simpleDateFormat.setTimeZone(tz);
StringBuffer sb = new StringBuffer(simpleDateFormat.format(c.getTime()));
sb.append(formatMillis(c.get(Calendar.MILLISECOND), millisDigits));
return sb.toString();
}
/**
* Format a Calendar object to a schema datetime string with time zone
* Used by testConvertToDateTime().
* @param c the object to format
* @param millisDigits number of digits used for millisecond field
* (0 = none)
* @param tz the timezone to use (null = default timezone)
* @return something like "1111-22-33T44:55:66.789+01:00"
*/
private static String formatCalendarXsdWithTz(Calendar c, int millisDigits, TimeZone tz)
{
String formatString = "yyyy-MM-dd'T'HH:mm:ssZ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatString);
if (tz != null) simpleDateFormat.setTimeZone(tz);
StringBuffer sb = new StringBuffer(simpleDateFormat.format(c.getTime()));
sb.insert(19, formatMillis(c.get(Calendar.MILLISECOND), millisDigits));
return sb.insert(sb.length()-2, ':').toString(); // fix tz format
}
/**
* Format a Calendar object to a schema datetime string with time zone UTC
* Used by testConvertToDateTime().
* @param c the object to format
* @param millisDigits number of digits used for millisecond field
* (0 = none)
* @return something like "1111-22-33T44:55:66.789Z"
*/
private static String formatCalendarXsdZulu(Calendar c, int millisDigits)
{
String formatString = "yyyy-MM-dd'T'HH:mm:ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatString);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
StringBuffer sb = new StringBuffer(simpleDateFormat.format(c.getTime()));
sb.append(formatMillis(c.get(Calendar.MILLISECOND), millisDigits));
sb.append('Z');
return sb.toString();
}
private void internalTestConvertToDateTime()
{
System.out.println("testing with TimeZone "
+ TimeZone.getDefault().getDisplayName());
System.out.println("uses daylight time: "
+ TimeZone.getDefault().useDaylightTime());
System.out.println("we are in daylight time: "
+ TimeZone.getDefault().inDaylightTime(new Date()));
String testValue; // holds the testvalue
TimeZone timeZone; // the (custom) time zone of testvalue
Calendar calendar; // the value to test
String back; // the value converted back by convertToString
// local date without daylight savings in "Europe/Berlin"
testValue = "2007-02-15T14:54:29";
timeZone = null;
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 0, null));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsd(calendar, 0, null));
assertEquals("should be in local timezone",
TimeZone.getDefault().getOffset(calendar.getTimeInMillis()),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// local date with daylight savings in "Europe/Berlin"
testValue = "2007-05-27T23:20:33";
timeZone = null;
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 0, null));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsd(calendar, 0, null));
assertEquals("should be in local timezone",
TimeZone.getDefault().getOffset(calendar.getTimeInMillis()),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// local date with milliseconds without daylight savings
testValue = "2007-02-15T14:54:29.399";
timeZone = null;
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 3, null));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsd(calendar, 3, null));
assertEquals("should be in local timezone",
TimeZone.getDefault().getOffset(calendar.getTimeInMillis()),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// local date with milliseconds with daylight savings
testValue = "2009-06-12T23:20:33.2";
timeZone = null;
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 1, null));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsd(calendar, 1, null));
assertEquals("should be in local timezone",
TimeZone.getDefault().getOffset(calendar.getTimeInMillis()),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date with time zone (positive) no milliseconds
testValue = "2007-02-15T14:54:29+05:30";
timeZone = TimeZone.getTimeZone("GMT+05:30"); //custom time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 0, timeZone));
System.out.println("back ==> " + back);
// make sure that timeZone.getRawOffset() is sufficient
assertFalse ("custom time zone should not use day light saving",
timeZone.useDaylightTime());
assertEquals(testValue,
formatCalendarXsdWithTz(calendar, 0, timeZone));
assertEquals("should be in timezone +05:30",
timeZone.getRawOffset(),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date with time zone (negative) with milliseconds
testValue = "2007-02-15T14:54:29.399-05:30";
timeZone = TimeZone.getTimeZone("GMT-05:30"); //custom time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 3, timeZone));
System.out.println("back ==> " + back);
// make sure that timeZone.getRawOffset() is sufficient
assertFalse ("custom time zone should not use day light saving",
timeZone.useDaylightTime());
assertEquals(testValue,
formatCalendarXsdWithTz(calendar, 3, timeZone));
assertEquals("should be in timezone -05:30",
timeZone.getRawOffset(),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date with time zone and milliseconds
testValue = "2007-02-15T14:54:29.399+05:30";
timeZone = TimeZone.getTimeZone("GMT+05:30"); //custom time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 3, timeZone));
System.out.println("back ==> " + back);
// make sure that timeZone.getRawOffset() is sufficient
assertFalse ("custom time zone should not use day light saving",
timeZone.useDaylightTime());
assertEquals(testValue,
formatCalendarXsdWithTz(calendar, 3, timeZone));
assertEquals("should be in timezone +05:30",
timeZone.getRawOffset(),
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date within UTC (Zulu time zone)
testValue = "2007-02-15T14:54:29Z";
timeZone = TimeZone.getTimeZone("GMT"); //UTC time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 0, timeZone));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsdZulu(calendar,0));
assertEquals("should be in UTC",
0,
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date within UTC (Zulu time zone) with milliseconds
testValue = "2007-02-15T14:54:29.399Z";
timeZone = TimeZone.getTimeZone("GMT"); //UTC time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 3, timeZone));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsdZulu(calendar, 3));
assertEquals("should be in UTC",
0,
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date within UTC (Zulu time zone) with milliseconds
testValue = "2006-12-11T23:57:16.62Z";
timeZone = TimeZone.getTimeZone("GMT"); //UTC time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 2, timeZone));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsdZulu(calendar, 2));
assertEquals("should be in UTC",
0,
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date within UTC (Zulu time zone) with milliseconds
testValue = "2012-05-18T13:57:01.7Z";
timeZone = TimeZone.getTimeZone("GMT"); //UTC time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 1, timeZone));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsdZulu(calendar, 1));
assertEquals("should be in UTC",
0,
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
// date within UTC (Zulu time zone) with milliseconds
testValue = "2012-05-17T13:57:01.123000000Z";
timeZone = TimeZone.getTimeZone("GMT"); //UTC time zone
calendar = ConverterUtil.convertToDateTime(testValue);
back = ConverterUtil.convertToString(calendar);
System.out.println("testValue ==> " + testValue);
System.out.println("calendar ==> " + formatCalendarXsdWithTz(calendar, 9, timeZone));
System.out.println("back ==> " + back);
assertEquals(testValue,
formatCalendarXsdZulu(calendar, 9));
assertEquals("should be in UTC",
0,
calendar.get(Calendar.ZONE_OFFSET)+calendar.get(Calendar.DST_OFFSET));
}
public void testConvertToNormalizedString() {
NormalizedString str = ConverterUtil.convertToNormalizedString("abc");
assertNotNull(str);
str = ConverterUtil.convertToNormalizedString("");
assertNotNull(str);
str = ConverterUtil.convertToNormalizedString(null);
assertNull(str);
}
public void testCompareInt() {
// https://stackoverflow.com/questions/46372764/axis2-adb-and-mininclusive-2147483648
assertThat(ConverterUtil.compare(3, "-2147483648")).isGreaterThan(0);
}
public void testCompareBigIntegerValueIsLessThanTotalDigitsFacetRestriction() {
//AXIS2-5724 - Handle Decimal String value when casting to Long.
BigInteger value = BigInteger.valueOf(100L);
String totalDigitsFromXsd = "3";
String decimalNotationString = ConverterUtil.convertToStandardDecimalNotation(totalDigitsFromXsd).toPlainString();
assertThat(ConverterUtil.compare(value, decimalNotationString)).isLessThan(0L);
}
public void testCompareBigIntegerValueIsGreaterThanOrEqualToTotalDigitsFacetRestriction() {
//AXIS2-5724 - Handle Decimal String value when casting to Long.
BigInteger value = BigInteger.valueOf(1000L);
String totalDigitsFromXsd = "3";
String decimalNotationString = ConverterUtil.convertToStandardDecimalNotation(totalDigitsFromXsd).toPlainString();
long result = ConverterUtil.compare(value, decimalNotationString);
assertThat(result).isGreaterThanOrEqualTo(0L);
}
}