### Question:
ProductCatalogManager { public ProductCatalog getCatalog(String population) { if (StringUtils.isEmpty(population)) { population = Population.NAME_GENERAL; } return cacheRef.get(population); } @Inject  ProductCatalogManager(ProductCatalogConfig config);  ProductCatalogManager(Resource catalogResource); ProductCatalog getCatalog(String population); void loadCatalogs(Integer version); String getProductCatalogPath(); int getProductCatalogVersion(); Resource getCatalogResource();  }### Answer:
@Test public void testAllProductsExist() throws Exception { ProductCatalog baseProductCat = prodCatalogMgr.getCatalog(basePopulation); assertNotNull(baseProductCat); ProductCatalog productCat = prodCatalogMgr.getCatalog(population); assertNotNull(productCat); AtomicInteger missingCount = new AtomicInteger(0); baseProductCat.getAllProducts().forEach(curProduct -> { ProductCatalogEntry prod = productCat.getProductById(curProduct.getId()); if(prod == null) { missingCount.incrementAndGet(); System.out.println("Product " + curProduct.getId() + " is missing in population " + population); }else{ assertEquals(curProduct, prod); } }); if(missingCount.get() > 0) { fail("There are "+missingCount.get() + " missing product in population "+population); } }