p.getProvidedProducts().add(provided1);
p.getProvidedProducts().add(provided2);
p.setDerivedProduct(derivedProd);
p.getDerivedProvidedProducts().add(derivedProvidedProd1);
p.getDerivedProvidedProducts().add(derivedProvidedProd2);
<BUG>when(productCurator.getPoolProvidedProductsCached(p.getId()))
.thenReturn(p.getProvidedProducts());
when(productCurator.getPoolDerivedProvidedProductsCached(p.getId()))
.thenReturn(p.getDerivedProvidedProducts());</BUG>
List<Pool> pools = poolRules.createAndEnrichPools(p, new LinkedList<Pool>());

p.getProvidedProducts().add(provided1);
p.getProvidedProducts().add(provided2);
p.setDerivedProduct(derivedProd);
p.getDerivedProvidedProducts().add(derivedProvidedProd1);
p.getDerivedProvidedProducts().add(derivedProvidedProd2);
when(productCurator.getPoolProvidedProductsCached(p))
.thenReturn(p.getProvidedProducts());
when(productCurator.getPoolDerivedProvidedProductsCached(p))
.thenReturn(p.getDerivedProvidedProducts());
List<Pool> pools = poolRules.createAndEnrichPools(p, new LinkedList<Pool>());
