Package org.nfctools.mf.tlv

Source Code of org.nfctools.mf.tlv.TlvTest

/**
* Copyright 2011-2012 Adrian Stabiszewski, as@nfctools.org
*
* 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.nfctools.mf.tlv;

import static org.junit.Assert.*;

import java.io.ByteArrayInputStream;

import org.junit.Test;
import org.nfctools.tags.TagOutputStream;

public class TlvTest {

  @Test
  public void testTlvWriter() throws Exception {

    TagOutputStream out = new TagOutputStream(7);
    TypeLengthValueWriter writer = new TypeLengthValueWriter(out);

    writer.write(new NdefMessageTlv(new byte[] { 0x01, 0x02, 0x03, 0x04 }));
    writer.close();

    byte[] writtenData = out.getBuffer();

    byte[] expectedData = { 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, (byte)0xFE };

    assertArrayEquals(expectedData, writtenData);

  }

  @Test
  public void testTlvReader() throws Exception {

    byte[] data = { 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, (byte)0xFE };
    byte[] expectedData = { 0x01, 0x02, 0x03, 0x04 };
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    TypeLengthValueReader reader = new TypeLengthValueReader(bais);

    assertTrue(reader.hasNext());
    NdefMessageTlv readData = (NdefMessageTlv)reader.next();
    assertFalse(reader.hasNext());

    assertArrayEquals(expectedData, readData.getNdefMessage());
  }

  @Test
  public void testTlvReader2() throws Exception {

    byte[] data = { 0x03, (byte)0xFF, 0x02, (byte)0x99, (byte)0xC1, 0x02, 0x00, 0x00, 0x02, (byte)0x91, 0x53, 0x70,
        (byte)0x91, 0x01, 0x10, 0x54, 0x02, 0x64, 0x65, 0x53, 0x4D, 0x53, 0x20, 0x66, (byte)0xC3, (byte)0xBC,
        0x72, 0x20, 0x64, 0x69, 0x63, 0x68, 0x41, 0x01, 0x00, 0x00, 0x02, 0x76, 0x55, 0x00, 0x73, 0x6D, 0x73,
        0x3A, 0x2B, 0x34, 0x39, 0x31, 0x37, 0x33, 0x33, 0x30, 0x30, 0x31, 0x36, 0x33, 0x39, 0x3F, 0x62, 0x6F,
        0x64, 0x79, 0x3D, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55,
        0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74,
        0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42,
        0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D,
        0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68,
        0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E,
        0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E,
        0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C,
        0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65,
        0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65,
        0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64,
        0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B,
        0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61,
        0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68,
        0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E,
        0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B,
        0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D,
        0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62,
        0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72,
        0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56,
        0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D,
        0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61,
        0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C,
        0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B,
        0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69,
        0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F,
        0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C,
        0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61,
        0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54,
        0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65,
        0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E, 0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63,
        0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65, 0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B,
        0x73, 0x65, 0x68, 0x65, 0x6E, 0x56, 0x69, 0x65, 0x6C, 0x2B, 0x42, 0x6C, 0x61, 0x62, 0x6C, 0x61, 0x2E,
        0x2B, 0x55, 0x6E, 0x64, 0x2B, 0x6D, 0x6F, 0x63, 0x68, 0x2B, 0x6D, 0x65, 0x68, 0x72, 0x2B, 0x54, 0x65,
        0x78, 0x74, 0x2E, 0x2B, 0x4D, 0x61, 0x6C, 0x2B, 0x73, 0x65, 0x68, 0x65, 0x6E, 0x25, 0x32, 0x43, 0x2B,
        0x6F, 0x62, 0x2B, 0x64, 0x61, 0x73, 0x2B, 0x6B, 0x6C, 0x61, 0x70, 0x70, 0x74, 0x2E, (byte)0xFE, 0x00,
        0x00 };
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    TypeLengthValueReader reader = new TypeLengthValueReader(bais);

    assertTrue(reader.hasNext());
    NdefMessageTlv readData = (NdefMessageTlv)reader.next();
    assertFalse(reader.hasNext());

    assertEquals(665, readData.getNdefMessage().length);
  }

  @Test
  public void testLargeData() throws Exception {
    byte[] largeData = new byte[1024];
    byte[] expectedData = new byte[1029];

    expectedData[0] = 0x03;
    expectedData[1] = (byte)0xFF;
    expectedData[2] = 0x04;
    expectedData[3] = 0x00;
    expectedData[1028] = (byte)0xFE;

    TagOutputStream out = new TagOutputStream(1029);
    TypeLengthValueWriter writer = new TypeLengthValueWriter(out);

    writer.write(new NdefMessageTlv(largeData));
    writer.close();

    byte[] writtenData = out.getBuffer();

    assertArrayEquals(expectedData, writtenData);

  }

}
TOP

Related Classes of org.nfctools.mf.tlv.TlvTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.