test_class.declarator: wrapped
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Codec<String> wrapped;
test_class.type: Codec<String>
test_class.var_name: wrapped
test_class.declarator: sizeExpr
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Expression<Integer, Resolver> sizeExpr;
test_class.type: Expression<Integer, Resolver>
test_class.var_name: sizeExpr
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.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: slice
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BitBuffer slice;
test_class.type: BitBuffer
test_class.var_name: slice
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: channel
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private BitChannel channel;
test_class.type: BitChannel
test_class.var_name: channel
test_class.file: preon-binding/src/test/java/org/codehaus/preon/codec/SlicingCodecTest.java
test_class.identifier: SlicingCodecTest
test_case.body: @Test
      public void testDecoding() throws DecodingException {
          SlicingCodec<String> codec = new SlicingCodec(wrapped, sizeExpr);
          when(sizeExpr.eval(resolver)).thenReturn(13);
          when(buffer.slice(Mockito.anyInt())).thenReturn(slice);
          when(wrapped.decode(any(BitBuffer.class), any(Resolver.class), any(Builder.class))).thenReturn("DONE");
          assertThat(codec.decode(buffer, resolver, builder), is("DONE"));
          verify(sizeExpr).eval(resolver);
          verify(buffer).slice(13);
          verify(wrapped).decode(slice, resolver, builder);
          verifyNoMoreInteractions(wrapped, sizeExpr, builder, buffer, slice, resolver);
      }
test_case.class_method_signature: SlicingCodecTest.testDecoding()
test_case.full_signature: @Test public void testDecoding()
test_case.identifier: testDecoding
test_case.invocations: thenReturn when eval thenReturn when slice anyInt thenReturn when decode any any any assertThat decode is eval verify slice verify decode verify verifyNoMoreInteractions
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDecoding()
focal_class.declarator: sizeExpr
focal_class.modifier: private final
focal_class.original_string: private final Expression<Integer, Resolver> sizeExpr;
focal_class.type: Expression<Integer, Resolver>
focal_class.var_name: sizeExpr
focal_class.declarator: wrapped
focal_class.modifier: private final
focal_class.original_string: private final Codec<T> wrapped;
focal_class.type: Codec<T>
focal_class.var_name: wrapped
focal_class.file: preon-binding/src/main/java/org/codehaus/preon/codec/SlicingCodec.java
focal_class.identifier: SlicingCodec
focal_class.interfaces: implements Codec<T>
focal_class.class_method_signature: SlicingCodec.SlicingCodec(Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.full_signature: public  SlicingCodec(Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.identifier: SlicingCodec
focal_class.modifiers: public
focal_class.parameters: (Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.signature:  SlicingCodec(Codec<T> wrapped, Expression<Integer, Resolver> sizeExpr)
focal_class.class_method_signature: SlicingCodec.decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.full_signature: public T 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: T
focal_class.signature: T decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_class.class_method_signature: SlicingCodec.encode(T value, BitChannel channel, Resolver resolver)
focal_class.full_signature: public void encode(T value, BitChannel channel, Resolver resolver)
focal_class.identifier: encode
focal_class.modifiers: public
focal_class.parameters: (T value, BitChannel channel, Resolver resolver)
focal_class.return: void
focal_class.signature: void encode(T value, BitChannel channel, Resolver resolver)
focal_class.class_method_signature: SlicingCodec.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: SlicingCodec.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: SlicingCodec.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_class.class_method_signature: SlicingCodec.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_method.body: public T decode(BitBuffer buffer, Resolver resolver, Builder builder)
              throws DecodingException {
          BitBuffer slice = buffer
                  .slice(sizeExpr.eval(resolver));
          return wrapped.decode(slice, resolver, builder);
      }
focal_method.class_method_signature: SlicingCodec.decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_method.full_signature: public T decode(BitBuffer buffer, Resolver resolver, Builder builder)
focal_method.identifier: decode
focal_method.invocations: slice eval decode
focal_method.modifiers: public
focal_method.parameters: (BitBuffer buffer, Resolver resolver, Builder builder)
focal_method.return: T
focal_method.signature: T decode(BitBuffer buffer, Resolver resolver, Builder builder)