/** * Validate if BO instances can be created once only with the same primary key and that they can * be queried either via findWithPrimaryKey() or with help of data filters. */ @Test public void CreateOrdersCheck() { DeployedModelDescription model = sf.getQueryService().getModels(DeployedModelQuery.findActiveForId(MODEL_NAME2)).get(0); createOrder(model, 666); try { createOrder(model, 666); Assert.fail("Extected BPMRT03825 error message"); } catch (ObjectExistsException ex) { Assert.assertEquals("Error code", "BPMRT03825", ex.getError().getId()); } String businessObjectQualifiedId = new QName(model.getId(), "Order").toString(); BusinessObjectQuery query = BusinessObjectQuery.findWithPrimaryKey(businessObjectQualifiedId, 666); query.setPolicy(new BusinessObjectQuery.Policy(BusinessObjectQuery.Option.WITH_VALUES)); BusinessObjects bos = sf.getQueryService().getAllBusinessObjects(query); Assert.assertEquals("Objects", 1, bos.getSize()); BusinessObject bo = bos.get(0); List<Value> values = bo.getValues(); Assert.assertEquals("Values", 1, values.size()); checkValue(values, true, "customerId", 666); query = BusinessObjectQuery.findForBusinessObject(businessObjectQualifiedId); query .getFilter() .addOrTerm() .or(DataFilter.isEqual("Order", "customerId", 2)) .or(DataFilter.isEqual("Order", "customerId", 4)); query.setPolicy(new BusinessObjectQuery.Policy(BusinessObjectQuery.Option.WITH_VALUES)); bos = sf.getQueryService().getAllBusinessObjects(query); Assert.assertEquals("Objects", 1, bos.getSize()); bo = bos.get(0); values = bo.getValues(); Assert.assertEquals("Values", 2, values.size()); checkValue(values, true, "customerId", 2, 4); }