### Question:
CustomerCore extends Customer { @Override public boolean remRole(Role role) { return Objects.nonNull(roles.remove(role)); } CustomerCore(); @Override boolean addRole(Role role); @Override boolean hasRole(Role role); @Override boolean remRole(Role role); @Override Optional<T> getRole(Role role, Class<T> expectedRole); @Override String toString();  }### Answer:
@Test public void remRole() { var core = new CustomerCore(); core.addRole(Role.Borrower); var bRole = core.getRole(Role.Borrower, BorrowerRole.class); assertTrue(bRole.isPresent()); assertTrue(core.remRole(Role.Borrower)); var empt = core.getRole(Role.Borrower, BorrowerRole.class); assertFalse(empt.isPresent()); }