### Question:
ListUtils { public static boolean containsAll(List<byte[]> source, List<byte[]> target) { if (source.size() < target.size()) return false; for (byte[] bytes : target) if (!contains(source, bytes)) { return false; } return true; }  static boolean contains(List<byte[]> source, byte[] target); static boolean containsAll(List<byte[]> source, List<byte[]> target); static boolean intersection(List<byte[]> source, List<byte[]> target);  }### Answer:
@Test public void testContainsAll() { Assert.assertTrue(ListUtils.containsAll( new ArrayList<>(Arrays.asList(new byte[0])), new ArrayList<>(Arrays.asList(new byte[0])))); Assert.assertTrue(ListUtils.containsAll( new ArrayList<>(Arrays.asList(new byte[]{1, 2})), new ArrayList<>(Arrays.asList(new byte[]{1, 2})))); Assert.assertFalse(ListUtils.containsAll( new ArrayList<>(Arrays.asList(new byte[0])), new ArrayList<>(Arrays.asList(new byte[]{1, 2})))); Assert.assertFalse(ListUtils.containsAll( new ArrayList<>(Arrays.asList(new byte[]{1, 2})), new ArrayList<>(Arrays.asList(new byte[]{2, 3, 4})))); Assert.assertFalse(ListUtils.containsAll( new ArrayList<>(Arrays.asList(new byte[]{1, 2})), new ArrayList<>(Arrays.asList(new byte[]{4, 5, 6})))); }