Skip to content

Package: ImportErrors_ITest

ImportErrors_ITest

nameinstructionbranchcomplexitylinemethod
ImportErrors_ITest()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
beforeClass()
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
createComment(Workbook, Sheet, int, int)
M: 0 C: 42
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
setup()
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
tearDown()
M: 0 C: 10
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testAdditionalInformationSheetIgnored()
M: 0 C: 82
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
testBrokenDMR()
M: 0 C: 41
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDMRThatNeedsMigration()
M: 0 C: 45
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testDeleteDMRCellComment()
M: 0 C: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDeleteDMRCellCommentValue()
M: 0 C: 41
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDeletedEObjectID()
M: 0 C: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDeletedEObjectIDCell()
M: 0 C: 39
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDuplicateEObjectID()
M: 0 C: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDuplicateEObjectIDsOnDifferentSheets()
M: 0 C: 44
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testGetSheetLocationInvalidSettingEObject()
M: 0 C: 48
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testGetSheetLocationInvalidSettingFeature()
M: 0 C: 89
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 18
100%
M: 0 C: 1
100%
testGetSheetLocationValidSetting()
M: 0 C: 51
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testInvalidIDColumnName()
M: 0 C: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testNoLabelRow()
M: 0 C: 52
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 13
100%
M: 0 C: 1
100%
testNoObjectIdColumn()
M: 0 C: 86
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 24
100%
M: 0 C: 1
100%
testSheetEmpty()
M: 0 C: 20
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
testUnresolveableDMR()
M: 0 C: 43
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Johannes Faltermeier - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.spreadsheet.integrationtest;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertFalse;
18: import static org.junit.Assert.assertTrue;
19:
20: import java.io.IOException;
21: import java.io.InputStream;
22:
23: import org.apache.poi.hssf.usermodel.HSSFWorkbook;
24: import org.apache.poi.ss.usermodel.Cell;
25: import org.apache.poi.ss.usermodel.ClientAnchor;
26: import org.apache.poi.ss.usermodel.Comment;
27: import org.apache.poi.ss.usermodel.CreationHelper;
28: import org.apache.poi.ss.usermodel.Drawing;
29: import org.apache.poi.ss.usermodel.RichTextString;
30: import org.apache.poi.ss.usermodel.Row;
31: import org.apache.poi.ss.usermodel.Sheet;
32: import org.apache.poi.ss.usermodel.Workbook;
33: import org.apache.poi.ss.util.WorkbookUtil;
34: import org.eclipse.core.runtime.Platform;
35: import org.eclipse.emf.common.util.EList;
36: import org.eclipse.emf.ecore.EClass;
37: import org.eclipse.emf.ecore.EObject;
38: import org.eclipse.emf.ecp.makeithappen.model.task.TaskFactory;
39: import org.eclipse.emf.ecp.makeithappen.model.task.TaskPackage;
40: import org.eclipse.emf.ecp.test.common.DefaultRealm;
41: import org.eclipse.emfforms.spi.spreadsheet.core.EMFFormsIdProvider;
42: import org.eclipse.emfforms.spi.spreadsheet.core.error.model.ErrorReport;
43: import org.eclipse.emfforms.spi.spreadsheet.core.error.model.SheetLocation;
44: import org.eclipse.emfforms.spi.spreadsheet.core.error.model.SpreadsheetImportResult;
45: import org.eclipse.emfforms.spi.spreadsheet.core.transfer.EMFFormsSpreadsheetImporter;
46: import org.junit.After;
47: import org.junit.Before;
48: import org.junit.BeforeClass;
49: import org.junit.Test;
50: import org.osgi.framework.Bundle;
51:
52: // TODO tests are uncomplete. They should be extended after internationalisatio has been added. also not all error cases
53: // are handled yet
54: public class ImportErrors_ITest {
55:
56:         private static Bundle bundle;
57:         private DefaultRealm realm;
58:         private InputStream stream;
59:         private static EClass eClass;
60:
61:         @BeforeClass
62:         public static void beforeClass() {
63:                 bundle = Platform.getBundle("org.eclipse.emfforms.spreadsheet.integrationtest"); //$NON-NLS-1$
64:                 eClass = TaskPackage.eINSTANCE.getUser();
65:         }
66:
67:         @Before
68:         public void setup() {
69:                 realm = new DefaultRealm();
70:         }
71:
72:         @After
73:         public void tearDown() throws IOException {
74:                 realm.dispose();
75:•                if (stream != null) {
76:                         stream.close();
77:                 }
78:         }
79:
80:         @Test
81:         public void testInvalidIDColumnName() throws IOException {
82:                 /* setup */
83:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
84:                 final Workbook workbook = new HSSFWorkbook(stream);
85:                 final Sheet sheet = workbook.getSheetAt(0);
86:                 sheet.getRow(0).getCell(0).setCellValue("FOO"); //$NON-NLS-1$
87:
88:                 /* act */
89:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
90:                         .importSpreadsheet(workbook, eClass);
91:                 final EList<ErrorReport> errorReports = result.getErrorReports();
92:
93:                 /* assert */
94:                 assertEquals(1, errorReports.size());
95:         }
96:
97:         @Test
98:         public void testDeletedEObjectIDCell() throws IOException {
99:                 /* setup */
100:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
101:                 final Workbook workbook = new HSSFWorkbook(stream);
102:                 final Sheet sheet = workbook.getSheetAt(0);
103:                 sheet.getRow(3).removeCell(sheet.getRow(3).getCell(0));
104:
105:                 /* act */
106:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
107:                         .importSpreadsheet(workbook, eClass);
108:                 final EList<ErrorReport> errorReports = result.getErrorReports();
109:
110:                 /* assert */
111:                 assertEquals(1, errorReports.size());
112:         }
113:
114:         @Test
115:         public void testDeletedEObjectID() throws IOException {
116:                 /* setup */
117:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
118:                 final Workbook workbook = new HSSFWorkbook(stream);
119:                 final Sheet sheet = workbook.getSheetAt(0);
120:                 sheet.getRow(3).getCell(0).setCellValue(""); //$NON-NLS-1$
121:
122:                 /* act */
123:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
124:                         .importSpreadsheet(workbook, eClass);
125:                 final EList<ErrorReport> errorReports = result.getErrorReports();
126:
127:                 /* assert */
128:                 assertEquals(1, errorReports.size());
129:         }
130:
131:         @Test
132:         public void testDuplicateEObjectID() throws IOException {
133:                 /* setup */
134:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
135:                 final Workbook workbook = new HSSFWorkbook(stream);
136:                 final Sheet sheet = workbook.getSheetAt(0);
137:                 sheet.getRow(3).getCell(0).setCellValue("_ePW3sEf_EeWXudo7oSyvzQ"); //$NON-NLS-1$
138:
139:                 /* act */
140:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
141:                         .importSpreadsheet(workbook, eClass);
142:                 final EList<ErrorReport> errorReports = result.getErrorReports();
143:
144:                 /* assert */
145:                 assertEquals(1, errorReports.size());
146:         }
147:
148:         @Test
149:         public void testDuplicateEObjectIDsOnDifferentSheets() throws IOException {
150:                 /* setup */
151:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
152:                 final Workbook workbook = new HSSFWorkbook(stream);
153:                 final Sheet sheet2 = workbook.createSheet("Sheet2"); //$NON-NLS-1$
154:                 sheet2.createRow(0).createCell(0).setCellValue(EMFFormsIdProvider.ID_COLUMN);
155:                 sheet2.createRow(3).createCell(0).setCellValue("_5XI6cEG2EeW04_MCsEmiSg"); //$NON-NLS-1$
156:
157:                 /* act */
158:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
159:                         .importSpreadsheet(workbook, eClass);
160:                 final EList<ErrorReport> errorReports = result.getErrorReports();
161:
162:                 /* assert */
163:                 assertEquals(0, errorReports.size());
164:         }
165:
166:         @Test
167:         public void testDeleteDMRCellComment() throws IOException {
168:                 /* setup */
169:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
170:                 final Workbook workbook = new HSSFWorkbook(stream);
171:                 final Sheet sheet = workbook.getSheetAt(0);
172:                 sheet.getRow(0).getCell(1).setCellComment(null);
173:
174:                 /* act */
175:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
176:                         .importSpreadsheet(workbook, eClass);
177:                 final EList<ErrorReport> errorReports = result.getErrorReports();
178:
179:                 /* assert */
180:                 assertEquals(1, errorReports.size());
181:         }
182:
183:         @Test
184:         public void testDeleteDMRCellCommentValue() throws IOException {
185:                 /* setup */
186:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
187:                 final Workbook workbook = new HSSFWorkbook(stream);
188:                 final Sheet sheet = workbook.getSheetAt(0);
189:                 sheet.getRow(0).getCell(1).getCellComment().setString(workbook.getCreationHelper().createRichTextString("")); //$NON-NLS-1$
190:
191:                 /* act */
192:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
193:                         .importSpreadsheet(workbook, eClass);
194:                 final EList<ErrorReport> errorReports = result.getErrorReports();
195:
196:                 /* assert */
197:                 assertEquals(1, errorReports.size());
198:         }
199:
200:         @Test
201:         public void testAdditionalInformationSheetIgnored() throws IOException {
202:                 /* setup */
203:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
204:                 final Workbook workbook = new HSSFWorkbook(stream);
205:                 final Sheet sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName("My Sheet")); //$NON-NLS-1$
206:                 final Row titleRow = sheet.createRow(0);
207:                 final Cell idLabelCell = titleRow.createCell(0);
208:                 idLabelCell.setCellValue(EMFFormsIdProvider.ID_COLUMN);
209:                 idLabelCell.setCellComment(createComment(workbook, sheet, 0, 0));
210:                 titleRow.createCell(1).setCellValue("MyColumn"); //$NON-NLS-1$
211:
212:•                for (int i = 1; i < 5; i++) {
213:                         final Row dataRow = sheet.createRow(i);
214:                         dataRow.createCell(0).setCellValue("_5XI6cEG2EeW04_MCsEmiSg"); //$NON-NLS-1$
215:                         dataRow.createCell(1).setCellValue("My Value " + i); //$NON-NLS-1$
216:                 }
217:
218:                 /* act */
219:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
220:                         .importSpreadsheet(workbook, eClass);
221:                 final EList<ErrorReport> errorReports = result.getErrorReports();
222:
223:                 /* assert */
224:                 assertEquals(0, errorReports.size());
225:         }
226:
227:         private Comment createComment(Workbook workbook, Sheet sheet, int row,
228:                 int column) throws IOException {
229:                 final CreationHelper factory = workbook.getCreationHelper();
230:
231:                 // When the comment box is visible, have it show in a 1x3 space
232:                 final ClientAnchor anchor = factory.createClientAnchor();
233:                 anchor.setCol1(column);
234:                 anchor.setCol2(column + 1);
235:                 anchor.setRow1(row);
236:                 anchor.setRow2(row + 1);
237:
238:                 final Drawing drawing = sheet.createDrawingPatriarch();
239:                 final Comment comment = drawing.createCellComment(anchor);
240:
241:                 comment.setAuthor("EMFForms Spreadsheet Renderer"); //$NON-NLS-1$
242:                 comment.setVisible(false);
243:                 comment.setString(factory.createRichTextString("Ignore Sheet")); //$NON-NLS-1$
244:                 return comment;
245:         }
246:
247:         @Test
248:         public void testBrokenDMR() throws IOException {
249:                 /* setup */
250:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
251:                 final Workbook workbook = new HSSFWorkbook(stream);
252:                 final Sheet sheet = workbook.getSheetAt(0);
253:                 sheet.getRow(0).getCell(1).getCellComment().setString(workbook.getCreationHelper().createRichTextString("foo")); //$NON-NLS-1$
254:
255:                 /* act */
256:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
257:                         .importSpreadsheet(workbook, eClass);
258:                 final EList<ErrorReport> errorReports = result.getErrorReports();
259:
260:                 /* assert */
261:                 assertEquals(1, errorReports.size());
262:         }
263:
264:         @Test
265:         public void testUnresolveableDMR() throws IOException {
266:                 /* setup */
267:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
268:                 final Workbook workbook = new HSSFWorkbook(stream);
269:                 final Sheet sheet = workbook.getSheetAt(0);
270:                 final String dmrForTaskName = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + //$NON-NLS-1$
271:                         "<org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:org.eclipse.emf.ecp.view.model=\"http://org/eclipse/emf/ecp/view/model/170/\">\n" //$NON-NLS-1$
272:                         + "<domainModelEFeature xsi:type=\"ecore:EAttribute\" href=\"http://eclipse/org/emf/ecp/makeithappen/model/task#//User/firstName\"/>\n" //$NON-NLS-1$
273:                         + "<domainModelEReferencePath href=\"http://eclipse/org/emf/ecp/makeithappen/model/task#//Task/assignee\"/>\n" //$NON-NLS-1$
274:                         + "</org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference>\n" + ""; //$NON-NLS-1$ //$NON-NLS-2$
275:                 sheet.getRow(0).getCell(1).getCellComment()
276:                         .setString(workbook.getCreationHelper().createRichTextString(dmrForTaskName));
277:
278:                 /* act */
279:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
280:                         .importSpreadsheet(workbook, eClass);
281:                 final EList<ErrorReport> errorReports = result.getErrorReports();
282:
283:                 /* assert */
284:                 assertEquals(1, errorReports.size());
285:         }
286:
287:         @Test
288:         public void testGetSheetLocationValidSetting() throws IOException {
289:                 /* setup */
290:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
291:                 final Workbook workbook = new HSSFWorkbook(stream);
292:
293:                 /* act */
294:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
295:                         .importSpreadsheet(workbook, eClass);
296:
297:                 final EObject eObject = result.getImportedEObjects().get(1);
298:
299:                 /* assert */
300:                 final SheetLocation lastNameSheetLocation = result
301:                         .getSheetLocation(eObject, TaskPackage.eINSTANCE.getUser_LastName());
302:
303:                 assertEquals("root", lastNameSheetLocation.getSheet()); //$NON-NLS-1$
304:                 assertEquals(2, lastNameSheetLocation.getColumn());
305:                 assertEquals("Last Name*", lastNameSheetLocation.getColumnName()); //$NON-NLS-1$
306:                 assertEquals(4, lastNameSheetLocation.getRow());
307:                 assertTrue(lastNameSheetLocation.isValid());
308:         }
309:
310:         @Test
311:         public void testGetSheetLocationInvalidSettingFeature() throws IOException {
312:                 /* setup */
313:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
314:                 final Workbook workbook = new HSSFWorkbook(stream);
315:                 final Sheet sheet = workbook.getSheetAt(0);
316:•                for (int row = 3; row < 5; row++) {
317:                         sheet.getRow(row).removeCell(sheet.getRow(row).getCell(11));
318:                         sheet.getRow(row).removeCell(sheet.getRow(row).getCell(10));
319:                         sheet.getRow(row).removeCell(sheet.getRow(row).getCell(9));
320:                 }
321:
322:                 /* act */
323:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
324:                         .importSpreadsheet(workbook, eClass);
325:                 final EObject eObject = result.getImportedEObjects().get(0);
326:
327:                 /* assert */
328:                 final SheetLocation sheetLocation = result
329:                         .getSheetLocation(eObject, TaskPackage.eINSTANCE.getUser_DateOfBirth());
330:
331:                 assertEquals("root", sheetLocation.getSheet()); //$NON-NLS-1$
332:                 assertEquals(9, sheetLocation.getColumn());
333:                 assertEquals("Date Of Birth", sheetLocation.getColumnName()); //$NON-NLS-1$
334:                 assertEquals(3, sheetLocation.getRow());
335:                 assertTrue(sheetLocation.isValid());
336:         }
337:
338:         @Test
339:         public void testGetSheetLocationInvalidSettingEObject() throws IOException {
340:                 /* setup */
341:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
342:                 final Workbook workbook = new HSSFWorkbook(stream);
343:
344:                 /* act */
345:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
346:                         .importSpreadsheet(workbook, eClass);
347:                 final EObject eObject = TaskFactory.eINSTANCE.createUser();
348:
349:                 /* assert */
350:                 final SheetLocation sheetLocation = result
351:                         .getSheetLocation(eObject, TaskPackage.eINSTANCE.getUser_FirstName());
352:
353:                 assertEquals("root", sheetLocation.getSheet()); //$NON-NLS-1$
354:                 assertEquals(1, sheetLocation.getColumn());
355:                 assertEquals("First Name", sheetLocation.getColumnName()); //$NON-NLS-1$
356:                 assertEquals(-1, sheetLocation.getRow());
357:                 assertFalse(sheetLocation.isValid());
358:         }
359:
360:         @Test
361:         public void testSheetEmpty() throws IOException {
362:                 /* setup */
363:                 final Workbook workbook = new HSSFWorkbook();
364:                 workbook.createSheet("root"); //$NON-NLS-1$
365:
366:                 /* act */
367:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
368:                         .importSpreadsheet(workbook, eClass);
369:                 assertEquals(1, result.getErrorReports().size());
370:         }
371:
372:         @Test
373:         public void testNoLabelRow() throws IOException {
374:                 /* setup */
375:                 final Workbook workbook = new HSSFWorkbook();
376:                 final Sheet sheet = workbook.createSheet("root"); //$NON-NLS-1$
377:                 final Row rowDescription = sheet.createRow(0);
378:                 rowDescription.createCell(1).setCellValue("My feature description"); //$NON-NLS-1$
379:
380:                 final Row rowMeta = sheet.createRow(1);
381:                 rowMeta.createCell(1).setCellValue("Enter Numbers"); //$NON-NLS-1$
382:
383:                 final Row rowData = sheet.createRow(2);
384:                 rowData.createCell(0).setCellValue("aaa"); //$NON-NLS-1$
385:                 rowData.createCell(1).setCellValue("My Feature Value"); //$NON-NLS-1$
386:                 /* act */
387:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
388:                         .importSpreadsheet(workbook, eClass);
389:                 assertEquals(1, result.getErrorReports().size());
390:         }
391:
392:         @Test
393:         public void testNoObjectIdColumn() throws IOException {
394:                 /* setup */
395:                 final Workbook workbook = new HSSFWorkbook();
396:                 final Sheet sheet = workbook.createSheet("root"); //$NON-NLS-1$
397:                 final Row rowLabel = sheet.createRow(0);
398:                 rowLabel.createCell(0).setCellValue("My feature"); //$NON-NLS-1$
399:
400:                 final CreationHelper factory = workbook.getCreationHelper();
401:
402:                 // When the comment box is visible, have it show in a 1x3 space
403:                 final ClientAnchor anchor = factory.createClientAnchor();
404:                 anchor.setCol1(0);
405:                 anchor.setCol2(1);
406:                 anchor.setRow1(0);
407:                 anchor.setRow2(1);
408:
409:                 final Drawing drawing = sheet.createDrawingPatriarch();
410:                 final Comment comment = drawing.createCellComment(anchor);
411:                 comment.setString(factory.createRichTextString(
412:                         "<?xml version=\"1.0\" encoding=\"UTF-8\"?><org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:org.eclipse.emf.ecp.view.model=\"http://org/eclipse/emf/ecp/view/model/170\"><domainModelEFeature xsi:type=\"ecore:EAttribute\" href=\"http://eclipse/org/emf/ecp/makeithappen/model/task#//User/lastName\"/></org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference>")); //$NON-NLS-1$
413:
414:                 final Row rowDescription = sheet.createRow(1);
415:                 rowDescription.createCell(0).setCellValue("My feature description"); //$NON-NLS-1$
416:
417:                 final Row rowMeta = sheet.createRow(2);
418:                 rowMeta.createCell(0).setCellValue("Enter Numbers"); //$NON-NLS-1$
419:
420:                 final Row rowData = sheet.createRow(3);
421:                 rowData.createCell(0).setCellValue("My Feature Value"); //$NON-NLS-1$
422:                 /* act */
423:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
424:                         .importSpreadsheet(workbook, eClass);
425:                 assertEquals(1, result.getErrorReports().size());
426:         }
427:
428:         @Test
429:         public void testDMRThatNeedsMigration() throws IOException {
430:                 /* setup */
431:                 stream = bundle.getEntry("errorSheets/basexls").openStream(); //$NON-NLS-1$
432:                 final Workbook workbook = new HSSFWorkbook(stream);
433:
434:                 final CreationHelper factory = workbook.getCreationHelper();
435:                 final Sheet sheet = workbook.getSheetAt(0);
436:                 final RichTextString dmr = factory.createRichTextString(
437:                         "<?xml version=\"1.0\" encoding=\"UTF-8\"?><org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\" xmlns:org.eclipse.emf.ecp.view.model=\"http://org/eclipse/emf/ecp/view/model\"><domainModelEFeature xsi:type=\"ecore:EAttribute\" href=\"http://eclipse/org/emf/ecp/makeithappen/model/task#//User/lastName\"/></org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference>"); //$NON-NLS-1$
438:
439:                 sheet.getRow(0).getCell(1).getCellComment()
440:                         .setString(dmr);
441:
442:                 /* act */
443:                 final SpreadsheetImportResult result = EMFFormsSpreadsheetImporter.INSTANCE
444:                         .importSpreadsheet(workbook, eClass);
445:                 final EList<ErrorReport> errorReports = result.getErrorReports();
446:
447:                 /* assert */
448:                 assertEquals(0, errorReports.size());
449:         }
450: }