public static void testGetEmployeeWithFields(DataStore<String, Employee> dataStore) throws Exception { Employee employee = DataStoreTestUtil.createEmployee(); WebPage webpage = createWebPage(); employee.setWebpage(webpage); Employee boss = createBoss(); employee.setBoss(boss); String ssn = employee.getSsn().toString(); dataStore.put(ssn, employee); dataStore.flush(); String[] fields = AvroUtils.getPersistentFieldNames(employee); for(Set<String> subset : StringUtils.powerset(fields)) { if(subset.isEmpty()) continue; Employee after = dataStore.get(ssn, subset.toArray(new String[subset.size()])); Employee expected = Employee.newBuilder().build(); for(String field:subset) { int index = expected.getSchema().getField(field).pos(); expected.put(index, employee.get(index)); } assertEqualEmployeeObjects(expected, after); } }