/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.maxcube.internal.message; import java.util.Date; import org.junit.Test; import org.openhab.binding.maxcube.internal.Utils; import junit.framework.Assert; /** * @author Andreas Heil (info@aheil.de) * @since 1.4.0 */ public class UtilsTest { @Test public void fromHexTest() { int ar0 = Utils.fromHex("00"); int ar1 = Utils.fromHex("01"); int ar31 = Utils.fromHex("1F"); int ar255 = Utils.fromHex("FF"); Assert.assertEquals(0, ar0); Assert.assertEquals(1, ar1); Assert.assertEquals(31, ar31); Assert.assertEquals(255, ar255); } @Test public void fromByteTest() { byte b0 = 0; byte b127 = 127; byte b128 = (byte) 128; // overflow due to byte bn128 = -128; // signed bytes byte bn1 = -1; int ar0 = Utils.fromByte(b0); int ar127 = Utils.fromByte(b127); int ar128 = Utils.fromByte(b128); int arn128 = Utils.fromByte(bn128); int arn1 = Utils.fromByte(bn1); Assert.assertEquals(0, ar0); Assert.assertEquals(127, ar127); Assert.assertEquals(128, ar128); Assert.assertEquals(128, arn128); Assert.assertEquals(255, arn1); } @Test public void toHexNoArgTest() { String actualResult = Utils.toHex(); Assert.assertEquals("", actualResult); } @Test public void toHexOneArgTest() { String actualResult = Utils.toHex(15); Assert.assertEquals("0F", actualResult); } @Test public void toHexMultipleArgTest() { String actualResult = Utils.toHex(4863); Assert.assertEquals("12FF", actualResult); } @Test public void resolveDateTimeTest() { int date = Utils.fromHex("858B"); // 05-09-2011 int time = Utils.fromHex("2E"); // 23:00 Date result = Utils.resolveDateTime(date, time); Assert.assertEquals(5, result.getDate()); Assert.assertEquals(9, result.getMonth()); Assert.assertEquals(2011, result.getYear()); Assert.assertEquals(23, result.getHours()); Assert.assertEquals(00, result.getMinutes()); } @Test public void getBitsTest() { boolean b1[] = Utils.getBits(0xFF); Assert.assertEquals(b1.length, 8); for (int i = 0; i < 8; i++) { Assert.assertEquals(true, b1[i]); } boolean b2[] = Utils.getBits(0x5A); Assert.assertEquals(b2.length, 8); Assert.assertEquals(false, b2[0]); Assert.assertEquals(true, b2[1]); Assert.assertEquals(false, b2[2]); Assert.assertEquals(true, b2[3]); Assert.assertEquals(true, b2[4]); Assert.assertEquals(false, b2[5]); Assert.assertEquals(true, b2[6]); Assert.assertEquals(false, b2[7]); } @Test public void hexStringToByteArrayTest() { String s = "000102030AFF"; byte[] result = Utils.hexStringToByteArray(s); Assert.assertEquals(0, result[0] & 0xFF); Assert.assertEquals(1, result[1] & 0xFF); Assert.assertEquals(2, result[2] & 0xFF); Assert.assertEquals(3, result[3] & 0xFF); Assert.assertEquals(10, result[4] & 0xFF); Assert.assertEquals(255, result[5] & 0xFF); } }