Skip to content

Package: ViewModelDeleteParticipant_PTest

ViewModelDeleteParticipant_PTest

nameinstructionbranchcomplexitylinemethod
ViewModelDeleteParticipant_PTest(String, String)
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
createAndPopulateProject(String, IProgressMonitor)
M: 0 C: 55
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
createProject(String, IProgressMonitor)
M: 0 C: 15
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
importFileIntoProject(IContainer, File, IProgressMonitor)
M: 0 C: 64
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
parameters()
M: 0 C: 81
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
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%
testCreateChangeIProgressMonitor()
M: 2 C: 86
98%
M: 2 C: 4
67%
M: 2 C: 2
50%
M: 0 C: 17
100%
M: 0 C: 1
100%

Coverage

1: package org.eclipse.emf.ecp.view.model.refactoring;
2:
3: import static org.junit.Assert.assertEquals;
4: import static org.junit.Assert.assertTrue;
5:
6: import java.io.File;
7: import java.io.FileInputStream;
8: import java.io.IOException;
9: import java.io.InputStream;
10: import java.util.Optional;
11:
12: import org.eclipse.core.resources.IContainer;
13: import org.eclipse.core.resources.IFile;
14: import org.eclipse.core.resources.IFolder;
15: import org.eclipse.core.resources.IProject;
16: import org.eclipse.core.resources.IResource;
17: import org.eclipse.core.resources.IWorkspaceRoot;
18: import org.eclipse.core.resources.ResourcesPlugin;
19: import org.eclipse.core.runtime.CoreException;
20: import org.eclipse.core.runtime.IPath;
21: import org.eclipse.core.runtime.IProgressMonitor;
22: import org.eclipse.core.runtime.NullProgressMonitor;
23: import org.eclipse.core.runtime.Path;
24: import org.eclipse.emf.ecp.view.model.presentation.ContributionUtil;
25: import org.eclipse.ltk.core.refactoring.Change;
26: import org.junit.Before;
27: import org.junit.Test;
28: import org.junit.runner.RunWith;
29: import org.junit.runners.Parameterized;
30: import org.junit.runners.Parameterized.Parameters;
31:
32: @RunWith(Parameterized.class)
33: public class ViewModelDeleteParticipant_PTest {
34:
35:         @Parameters(name = "project:{0}")
36:         public static Object[] parameters() {
37:                 return new Object[][] {
38:                         { "multipleEntries", "views/test.view" },
39:                         { "multipleEntriesPaths", "views/test.view" },
40:                         { "multipleEntriesPathsRoot", "test.view" },
41:                         { "lastEntryLastInProperties", "views/test.view" },
42:                         { "lastEntryMidInProperties", "views/test.view" },
43:                         { "lastEntryFirstInProperties", "views/test.view" },
44:                 };
45:         }
46:
47:         private ViewModelDeleteParticipant participant;
48:         private final String projectName;
49:         private final String viewModelToDelete;
50:
51:         public ViewModelDeleteParticipant_PTest(String projectName, String viewModelToDelete) {
52:                 this.projectName = projectName;
53:                 this.viewModelToDelete = viewModelToDelete;
54:         }
55:
56:         @Before
57:         public void setUp() throws Exception {
58:                 participant = new ViewModelDeleteParticipant();
59:         }
60:
61:         private static IProject createProject(String name, IProgressMonitor monitor) throws CoreException {
62:                 final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
63:                 final IProject project = root.getProject(name);
64:                 project.create(monitor);
65:                 project.open(monitor);
66:                 return project;
67:         }
68:
69:         private static IResource importFileIntoProject(IContainer container, File file, IProgressMonitor monitor)
70:                 throws CoreException, IOException {
71:•                if (file.isDirectory()) {
72:                         final IPath folderPath = container.getProjectRelativePath().append(file.getName());
73:                         final IFolder folder = container.getFolder(folderPath);
74:                         folder.create(true, true, monitor);
75:•                        for (final File child : file.listFiles()) {
76:                                 importFileIntoProject(folder, child, monitor);
77:                         }
78:                         return folder;
79:                 }
80:                 final IFile targetResource = container.getFile(new Path(file.getName()));
81:                 final InputStream contentStream = new FileInputStream(file);
82:                 targetResource.create(contentStream, false, monitor);
83:                 contentStream.close();
84:                 return targetResource;
85:
86:         }
87:
88:         private static IProject createAndPopulateProject(String projectName, IProgressMonitor monitor)
89:                 throws CoreException, IOException {
90:                 final IProject project = createProject(projectName, monitor);
91:                 // copy content of the resources equivalent folder
92:                 final String folderName = String.format("/resources/%s/", projectName);//$NON-NLS-1$
93:                 final String resourceFolderPath = new File(".").getAbsolutePath() + folderName;//$NON-NLS-1$
94:                 final File resourceFolder = new File(resourceFolderPath);
95:•                for (final File file : resourceFolder.listFiles()) {
96:                         importFileIntoProject(project, file, monitor);
97:                 }
98:                 return project;
99:         }
100:
101:         @Test
102:         public void testCreateChangeIProgressMonitor() throws CoreException, IOException {
103:                 final IProject project = createAndPopulateProject(projectName, new NullProgressMonitor());
104:                 final IFile viewFile = project.getFile(viewModelToDelete);
105:                 viewFile.delete(true, new NullProgressMonitor());
106:                 participant.initialize(viewFile);
107:                 final Change change = participant.createChange(new NullProgressMonitor());
108:                 change.perform(new NullProgressMonitor());
109:                 // assert project
110:
111:                 final Optional<String> buildProperties = ContributionUtil.parseIFile(project.getFile("build.properties"));
112:                 final Optional<String> buildPropertiesFinal = ContributionUtil
113:                         .parseIFile(project.getFile("build.properties-final"));
114:                 final Optional<String> pluginXml = ContributionUtil.parseIFile(project.getFile("plugin.xml"));
115:                 final Optional<String> pluginXmlFinal = ContributionUtil.parseIFile(project.getFile("plugin.xml-final"));
116:
117:•                assertTrue(buildProperties.isPresent() == buildPropertiesFinal.isPresent());
118:•                assertTrue(pluginXml.isPresent() == pluginXmlFinal.isPresent());
119:                 assertEquals(buildPropertiesFinal.get(), buildProperties.get());
120:•                if (pluginXml.isPresent()) {
121:                         assertEquals(pluginXmlFinal.get(), pluginXml.get());
122:                 }
123:         }
124:
125: }