### Question:
RecordImpl implements Record { @Override public String getDeclaration() { final StringBuilder builder = new StringBuilder(); builder.append("record ").append(getName()).append("\n"); builder.append("(\n"); ((StructureImpl) structure).addDeclaration(builder, 1); builder.append(")"); return builder.toString(); } RecordImpl(final String name, final Structure structure, final Record parent);   RecordImpl(final String name, final Structure structure, final Record parent,
            final RecordListImplFactory fixedListFactory, final DynamicRecordListImplFactory varListFactory,
            final RecordImplFactory recordFactory); @Override String getDeclaration(); @Override DynamicRecordList getDynamicList(final String fieldName); @Override short getI2(final String fieldName); @Override boolean getI2Boolean(final String fieldName); @Override int getI4(final String fieldName); @Override String getChar(final String fieldName); @Override Date getDQ8(final String fieldName); @Override double getF8(final String fieldName); @Override RecordList getList(final String fieldName); @Override String getName(); @Override int getNestedLevel(); @Override Record getRecord(final String fieldName); @Override Structure getStructure(); @Override DataType getType(final String fieldName); @Override String getVC(final String fieldName); @Override boolean hasMember(final String fieldName); @Override boolean isRoot(); @Override void setChar(final String fieldName, final String value); @Override void setDQ8(final String fieldName, final Date value); @Override void setI2(final String fieldName, final short value); @Override void setI2(final String fieldName, final boolean value); @Override void setI4(final String fieldName, final int value); @Override void setF8(final String fieldName, final double value); @Override void setVC(final String fieldName, final String value); @Override String toString();  }### Answer:
@Test public void testGetDeclaration() { final Answer<Object> structureAnswer = new Answer<Object>() { @Override public String answer(final InvocationOnMock invocation) throws Throwable { if (!"addDeclaration".equals(invocation.getMethod().getName())) { return null; } final StringBuilder builder = (StringBuilder) invocation.getArguments()[0]; builder.append("declaration"); return null; } }; final StructureImpl structure = mock(StructureImpl.class, structureAnswer); when(structure.getFields()).thenReturn(Arrays.asList(F8_FIELD)); final RecordImpl record = new RecordImpl(ROOT_NAME, structure, null); assertThat(record.getDeclaration()).isEqualTo("record " + ROOT_NAME + "\n(\ndeclaration)"); }