/** * Validate if BusinessObjectQuery returns business objects which are defined in the models * MODEL_NAME2 and MODEL_NAME3. Note: If BusinessObjectsList is executed standalone than * bos.size() == expected.size(). But if it is executed after CheckFiltering2 then bos.size() > * expected.size() because CheckFiltering2 deployes MODEL_NAME3 as a new version. This means that * bos.size() == expected.size()+2 in this case. */ @Test public void BusinessObjectsList() { BusinessObjectQuery query = BusinessObjectQuery.findAll(); query.setPolicy(new BusinessObjectQuery.Policy(BusinessObjectQuery.Option.WITH_DESCRIPTION)); BusinessObjects bos = sf.getQueryService().getAllBusinessObjects(query); List<String> expected = CollectionUtils.newArrayListFromElements( Arrays.asList( new QName(MODEL_NAME2, "Account").toString(), new QName(MODEL_NAME2, "Customer").toString(), new QName(MODEL_NAME2, "Order").toString(), new QName(MODEL_NAME2, "Fund").toString(), new QName(MODEL_NAME2, "FundGroup").toString(), new QName(MODEL_NAME3, "Employee").toString(), new QName(MODEL_NAME3, "Fund").toString())); List<String> removedEntries = CollectionUtils.newArrayList(expected.size()); for (BusinessObject bo : bos) { String qualifiedBOId = new QName(bo.getModelId(), bo.getId()).toString(); if (expected.remove(qualifiedBOId)) { removedEntries.add(qualifiedBOId); } else { Assert.assertTrue( "Not expected entry: " + qualifiedBOId, removedEntries.contains(qualifiedBOId)); } } Assert.assertTrue("Missing business objects: " + expected, expected.isEmpty()); }