/** @tests java.security.MessageDigest#update(byte[], int, int) */
  @TestTargetNew(
      level = TestLevel.PARTIAL_COMPLETE,
      notes = "",
      method = "update",
      args = {byte[].class, int.class, int.class})
  public void test_updateLB$LILI() {
    MyMessageDigest1 md = new MyMessageDigest1("ABC");
    final byte[] bytes = {1, 2, 3, 4, 5};
    md.update(bytes, 1, 2);
    assertTrue(md.runEngineUpdate2);

    // Regression for HARMONY-1120
    try {
      // buf == null
      md.update(null, 0, 1);
      fail("No expected IllegalArgumentException");
    } catch (IllegalArgumentException e) {
    }
    try {
      // offset + len > buf.length
      md.update(bytes, 0, bytes.length + 1);
      fail("No expected IllegalArgumentException");
    } catch (IllegalArgumentException e) {
    }
    try {
      // offset + len > Integer.MAX_VALUE
      md.update(bytes, Integer.MAX_VALUE, 1);
      fail("No expected IllegalArgumentException");
    } catch (IllegalArgumentException e) {
    }
    // offset<0 and len<0 are passed to provider
    final int offset = -1;
    final int len = -1;
    md =
        new MyMessageDigest1("ABC") {
          @Override
          public void engineUpdate(byte[] arg0, int arg1, int arg2) {
            assertSame("buf", bytes, arg0);
            assertEquals("offset", offset, arg1);
            assertEquals("len", len, arg2);
            runEngineUpdate2 = true;
          }
        };
    md.update(bytes, offset, len);
    assertTrue(md.runEngineUpdate2);
  }
 /** @tests java.security.MessageDigest#update(byte) */
 @TestTargetNew(
     level = TestLevel.COMPLETE,
     notes = "",
     method = "update",
     args = {byte.class})
 public void test_updateLB() {
   MyMessageDigest1 md = new MyMessageDigest1("ABC");
   md.update((byte) 1);
   assertTrue(md.runEngineUpdate1);
 }
 /** @tests java.security.MessageDigest#update(byte[]) */
 @TestTargetNew(
     level = TestLevel.COMPLETE,
     notes = "",
     method = "update",
     args = {byte[].class})
 public void test_updateLB$() {
   MyMessageDigest1 md = new MyMessageDigest1("ABC");
   byte[] b = {1, 2, 3, 4, 5};
   md.update(b);
   assertTrue(md.runEngineUpdate2);
 }
  /** @tests java.security.MessageDigest#update(ByteBuffer) */
  @TestTargetNew(
      level = TestLevel.COMPLETE,
      notes = "",
      method = "update",
      args = {java.nio.ByteBuffer.class})
  public void test_updateLjava_nio_ByteBuffer() {
    MyMessageDigest1 md = new MyMessageDigest1("ABC");
    byte[] b = {1, 2, 3, 4, 5};
    ByteBuffer byteBuffer = ByteBuffer.wrap(b);

    int limit = byteBuffer.limit();
    md.update(byteBuffer);
    assertTrue(md.runEngineUpdate2);
    assertEquals(byteBuffer.limit(), byteBuffer.position());
    assertEquals(limit, byteBuffer.limit());
  }