blob: f21b54d861f274f636260cfb3f6c77d26f5ab055 [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2008 The University of York.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipse.epsilon.emc.spreadsheets.delete;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Collection;
import org.eclipse.epsilon.emc.spreadsheets.SpreadsheetColumn;
import org.eclipse.epsilon.emc.spreadsheets.SpreadsheetModel;
import org.eclipse.epsilon.emc.spreadsheets.SpreadsheetRow;
import org.eclipse.epsilon.emc.spreadsheets.test.SharedTestMethods;
import org.eclipse.epsilon.emc.spreadsheets.test.TestModelFactory;
import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@RunWith(Parameterized.class)
public class DeleteRowTest {
private SpreadsheetModel model = null;
public DeleteRowTest(SpreadsheetModel model) {
this.model = model;
}
@Parameterized.Parameters
public static Collection<Object[]> models() throws Exception {
String pathToFile = "resources/delete/DeleteRowTest.xlsx";
String pathToConfig = "resources/delete/DeleteRowTestConfig.xml";
return TestModelFactory.getModelsToTest("", pathToFile, pathToConfig, "DeleteRowTest");
}
@Test
public void testRowFromAnotherWorksheet() throws Exception {
SharedTestMethods.clearWorksheet(model, "Sheet1");
SharedTestMethods.clearWorksheet(model, "Sheet2");
String col = "c_2";
SpreadsheetRow rowSheet2_req1 = SharedTestMethods.writeRow(model, "Sheet2", "c_1", "1", col, "REQ1");
SharedTestMethods.writeRow(model, "Sheet1", "c_1", "1", col, rowSheet2_req1);
assertTrue(model.getAllOfKind("Sheet2").size() == 1);
assertTrue(model.getAllOfKind("Sheet1").size() == 1);
try {
model.getWorksheetByType("Sheet1").deleteRow(rowSheet2_req1);
fail("Should not be able to delete row from another worksheet");
}
catch (EolRuntimeException e) {
System.out.println(e.getMessage());
assertTrue(true);
}
assertTrue(model.getAllOfKind("Sheet2").size() == 1);
assertTrue(model.getAllOfKind("Sheet1").size() == 1);
}
@Test
public void testDeleteRegularRow() throws Exception {
SharedTestMethods.clearWorksheet(model, "Sheet3");
String col = "c_2";
SpreadsheetRow rowSheet3 = SharedTestMethods.writeRow(model, "Sheet3", "c_1", "1", col, "REQ3");
assertTrue(model.getAllOfKind("Sheet3").size() == 1);
model.deleteElement(rowSheet3);
assertTrue(model.getAllOfKind("Sheet3").size() == 0);
}
@Test
public void testDeleteReferencingRow() throws Exception {
SharedTestMethods.clearWorksheet(model, "Sheet1");
SharedTestMethods.clearWorksheet(model, "Sheet2");
String col = "c_2";
SpreadsheetColumn columnSheet1 = model.getWorksheetByType("Sheet1").getColumn(col);
SpreadsheetColumn sheet1column0 = model.getWorksheetByType("Sheet1").getColumn("c_1");
SpreadsheetRow rowSheet2_req1 = SharedTestMethods.writeRow(model, "Sheet2", "c_1", "1", col, "REQ1");
SpreadsheetRow rowSheet2_req2 = SharedTestMethods.writeRow(model, "Sheet2", "c_1", "2", col, "REQ2");
SpreadsheetRow rowSheet2_req3 = SharedTestMethods.writeRow(model, "Sheet2", "c_1", "3", col, "REQ3");
assertTrue(model.getAllOfKind("Sheet2").size() == 3);
SpreadsheetRow rowSheet1_req1 = SharedTestMethods.writeRow(model, "Sheet1", "c_1", "1", col, rowSheet2_req1);
SpreadsheetRow rowSheet1_req2 = SharedTestMethods.writeRow(model, "Sheet1", "c_1", "2", col, rowSheet2_req2);
SpreadsheetRow rowSheet1_req3 = SharedTestMethods.writeRow(model, "Sheet1", "c_1", "3", col, rowSheet2_req3);
assertTrue(model.getAllOfKind("Sheet1").size() == 3);
model.deleteElement(rowSheet1_req2);
assertTrue(model.getAllOfKind("Sheet2").size() == 3);
assertTrue(model.getAllOfKind("Sheet1").size() == 2);
assertTrue(model.getAllOfType("Sheet1").get(0).getVisibleCellValue(columnSheet1).equals("REQ1"));
assertTrue(model.getAllOfType("Sheet1").get(0).getVisibleCellValue(sheet1column0).equals("1"));
assertTrue(model.getAllOfType("Sheet1").get(1).getVisibleCellValue(columnSheet1).equals("REQ3"));
assertTrue(model.getAllOfType("Sheet1").get(1).getVisibleCellValue(sheet1column0).equals("3"));
model.deleteElement(rowSheet1_req1);
assertTrue(model.getAllOfKind("Sheet2").size() == 3);
assertTrue(model.getAllOfKind("Sheet1").size() == 1);
assertTrue(model.getAllOfType("Sheet1").get(0).getVisibleCellValue(columnSheet1).equals("REQ3"));
assertTrue(model.getAllOfType("Sheet1").get(0).getVisibleCellValue(sheet1column0).equals("3"));
model.deleteElement(rowSheet1_req3);
assertTrue(model.getAllOfKind("Sheet2").size() == 3);
assertTrue(model.getAllOfKind("Sheet1").size() == 0);
}
}