### Question:
AbstractNamedAFPObject extends AbstractTripletStructuredObject { @Override protected void copySF(byte[] data, byte type, byte category) { super.copySF(data, type, category); byte[] nameData = getNameBytes(); System.arraycopy(nameData, 0, data, 9, nameData.length); } protected  AbstractNamedAFPObject(); protected  AbstractNamedAFPObject(String name); byte[] getNameBytes(); String getName(); void setName(String name); String toString();  }### Answer:
@Test public void testCopySF() { final S sut = getSut(); byte[] expected = new byte[17]; S.copySF(expected, (byte) 0xD3, (byte)0, (byte)0); byte[] nameData = sut.getNameBytes(); System.arraycopy(nameData, 0, expected, 9, nameData.length); byte[] actual = new byte[17]; Arrays.fill(actual, (byte)-1); getSut().copySF(actual, (byte)0, (byte)0); assertTrue(Arrays.equals(actual, expected)); byte[] expected2 = new byte[17]; System.arraycopy(expected, 0, expected2, 0, expected.length); System.arraycopy(nameData, 0, expected, 9, nameData.length); final byte type = (byte)1; final byte catagory = (byte)2; expected2[4] = type; expected2[5] = catagory; getSut().copySF(actual, type, catagory); assertTrue(Arrays.equals(actual, expected2)); }