/*
* (C) Copyright 2014 Nuxeo SA (http://nuxeo.com/) and others.
*
* 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.
*
* Contributors:
* Florent Guillaume
*/
package org.nuxeo.ecm.core.api.model;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class TestDeltaLong {
@Test
public void testDeltaLong() {
DeltaLong dl = DeltaLong.valueOf(Long.valueOf(100), 123);
assertEquals(Long.valueOf(100), dl.getBase());
assertEquals(123, dl.getDelta());
assertEquals(223, dl.longValue());
assertEquals(223, dl.intValue());
assertEquals(223f, dl.floatValue(), 0.0f);
assertEquals(223d, dl.doubleValue(), 0.0d);
assertEquals(Long.valueOf(223), dl.getFullValue());
assertEquals(Long.valueOf(123), dl.getDeltaValue());
assertEquals("223", dl.toString());
}
@Test
public void testDeltaLongNull() {
DeltaLong dl = DeltaLong.valueOf(null, 123);
assertNull(dl.getBase());
assertEquals(123, dl.getDelta());
assertEquals(123, dl.longValue());
assertEquals(123, dl.intValue());
assertEquals(123f, dl.floatValue(), 0.0f);
assertEquals(123d, dl.doubleValue(), 0.0d);
assertEquals(Long.valueOf(123), dl.getFullValue());
assertEquals(Long.valueOf(123), dl.getDeltaValue());
assertEquals("123", dl.toString());
}
@Test
public void testDeltaLong_addDelta() {
DeltaLong dl1 = DeltaLong.valueOf(Long.valueOf(100), 123);
DeltaLong dl2 = DeltaLong.valueOf(Long.valueOf(1000), 555);
DeltaLong added = (DeltaLong) dl1.add(dl2);
assertEquals(Long.valueOf(100), added.getBase());
assertEquals(123 + 555, added.getDelta());
}
@Deprecated
@Test
public void testDeltaLong_addNumber() {
DeltaLong dl = DeltaLong.valueOf(Long.valueOf(100), 123);
Long n = Long.valueOf(1000);
Long added = (Long) dl.add(n);
assertEquals(1123, added.longValue());
}
@Test
public void testDeltaLong_of() {
Number base;
Number n;
DeltaLong dl;
base = null;
n = DeltaLong.valueOf(base, 123);
assertTrue(n instanceof DeltaLong);
dl = (DeltaLong) n;
assertNull(dl.getBase());
assertEquals(123, dl.getDelta());
base = Long.valueOf(100);
n = DeltaLong.valueOf(base, 111);
assertTrue(n instanceof DeltaLong);
dl = (DeltaLong) n;
assertEquals(Long.valueOf(100), dl.getBase());
assertEquals(111, dl.getDelta());
base = DeltaLong.valueOf(Long.valueOf(100), 123);
n = DeltaLong.valueOf(base, 111);
assertTrue(n instanceof DeltaLong);
dl = (DeltaLong) n;
assertEquals(Long.valueOf(100), dl.getBase());
assertEquals(234, dl.getDelta());
n = DeltaLong.valueOf(base, 0);
assertSame(base, n);
}
@Test
public void testEquals() {
DeltaLong dl0 = DeltaLong.valueOf(null, 123);
DeltaLong dl0b = DeltaLong.valueOf(null, 123);
DeltaLong dl1 = DeltaLong.valueOf(Long.valueOf(100), 123);
DeltaLong dl1b = DeltaLong.valueOf(Long.valueOf(100), 123);
DeltaLong dl2 = DeltaLong.valueOf(Long.valueOf(0), 223);
DeltaLong dl2b = DeltaLong.valueOf(Long.valueOf(0), 223);
assertEquals(dl1.longValue(), dl2.longValue());
assertEquals(dl0, dl0);
assertEquals(dl0, dl0b);
assertEquals(dl1, dl1);
assertEquals(dl1, dl1b);
assertEquals(dl2, dl2);
assertEquals(dl2, dl2b);
assertFalse(dl0.equals(dl1));
assertFalse(dl0.equals(dl2));
assertFalse(dl1.equals(dl0));
assertFalse(dl1.equals(dl2));
assertFalse(dl2.equals(dl0));
assertFalse(dl2.equals(dl1));
}
}