### Question:
Acl { public Item applyTo(Item item) { checkNotNull(item, "Item cannot be null."); ItemAcl itemAcl = new ItemAcl() .setReaders(getClonedCopy(readers, Collectors.toList())) .setDeniedReaders(getClonedCopy(deniedReaders, Collectors.toList())) .setOwners(getClonedCopy(owners, Collectors.toList())); if (!Strings.isNullOrEmpty(inheritFrom)) { itemAcl .setInheritAclFrom(fragmentId(inheritFrom, inheritFromFragment)) .setAclInheritanceType(inheritType.getCommonForm()); } item.setAcl(itemAcl); return item; } private  Acl(Builder builder); Set<Principal> getReaders(); Set<Principal> getDeniedReaders(); Set<Principal> getOwners(); String getInheritFrom(); String getInheritFromFragment(); InheritanceType getInheritanceType(); Item createFragmentItemOf(String id, String fragment); Item applyTo(Item item); static String fragmentId(String id, String fragment); static String getPrincipalName(String name, String namespace); static Principal getGoogleUserPrincipal(String userId); static Principal getGoogleGroupPrincipal(String groupId); static Principal getCustomerPrincipal(); static Principal getUserPrincipal(String userId); static Principal getUserPrincipal(String userId, String identitySourceId); static Principal getGroupPrincipal(String groupId); static Principal getGroupPrincipal(String groupId, String identitySourceId); static boolean addResourcePrefixUser(Principal user, String identitySourceId); static boolean addResourcePrefixGroup(Principal group, String identitySourceId); static PrincipalType getPrincipalType(Principal p); static Acl createAcl(String permittedUsers, String permittedGroups, String deniedUsers,
      String deniedGroups); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); static final String IDENTITY_SOURCES_PREFIX; static final String IDENTITY_RESOURCE_NAME_FORMAT; static final String USER_RESOURCE_NAME_FORMAT; static final String GROUP_NAME_FORMAT; static final UserPrincipalParser USER_PARSER; static final GroupPrincipalParser GROUP_PARSER; static final String GOOGLE_ACCOUNT_PREFIX; }### Answer:
@Test public void testApplyTo() { Item originItem = new Item().setName("testItem"); Acl acl = new Acl.Builder() .setReaders(user("AllowedUser1", "AllowedUser2")) .setDeniedReaders(group("DeniedGroup")) .setOwners(user("AllowedUser1")) .build(); Item actual = acl.applyTo(originItem); ItemAcl expectedAcl = new ItemAcl() .setReaders( Arrays.asList( new Principal().setUserResourceName("AllowedUser1"), new Principal().setUserResourceName("AllowedUser2"))) .setDeniedReaders( Collections.singletonList(new Principal().setGroupResourceName("DeniedGroup"))) .setOwners( Collections.singletonList(new Principal().setUserResourceName("AllowedUser1"))); Item expected = new Item().setName("testItem").setAcl(expectedAcl); assertEquals(expected, actual); }