@Test
public void testEmpty() throws Exception {

  List<List<String>> l = new ArrayList<List<String>>();
  
  /* l is empty, therefore the cartesian product should contain one element: the empty set
   * (this models the fact that if you have no restrictions on the presentation policy
   * you can satisfy the policy with the empty set of credentials).
   */
  
  List<ArrayList<String>> cp = CartesianProduct.cartesianProduct(l);
  
  List<List<String>> resultSet = new ArrayList<List<String>>();
  resultSet.add(new ArrayList<String>());
  assertEquals(resultSet, cp);
}