/** Create the control Employee. */ private Employee getControlObject() { List<String> prjIds = new ArrayList<String>(); prjIds.add(PRJ_ID1); prjIds.add(null); prjIds.add(PRJ_ID2); prjIds.add(PRJ_ID3); List<Float> sals = new ArrayList<Float>(); sals.add(Float.valueOf(SAL_1)); sals.add(Float.valueOf(SAL_2)); List<String> pData = new ArrayList<String>(); pData.add(PDATA_1); pData.add(PDATA_2); List<String> cData = new ArrayList<String>(); cData.add(CDATA_1); cData.add(CDATA_2); Employee ctrlEmp = new Employee(); ctrlEmp.id = EMPID; ctrlEmp.projectIds = prjIds; ctrlEmp.salaries = sals; ctrlEmp.privateData = pData; ctrlEmp.characterData = cData; return ctrlEmp; }
/** * Tests XmlDirectCollectionMapping configuration via eclipselink-oxm.xml. Here an unmarshal * operation is performed. * * <p>Positive test. */ public void testDirectCollectionUnmarshal() { // load instance doc String src = PATH + "employee.xml"; InputStream iDocStream = loader.getResourceAsStream(src); if (iDocStream == null) { fail("Couldn't load instance doc [" + src + "]"); } // tweak control object Employee ctrlEmp = getControlObject(); // unmarshal null will result in "" being set in the object ctrlEmp.projectIds.remove(1); ctrlEmp.projectIds.add(1, ""); // 'privateData' is write only ctrlEmp.privateData = null; try { Employee empObj = (Employee) jaxbContext.createUnmarshaller().unmarshal(iDocStream); assertNotNull("Unmarshalled object is null.", empObj); assertTrue("Accessor method was not called as expected", empObj.wasSetCalled); assertTrue("Unmarshal failed: Employee objects are not equal", ctrlEmp.equals(empObj)); } catch (JAXBException e) { e.printStackTrace(); fail("Unmarshal operation failed."); } }
public Object getControlObject() { Employee ctrlEmp = new Employee(); ctrlEmp.firstName = FNAME; ctrlEmp.lastName = LNAME; ctrlEmp.empId = EMPID; ctrlEmp.mgrId = MGRID; ctrlEmp.setProject(PNAME); ctrlEmp.data1 = DATA1; ctrlEmp.data2 = DATA2; ctrlEmp.salary = SALARY; ctrlEmp.privateData = PRIVATE_DATA; ctrlEmp.characterData = CHARACTER_DATA; ctrlEmp.projectId = PROJECT_ID; // 'privateData' is write only ctrlEmp.privateData = null; // JAXB will default a null String to "" ctrlEmp.someString = ""; return ctrlEmp; }
public Object getWriteControlObject() { if (ctrlEmp == null) { ctrlEmp = new Employee(); ctrlEmp.firstName = FNAME; ctrlEmp.lastName = LNAME; ctrlEmp.empId = EMPID; ctrlEmp.mgrId = MGRID; ctrlEmp.setProject(PNAME); ctrlEmp.data1 = DATA1; ctrlEmp.data2 = DATA2; ctrlEmp.salary = SALARY; ctrlEmp.privateData = PRIVATE_DATA; ctrlEmp.characterData = CHARACTER_DATA; ctrlEmp.projectId = PROJECT_ID; ctrlEmp.setSomeString(null); } return ctrlEmp; }