/** * @throws NoSuchRecordFieldException * @throws IOException */ @Test public void testComputedField() throws NoSuchRecordFieldException, IOException { List<Panel> panelList = database.getPanels(); for (Panel panel : panelList) { List<Field> fieldList = panel.getFields(); for (Iterator<Record> recordIterator = panel.recordIterator(); recordIterator.hasNext(); ) { Record record = recordIterator.next(); Iterator<Field> fieldIterator = fieldList.iterator(); while (fieldIterator.hasNext()) { Field field = fieldIterator.next(); if (field.getInitialization() != null) { assertTrue(field.getInitialization() != null); if (field.isComputedField()) { assertTrue(field.isComputedField()); assertTrue(record.getValueAsString(field.getNumber()) == null); } else { assertFalse(field.isComputedField()); assertTrue(record.getValueAsString(field.getNumber()) != null); } } else { if (field.getLink() == null || field.getLink().getType() == LinkType.DATA_LINK) { assertTrue(record.getValueAsString(field.getNumber()) != null); } } } } } }