test_class.declarator: buffer
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BitBuffer buffer;
test_class.type: BitBuffer
test_class.var_name: buffer
test_class.declarator: resolver
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Resolver resolver;
test_class.type: Resolver
test_class.var_name: resolver
test_class.declarator: builder
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Builder builder;
test_class.type: Builder
test_class.var_name: builder
test_class.file: preon-samples/preon-sample-varlength-encoding/src/test/java/org/codehaus/preon/sample/varlength/VariableLengthByteArrayCodecTest.java
test_class.identifier: VariableLengthByteArrayCodecTest
test_case.body: @Test
      public void shouldDecodeMultipleBytes() throws DecodingException {
          VariableLengthByteArrayCodec codec = new VariableLengthByteArrayCodec();
          when(buffer.readAsByte(8)).thenReturn((byte) 0xff).thenReturn((byte) 0x0f);
          byte[] decoded = codec.decode(buffer, resolver, builder);
          assertThat(decoded, is(not(nullValue())));
          assertThat(decoded.length, is(2));
          verify(buffer, times(2)).readAsByte(8);
          verifyNoMoreInteractions(buffer, resolver, builder);
      }
test_case.class_method_signature: VariableLengthByteArrayCodecTest.shouldDecodeMultipleBytes()
test_case.full_signature: @Test public void shouldDecodeMultipleBytes()
test_case.identifier: shouldDecodeMultipleBytes
test_case.invocations: thenReturn thenReturn when readAsByte decode assertThat is not nullValue assertThat is readAsByte verify times verifyNoMoreInteractions
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldDecodeMultipleBytes()
focal_class.file: preon-samples/preon-sample-varlength-encoding/src/main/java/org/codehaus/preon/sample/varlength/VariableLengthByteArrayCodec.java
focal_class.identifier: VariableLengthByteArrayCodec
focal_class.interfaces: implements Codec<byte[]>
focal_class.class_method_signature: VariableLengthByteArrayCodec.decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.full_signature: public byte[] decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.identifier: decode
focal_class.modifiers: public
focal_class.parameters: (BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.return: byte[]
focal_class.signature: byte[] decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.class_method_signature: VariableLengthByteArrayCodec.encode(byte[] value, BitChannel channel, Resolver resolver)
focal_class.full_signature: public void encode(byte[] value, BitChannel channel, Resolver resolver)
focal_class.identifier: encode
focal_class.modifiers: public
focal_class.parameters: (byte[] value, BitChannel channel, Resolver resolver)
focal_class.return: void
focal_class.signature: void encode(byte[] value, BitChannel channel, Resolver resolver)
focal_class.class_method_signature: VariableLengthByteArrayCodec.getSize()
focal_class.full_signature: public Expression<Integer, Resolver> getSize()
focal_class.identifier: getSize
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Expression<Integer, Resolver>
focal_class.signature: Expression<Integer, Resolver> getSize()
focal_class.class_method_signature: VariableLengthByteArrayCodec.getCodecDescriptor()
focal_class.full_signature: public CodecDescriptor getCodecDescriptor()
focal_class.identifier: getCodecDescriptor
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: CodecDescriptor
focal_class.signature: CodecDescriptor getCodecDescriptor()
focal_class.class_method_signature: VariableLengthByteArrayCodec.getTypes()
focal_class.full_signature: public Class<?>[] getTypes()
focal_class.identifier: getTypes
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Class<?>[]
focal_class.signature: Class<?>[] getTypes()
focal_class.class_method_signature: VariableLengthByteArrayCodec.getType()
focal_class.full_signature: public Class<?> getType()
focal_class.identifier: getType
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Class<?>
focal_class.signature: Class<?> getType()
focal_method.body: public byte[] decode(BitBuffer buffer, Resolver resolver, Builder builder) throws DecodingException {
          ByteArrayOutputStream bout = new ByteArrayOutputStream();
          boolean cont = true;
          while (cont) {
              byte b = buffer.readAsByte(8);
              bout.write(b);
              cont = (b & (1 << 7)) > 0;
          }
          return bout.toByteArray();
      }
focal_method.class_method_signature: VariableLengthByteArrayCodec.decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_method.full_signature: public byte[] decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_method.identifier: decode
focal_method.invocations: readAsByte write toByteArray
focal_method.modifiers: public
focal_method.parameters: (BitBuffer buffer, Resolver resolver, Builder builder)
focal_method.return: byte[]
focal_method.signature: byte[] decode(BitBuffer buffer, Resolver resolver, Builder builder)