net.michaelpigg.xbeelib.protocol.XbeeAddressTest.java Source code

Java tutorial

Introduction

Here is the source code for net.michaelpigg.xbeelib.protocol.XbeeAddressTest.java

Source

/**
 * Copyright (c) 2009, Pigg Logic, LLC
 * All rights reserved.
 *
 * This code is provided under a modified BSD license as provided in the the file LICENSE.TXT
 */

package net.michaelpigg.xbeelib.protocol;

import org.apache.commons.codec.DecoderException;
import static org.testng.Assert.assertEquals;
import static java.util.Arrays.copyOf;
import java.util.Arrays;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang.ArrayUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class XbeeAddressTest {

    private final Logger logger = LoggerFactory.getLogger(XbeeAddressTest.class);

    final static byte[] TEST_LOW = { (byte) 0x40, (byte) 0x31, (byte) 0x08, (byte) 0x05 };
    final static byte[] TEST_HIGH = { (byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00 };
    final static byte[] TEST_ADDR = { (byte) 0x01, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0x31,
            (byte) 0x08, (byte) 0x05 };
    final static String TEST_ADDR_STR = "0113A20040310805";

    public void test64BitAddress() {
        XbeeAddress xaddr = XbeeAddress.getAddress(TEST_ADDR);
        Assert.assertEquals(xaddr.getAddress(), TEST_ADDR);
        Assert.assertEquals(xaddr.toString().toLowerCase(), TEST_ADDR_STR.toLowerCase());
    }

    public void test16BitAddress() {
        XbeeAddress xaddr = XbeeAddress.getAddress(new byte[] { 0x03 });
        Assert.assertEquals(xaddr.getAddress(), new byte[] { 0x00, 0x03 });
        Assert.assertEquals(xaddr.toString(), "0003");
    }

    @Test(expectedExceptions = IllegalArgumentException.class)
    public void testInvalidAddress() {
        XbeeAddress.getAddress(new byte[] { 0x1, 0x2, 0x3 });
    }

    private final Hex hex = new Hex("UTF-8");

    public void test16BitCombinedAddress() throws DecoderException {
        logger.info("test16BitCombinedAddress");
        XbeeAddress address = XbeeAddress.getAddress(new byte[] { 0x0, 0x1 });
        byte[] combinedAddress = address.getCombinedAddress();

        final byte[] expected = ArrayUtils.addAll(XbeeAddress.BROADCAST_64_BIT, new byte[] { 0x0, 0x1 });
        logger.info("actual value {}", Hex.encodeHexString(combinedAddress));
        logger.info("expected value {}", Hex.encodeHexString(expected));
        assertEquals(combinedAddress, expected);
    }

    public void test64BitCombinedAddress() throws DecoderException {
        logger.info("test64BitCombinedAddress");
        XbeeAddress address = XbeeAddress.getAddress(TEST_ADDR);
        byte[] combinedAddress = address.getCombinedAddress();

        final byte[] expected = ArrayUtils.addAll(TEST_ADDR, XbeeAddress.BROADCAST_16_BIT);
        logger.info("actual value {}", Hex.encodeHexString(combinedAddress));
        logger.info("expected value {}", Hex.encodeHexString(expected));
        assertEquals(combinedAddress, expected);
    }

}