mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

abobrov
31.55.2008 ccff1bc205722a94e386c3cfe44852ab55430886
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/asn1/TestASN1Long.java
@@ -135,6 +135,55 @@
  /**
   * Tests that negative integers are encoded according
   * to ASN.1 BER specification.
   *
   * @throws  Exception  If an unexpected problem occurs.
   */
  @Test()
  public void testNegativeLongEncoding()
         throws Exception
  {
    byte[] value = null;
    // Some negative integers of interest
    // to test specific ranges/boundaries.
    value = ASN1Long.encodeLongValue(-1L);
    assertEquals(value[0], (byte) 0xFF);
    value = ASN1Long.encodeLongValue(-2L);
    assertEquals(value[0], (byte) 0xFE);
    value = ASN1Long.encodeLongValue(-127L);
    assertEquals(value[0], (byte) 0x81);
    value = ASN1Long.encodeLongValue(-128L);
    assertEquals(value[0], (byte) 0x80);
    value = ASN1Long.encodeLongValue(-255L);
    assertEquals(value[0], (byte) 0xFF);
    assertEquals(value[1], (byte) 0x01);
    value = ASN1Long.encodeLongValue(-256L);
    assertEquals(value[0], (byte) 0xFF);
    assertEquals(value[1], (byte) 0x00);
    value = ASN1Long.encodeLongValue(-65535L);
    assertEquals(value[0], (byte) 0xFF);
    assertEquals(value[1], (byte) 0x00);
    assertEquals(value[2], (byte) 0x01);
    value = ASN1Long.encodeLongValue(-65536L);
    assertEquals(value[0], (byte) 0xFF);
    assertEquals(value[1], (byte) 0x00);
    assertEquals(value[2], (byte) 0x00);
    value = ASN1Long.encodeLongValue(-2147483647L);
    assertEquals(value[0], (byte) 0x80);
    assertEquals(value[1], (byte) 0x00);
    assertEquals(value[2], (byte) 0x00);
    assertEquals(value[3], (byte) 0x01);
    value = ASN1Long.encodeLongValue(-2147483648L);
    assertEquals(value[0], (byte) 0x80);
    assertEquals(value[1], (byte) 0x00);
    assertEquals(value[2], (byte) 0x00);
    assertEquals(value[3], (byte) 0x00);
  }
  /**
   * Tests the <CODE>setValue</CODE> method that takes a long argument.
   *
   * @param  l  The long value to use for the test.