@Before
  public void setUp() {
    cal = Calendar.getInstance();

    owner = createOwner();
    ownerCurator.create(owner);

    environment = new Environment("env1", "Env 1", owner);
    envCurator.create(environment);

    consumer = createConsumer(owner);
    consumer.setEnvironment(environment);
    consumerCurator.create(consumer);

    Product product = TestUtil.createProduct();
    productCurator.create(product);

    Pool firstPool =
        createPoolAndSub(owner, product, 1L, dateSource.currentDate(), createDate(2020, 1, 1));
    poolCurator.create(firstPool);

    firstCertificate = createEntitlementCertificate("key", "certificate");

    firstEntitlement = createEntitlement(owner, consumer, firstPool, firstCertificate);
    entitlementCurator.create(firstEntitlement);

    Product product1 = TestUtil.createProduct();
    productCurator.create(product1);

    Pool secondPool =
        createPoolAndSub(owner, product1, 1L, dateSource.currentDate(), createDate(2020, 1, 1));
    poolCurator.create(secondPool);

    secondCertificate = createEntitlementCertificate("key", "certificate");

    secondEntitlement = createEntitlement(owner, consumer, secondPool, secondCertificate);
    entitlementCurator.create(secondEntitlement);

    overlappingDate = createDate(2010, 2, 1);
    futureDate = createDate(2050, 1, 1);
    pastDate = createDate(1998, 1, 1);

    parentProduct = TestUtil.createProduct();
    providedProduct1 = TestUtil.createProduct();
    providedProduct2 = TestUtil.createProduct();
    productCurator.create(parentProduct);
    productCurator.create(providedProduct1);
    productCurator.create(providedProduct2);
  }