### Question:
ApplicationRoleObject { public static void main(String[] args) { var customer = Customer.newCustomer(Borrower, Investor); logger.info(" the new customer created : {}", customer); var hasBorrowerRole = customer.hasRole(Borrower); logger.info(" customer has a borrowed role - {}", hasBorrowerRole); var hasInvestorRole = customer.hasRole(Investor); logger.info(" customer has an investor role - {}", hasInvestorRole); customer.getRole(Investor, InvestorRole.class) .ifPresent(inv -> { inv.setAmountToInvest(1000); inv.setName("Billy"); }); customer.getRole(Borrower, BorrowerRole.class) .ifPresent(inv -> inv.setName("Johny")); customer.getRole(Investor, InvestorRole.class) .map(InvestorRole::invest) .ifPresent(logger::info); customer.getRole(Borrower, BorrowerRole.class) .map(BorrowerRole::borrow) .ifPresent(logger::info); }  static void main(String[] args);  }### Answer:
@Test public void shouldExecuteApplicationWithoutException() { assertDoesNotThrow(() -> ApplicationRoleObject.main(new String[]{})); }