@Test public void listByIds() { List<Product> products = new ArrayList<Product>(); List<String> pids = new ArrayList<String>(); for (int i = 0; i < 5; i++) { Product p = TestUtil.createProduct(owner); productCurator.create(p); products.add(p); pids.add(p.getId()); } // ok get first 3 items to lookup List<Product> returned = productCurator.listAllByIds(owner, pids.subList(0, 3)); assertEquals(3, returned.size()); // verify the first 3 were actually returned, and only those 3. assertTrue(returned.contains(products.get(0))); assertTrue(returned.contains(products.get(1))); assertTrue(returned.contains(products.get(2))); assertFalse(returned.contains(products.get(3))); assertFalse(returned.contains(products.get(4))); }
@Test public void testUpdateProduct() { Product original = createTestProduct(); productCurator.create(original); // Will have same ID, but we'll modify other data: Product modified = createTestProduct(); String newName = "new name"; modified.setName(newName); // Hack up the attributes, keep a1, skip a2, modify a3, add a4: Set<ProductAttribute> newAttributes = new HashSet<ProductAttribute>(); newAttributes.add(modified.getAttribute("a1")); ProductAttribute a3 = modified.getAttribute("a3"); a3.setValue("a3-modified"); a3.setProduct(modified); newAttributes.add(a3); ProductAttribute a4 = new ProductAttribute("a4", "a4"); a4.setProduct(modified); newAttributes.add(a4); modified.setAttributes(newAttributes); int initialAttrCount = attributeCurator.listAll().size(); productCurator.createOrUpdate(modified); Product lookedUp = productCurator.lookupById(owner, original.getId()); assertEquals(newName, lookedUp.getName()); assertEquals(3, lookedUp.getAttributes().size()); assertEquals("a1", lookedUp.getAttributeValue("a1")); assertEquals("a3-modified", lookedUp.getAttributeValue("a3")); assertEquals("a4", lookedUp.getAttributeValue("a4")); // TODO: test content merging // Old attributes should get cleaned up: assertEquals(initialAttrCount, attributeCurator.listAll().size()); }