@Test
  public void testNoMatchLookupMapUserRoleListMapper() throws Exception {
    Map<String, String> lookup = new HashMap<String, String>();
    lookup.put("No Match", "Role1");
    lookup.put("No Match Here Either", "Role2");

    final MondrianLookupMapUserRoleListMapper mapper = new MondrianLookupMapUserRoleListMapper();
    mapper.setLookupMap(lookup);

    mapper.setFailOnEmptyRoleList(true);
    try {
      SecurityHelper.getInstance()
          .runAsUser(
              "admin",
              new Callable<String[]>() {
                @Override
                public String[] call() throws Exception {
                  return mapper.mapConnectionRoles(
                      PentahoSessionHolder.getSession(), "SteelWheelsRoles");
                }
              });
      Assert.fail();
    } catch (PentahoAccessControlException e) {
      // no op.
    }

    mapper.setFailOnEmptyRoleList(false);

    try {
      String[] roles =
          SecurityHelper.getInstance()
              .runAsUser(
                  "admin",
                  new Callable<String[]>() {
                    @Override
                    public String[] call() throws Exception {
                      return mapper.mapConnectionRoles(
                          PentahoSessionHolder.getSession(), "SteelWheelsRoles");
                    }
                  });
      Assert.assertNull(roles);
    } catch (PentahoAccessControlException e) {
      Assert.fail(e.getMessage());
    }
  }