### Question:
FsEntryUtils { public static byte[] makeFsEntryKey(byte[] imgID, byte[] path, int dirIndex) { byte[] ret = new byte[ID_LENGTH]; MessageDigest hasher = getHashInstance("MD5"); makeFsEntryKey(ret, imgID, path, dirIndex, hasher); return ret; } FsEntryUtils(); void calcFsEntryID(byte[] result, byte[] imgID, String path, int dirIndex); static byte[] makeFsEntryKey(byte[] imgID, byte[] path, int dirIndex); static void makeFsEntryKey(byte[] result, byte[] img_md5, byte[] path, int dir_index, MessageDigest hasher); static byte[] getImageID(byte[] entryID); static int getImageID(byte[] imgID, byte[] entryID); static int getImageID(byte[] imgID, byte[] entryID, int offset); static final int ID_LENGTH; }### Answer:
@Test public void makeFsEntryKeyTest() { final byte[] path = "goats/goats/goats".getBytes(); final int dir_index = 123456; final byte[] img_md5 = { (byte) 0xa0, (byte) 0x79, (byte) 0xc4, (byte) 0xe7, (byte) 0x79, (byte) 0xcd, (byte) 0x99, (byte) 0x1f, (byte) 0xbb, (byte) 0x8c, (byte) 0xe6, (byte) 0xfa, (byte) 0x49, (byte) 0x47, (byte) 0xdc, (byte) 0x2a }; final byte[] expected = { (byte) 0x31, (byte) 0xa0, (byte) 0x79, (byte) 0xc4, (byte) 0xe7, (byte) 0x79, (byte) 0xcd, (byte) 0x99, (byte) 0x1f, (byte) 0xbb, (byte) 0x8c, (byte) 0xe6, (byte) 0xfa, (byte) 0x49, (byte) 0x47, (byte) 0xdc, (byte) 0x2a, (byte) 0x23, (byte) 0x4b, (byte) 0xf4, (byte) 0x10, (byte) 0x57, (byte) 0x58, (byte) 0xb5, (byte) 0x88, (byte) 0x07, (byte) 0x22, (byte) 0x5c, (byte) 0x26, (byte) 0x15, (byte) 0xc5, (byte) 0x72, (byte) 0x00, (byte) 0x01, (byte) 0xe2, (byte) 0x40 }; assertArrayEquals(expected, makeFsEntryKey(img_md5, path, dir_index)); }