protected String createNewDeviceObject() throws Exception { List<MobileObject> beans = this.runner.getDeviceDatabase().readByStorage(this.runner.getService()); // Create the new ticket on the device MobileObject bean = null; for (MobileObject cour : beans) { if (!cour.isProxy() && !cour.isCreatedOnDevice()) { bean = cour; break; } } MobileObject newTicket = new MobileObject(); newTicket.setStorageId(bean.getStorageId()); newTicket.setValue("name", "This new refrigerator is broken"); // Referenced Nested Properties newTicket.setValue("customerInfo.id", bean.getValue("customerInfo.id")); newTicket.setValue("customerInfo.customerId", bean.getValue("customerInfo.customerId")); newTicket.setValue("customerInfo.name", bean.getValue("customerInfo.name")); newTicket.setValue("customerInfo.comments", bean.getValue("customerInfo.comments")); // Notes for (int i = 0; i < 2; i++) { BeanListEntry note = new BeanListEntry(); note.setProperty("note", "note://" + i + "/added"); IndexingAPIUtil.addBean(newTicket, "notes", note); } // Parts for (int i = 0; i < 2; i++) { BeanListEntry part = new BeanListEntry(); part.setProperty("name", "part://" + i + "/added"); IndexingAPIUtil.addBean(newTicket, "parts", part); } this.runner.create(newTicket); return newTicket.getRecordId(); }
protected void assertBean(MobileObject deviceBean, Ticket serverBean) { // Asserting Object Ids if (!deviceBean.isCreatedOnDevice()) { assertEquals( "Object ids must match!!", deviceBean.getServerRecordId(), serverBean.getTicketId()); } assertEquals("Ticket Names must match!!", deviceBean.getValue("name"), serverBean.getName()); // Asserting Nested Properties if (serverBean.getCustomerInfo() != null) { assertEquals( "Customer Id must match!!", deviceBean.getValue("customerInfo.customerId"), serverBean.getCustomerInfo().getCustomerId()); assertEquals( "Customer Name must match!!", deviceBean.getValue("customerInfo.name"), serverBean.getCustomerInfo().getName()); assertEquals( "Customer Comments must match!!", deviceBean.getValue("customerInfo.comments"), serverBean.getCustomerInfo().getComments()); } if (serverBean.getEquipment() != null) { assertEquals( "Equipment Name must match!!", deviceBean.getValue("equipment.name"), serverBean.getEquipment().getName()); } if (serverBean.getTechnician() != null) { assertEquals( "Technician EmployeeId must match!!", deviceBean.getValue("technician.employeeId"), serverBean.getTechnician().getEmployeeId()); assertEquals( "Technician Name must match!!", deviceBean.getValue("technician.name"), serverBean.getTechnician().getName()); assertEquals( "Technician Status must match!!", deviceBean.getValue("technician.status"), serverBean.getTechnician().getStatus()); } // Asserting Indexed Properties from Server to Device List<Note> notes = serverBean.getNotes(); if (notes != null) { for (Note note : notes) { this.assertNote(deviceBean, note); } } List<Part> parts = serverBean.getParts(); if (parts != null) { for (Part part : parts) { this.assertPart(deviceBean, part); } } // Asserting Indexed Properties from Device to Server BeanList deviceNotes = IndexingAPIUtil.readList(deviceBean, "notes"); for (int i = 0; i < deviceNotes.size(); i++) { if (deviceBean.getValue("notes[" + i + "].note") != null) { this.assertNote(deviceBean, i, notes); } } BeanList deviceParts = IndexingAPIUtil.readList(deviceBean, "parts"); for (int i = 0; i < deviceParts.size(); i++) { if (deviceBean.getValue("parts[" + i + "].name") != null) { this.assertPart(deviceBean, i, parts); } } }