/*
* Copyright 2010 Chris Pheby
*
* Licensed 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.jadira.bindings.core.jdk;
import static org.junit.Assert.assertEquals;
import java.math.BigDecimal;
import org.junit.Test;
public class BigDecimalStringBindingTest {
private static final BigDecimalStringBinding BINDING = new BigDecimalStringBinding();
@Test
public void testUnmarshal() {
assertEquals(new BigDecimal(0).toString(), BINDING.unmarshal("0").toString());
assertEquals(new BigDecimal(1).toString(), BINDING.unmarshal("1").toString());
assertEquals(new BigDecimal(9223372036854775807L).toString(), BINDING.unmarshal("" + Long.MAX_VALUE).toString());
assertEquals(new BigDecimal(-9223372036854775808L).toString(), BINDING.unmarshal("" + Long.MIN_VALUE).toString());
assertEquals(new BigDecimal("9223372036854775808").toString(), BINDING.unmarshal("9223372036854775808").toString());
assertEquals(new BigDecimal("-9223372036854775809").toString(), BINDING.unmarshal("-9223372036854775809").toString());
assertEquals(new BigDecimal("0.0").toString(), BINDING.unmarshal("0.0").toString());
assertEquals(new BigDecimal("1.123").toString(), BINDING.unmarshal("1.123").toString());
assertEquals(new BigDecimal("9223372036854775807.034").toString(), BINDING.unmarshal("9223372036854775807.034").toString());
assertEquals(new BigDecimal("-9223372036854775808.034").toString(), BINDING.unmarshal("-9223372036854775808.034").toString());
assertEquals(new BigDecimal("9223372036854775808.234234324324324").toString(), BINDING.unmarshal("9223372036854775808.234234324324324").toString());
assertEquals(new BigDecimal("-9223372036854775809.234234324324324").toString(), BINDING.unmarshal("-9223372036854775809.234234324324324").toString());
}
@Test
public void testMarshal() {
assertEquals("0", BINDING.marshal(new BigDecimal(0)));
assertEquals("1", BINDING.marshal(new BigDecimal(1)));
assertEquals("9223372036854775808", BINDING.marshal(new BigDecimal(Long.MAX_VALUE).add(BigDecimal.ONE)));
assertEquals("-9223372036854775809", BINDING.marshal(new BigDecimal(Long.MIN_VALUE).subtract(BigDecimal.ONE)));
assertEquals("0.0", BINDING.marshal(new BigDecimal("0.0")));
assertEquals("1.123", BINDING.marshal(new BigDecimal("1.123")));
assertEquals("9223372036854775807.034", BINDING.marshal(new BigDecimal("9223372036854775807.034")));
assertEquals("-9223372036854775808.034", BINDING.marshal(new BigDecimal("-9223372036854775808.034")));
assertEquals("9223372036854775808.234234324324324", BINDING.marshal(new BigDecimal("9223372036854775808.234234324324324")));
assertEquals("-9223372036854775809.234234324324324", BINDING.marshal(new BigDecimal("-9223372036854775809.234234324324324")));
}
}