|
From: <mir...@us...> - 2007-04-13 12:12:26
|
Revision: 2303
http://svn.sourceforge.net/rubyeclipse/?rev=2303&view=rev
Author: mirkostocker
Date: 2007-04-13 05:12:24 -0700 (Fri, 13 Apr 2007)
Log Message:
-----------
minimal implementation of rename module, not really usable yet
Modified Paths:
--------------
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/NodeProvider.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConfig.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_1.activeFile.rb.result
trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/FileTestCase.java
trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TS_NodeWrapper.java
Added Paths:
-----------
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/nodewrapper/ModuleNodeWrapper.java
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithMultipleParents.rb
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithParent.rb
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_SimpleModule.rb
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.result
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.source
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.test_properties
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.result
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.source
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.test_properties
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.result
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.source
trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.test_properties
trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/NodeProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/NodeProvider.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/NodeProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -227,7 +227,9 @@
* Returns the parent of a given node.
*/
public static Node findParentNode(Node rootNode, Node child) {
-
+
+ if (child == null) return null;
+
Collection<Node> allNodes = getAllNodes(rootNode);
for (Node node : allNodes) {
if (containsNode(node.childNodes(), child)) {
@@ -238,7 +240,7 @@
}
public static Node findParentNode(Node rootNode, Node child, Class type) {
- while((child = findParentNode(rootNode, child)) != null) {
+ while((child = findParentNode(rootNode, child)) != null && !(child instanceof RootNode)) {
if(child.getClass().isAssignableFrom(type)) {
return child;
}
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -60,6 +60,7 @@
import org.rubypeople.rdt.refactoring.nodewrapper.AttrAccessorNodeWrapper;
import org.rubypeople.rdt.refactoring.nodewrapper.ClassNodeWrapper;
import org.rubypeople.rdt.refactoring.nodewrapper.INodeWrapper;
+import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
import org.rubypeople.rdt.refactoring.nodewrapper.PartialClassNodeWrapper;
import org.rubypeople.rdt.refactoring.util.NodeUtil;
@@ -306,4 +307,33 @@
}
return newNode;
}
+
+ public static ModuleNodeWrapper getSelectedModuleNode(Node root, int pos) {
+
+ ModuleNode module = (ModuleNode) getSelectedNodeOfType(root, pos, ModuleNode.class);
+ if(module == null) {
+ return null;
+ }
+
+ ArrayList<ModuleNode> modules = new ArrayList<ModuleNode>();
+ modules.add(module);
+ ModuleNode parent = null;
+
+ while(true) {
+ parent = (ModuleNode) NodeProvider.findParentNode(root, module, ModuleNode.class);
+ if(parent == null)
+ break;
+ modules.add(0, parent);
+ module = parent;
+ }
+
+ ModuleNodeWrapper previousWrapper = null;
+ for (ModuleNode node : modules) {
+ ModuleNodeWrapper nodeWrapper = new ModuleNodeWrapper(node, previousWrapper);
+ previousWrapper = nodeWrapper;
+ }
+ return previousWrapper;
+ }
}
+
+
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -31,53 +31,51 @@
import java.util.ArrayList;
import java.util.Collection;
-import org.jruby.ast.ClassNode;
+import org.jruby.ast.IScopingNode;
import org.jruby.ast.Node;
import org.rubypeople.rdt.refactoring.editprovider.FileEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.ReplaceEditProvider;
public class PartialClassesRenameEditProvider {
- private static class PartialClassRenameEdit extends ReplaceEditProvider {
+ private static class ScopingNodeRenameEdit extends ReplaceEditProvider {
- private final ClassNode klass;
+ private final IScopingNode node;
- public PartialClassRenameEdit(ClassNode klass) {
- this.klass = klass;
+ public ScopingNodeRenameEdit(IScopingNode klass) {
+ this.node = klass;
}
@Override
protected int getOffsetLength() {
- return klass.getCPath().getPosition().getEndOffset() - klass.getCPath().getPosition().getStartOffset();
+ return node.getCPath().getPosition().getEndOffset() - node.getCPath().getPosition().getStartOffset();
}
@Override
protected Node getEditNode(int offset, String document) {
- return klass.getCPath();
+ return node.getCPath();
}
@Override
protected int getOffset(String document) {
- return klass.getCPath().getPosition().getStartOffset();
+ return node.getCPath().getPosition().getStartOffset();
}
-
-
}
- private final Collection<ClassNode> classes;
+ private final Collection<? extends IScopingNode> nodes;
private final String newName;
- public PartialClassesRenameEditProvider(Collection<ClassNode> partials, String newName) {
- this.classes = partials;
+ public PartialClassesRenameEditProvider(Collection<? extends IScopingNode> nodes, String newName) {
+ this.nodes = nodes;
this.newName = newName;
}
- protected Collection<FileEditProvider> getEditProviders() {
+ public Collection<FileEditProvider> getEditProviders() {
Collection<FileEditProvider> edits = new ArrayList<FileEditProvider>();
- for(ClassNode klass : classes) {
+ for(IScopingNode klass : nodes) {
klass.getCPath().setName(newName);
- edits.add(new FileEditProvider(klass.getPosition().getFile(), new PartialClassRenameEdit(klass)));
+ edits.add(new FileEditProvider(((Node) klass).getPosition().getFile(), new ScopingNodeRenameEdit(klass)));
}
return edits;
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -1,9 +1,9 @@
package org.rubypeople.rdt.refactoring.core.renamemodule;
-import org.jruby.ast.ModuleNode;
import org.rubypeople.rdt.refactoring.core.IRefactoringConfig;
import org.rubypeople.rdt.refactoring.core.RefactoringConditionChecker;
import org.rubypeople.rdt.refactoring.core.SelectionNodeProvider;
+import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
import org.rubypeople.rdt.refactoring.util.NodeUtil;
public class RenameModuleConditionChecker extends RefactoringConditionChecker {
@@ -27,12 +27,16 @@
public void init(IRefactoringConfig configObj) {
config = (RenameModuleConfig) configObj;
- ModuleNode selectedModule = (ModuleNode) SelectionNodeProvider.getSelectedNodeOfType(config.getDocumentProvider().getActiveFileRootNode(), config.getCarretPosition(), ModuleNode.class);
+ ModuleNodeWrapper selectedModule = SelectionNodeProvider.getSelectedModuleNode(config.getDocumentProvider().getActiveFileRootNode(), config.getCarretPosition());
config.setSelectedModule(selectedModule);
- if(config.getSelectedModule()== null || !NodeUtil.positionIsInNode(config.getCarretPosition(), selectedModule.getCPath())) {
+ if(config.getSelectedModule() == null || caretIsNotOnModuleName(selectedModule)) {
return;
}
- config.setNewName(selectedModule.getCPath().getName());
+ config.setNewName(selectedModule.getName());
}
+ private boolean caretIsNotOnModuleName(ModuleNodeWrapper selectedModule) {
+ return !NodeUtil.positionIsInNode(config.getCarretPosition(), selectedModule.getWrappedNode().getCPath());
+ }
+
}
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConfig.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConfig.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConfig.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -1,15 +1,16 @@
package org.rubypeople.rdt.refactoring.core.renamemodule;
-import org.jruby.ast.ModuleNode;
import org.rubypeople.rdt.refactoring.core.IRefactoringConfig;
import org.rubypeople.rdt.refactoring.documentprovider.IDocumentProvider;
+import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
import org.rubypeople.rdt.refactoring.ui.INewNameReceiver;
public class RenameModuleConfig implements IRefactoringConfig, INewNameReceiver {
private IDocumentProvider doc;
private final int carretPosition;
- private ModuleNode selectedModule;
+ private ModuleNodeWrapper selectedModule;
+ private String newName;
public RenameModuleConfig(IDocumentProvider doc, int carretPosition) {
this.doc = doc;
@@ -24,25 +25,27 @@
this.doc = doc;
}
- public void setNewName(String name) {
- // TODO Auto-generated method stub
-
+ public void setNewName(String newName) {
+ this.newName = newName;
}
public String getSelectedModuleName() {
- // TODO Auto-generated method stub
- return null;
+ return selectedModule != null ? selectedModule.getName() : null;
}
public int getCarretPosition() {
return carretPosition;
}
- public ModuleNode getSelectedModule() {
+ public ModuleNodeWrapper getSelectedModule() {
return selectedModule;
}
- public void setSelectedModule(ModuleNode selectedModule) {
+ public void setSelectedModule(ModuleNodeWrapper selectedModule) {
this.selectedModule = selectedModule;
}
+
+ public String getNewName() {
+ return newName;
+ }
}
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -1,19 +1,33 @@
package org.rubypeople.rdt.refactoring.core.renamemodule;
+import java.util.ArrayList;
import java.util.Collection;
+import org.jruby.ast.IScopingNode;
+import org.rubypeople.rdt.refactoring.core.renameclass.PartialClassesRenameEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.FileMultiEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.IMultiFileEditProvider;
+import org.rubypeople.rdt.refactoring.editprovider.MultiFileEditProvider;
public class RenameModuleEditProvider implements IMultiFileEditProvider {
- public RenameModuleEditProvider(RenameModuleConfig renameModuleConfig) {
- // TODO Auto-generated constructor stub
+ private final RenameModuleConfig config;
+
+ public RenameModuleEditProvider(RenameModuleConfig config) {
+ this.config = config;
}
+
+ private PartialClassesRenameEditProvider getModuleEditProvider() {
+ ArrayList<IScopingNode> modules = new ArrayList<IScopingNode>();
+ modules.add(config.getSelectedModule().getWrappedNode());
+ return new PartialClassesRenameEditProvider(modules, config.getNewName());
+ }
public Collection<FileMultiEditProvider> getFileEditProviders() {
- // TODO Auto-generated method stub
- return null;
+ MultiFileEditProvider fileEdits = new MultiFileEditProvider();
+
+ fileEdits.addEditProviders(getModuleEditProvider().getEditProviders());
+
+ return fileEdits.getFileEditProviders();
}
-
}
Added: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/nodewrapper/ModuleNodeWrapper.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/nodewrapper/ModuleNodeWrapper.java (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/nodewrapper/ModuleNodeWrapper.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,33 @@
+package org.rubypeople.rdt.refactoring.nodewrapper;
+
+import org.jruby.ast.ModuleNode;
+
+public class ModuleNodeWrapper implements INodeWrapper {
+ private final ModuleNode moduleNode;
+ private ModuleNodeWrapper parentModule;
+
+ public ModuleNodeWrapper(ModuleNode moduleNode, ModuleNodeWrapper parentModule) {
+ this.moduleNode = moduleNode;
+ this.parentModule = parentModule;
+ }
+
+ public ModuleNode getWrappedNode() {
+ return moduleNode;
+ }
+
+ public ModuleNodeWrapper getParentModule() {
+ return parentModule;
+ }
+
+ public void setParentModule(ModuleNodeWrapper parentModule) {
+ this.parentModule = parentModule;
+ }
+
+ public String getName() {
+ return moduleNode.getCPath().getName();
+ }
+
+ public String getFullName() {
+ return (parentModule != null ? parentModule.getFullName() + "::" : "") + getName();
+ }
+}
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithMultipleParents.rb
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithMultipleParents.rb (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithMultipleParents.rb 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,10 @@
+module M1
+ module M2
+ module M3
+ module M4
+ module M5
+ end
+ end
+ end
+ end
+end
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithParent.rb
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithParent.rb (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_ModuleWithParent.rb 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,4 @@
+module OuterModule
+ module Modul
+ end
+end
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_SimpleModule.rb
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_SimpleModule.rb (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/nodewrapper/TC_ModuleNodeWrapper_SimpleModule.rb 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,2 @@
+module Modul
+end
\ No newline at end of file
Modified: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_1.activeFile.rb.result
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_1.activeFile.rb.result 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_1.activeFile.rb.result 2007-04-13 12:12:24 UTC (rev 2303)
@@ -1,2 +1,2 @@
-module NewModul
+module NewModule
end
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.result
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.result (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.result 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,8 @@
+module Moral
+ VERY_BAD = 0
+ BAD = 1
+ def Moral.sin(badness)
+ end
+end
+
+wrongdoing = Moral.sin(Moral::VERY_BAD)
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.source
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.source (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.activeFile.rb.source 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,8 @@
+module Modul
+ VERY_BAD = 0
+ BAD = 1
+ def Modul.sin(badness)
+ end
+end
+
+wrongdoing = Modul.sin(Modul::VERY_BAD)
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.test_properties
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.test_properties (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_2.test_properties 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,3 @@
+name=Debug
+pos=8
+activeFile=activeFile.rb
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.result
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.result (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.result 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,11 @@
+module Debug
+ def who_am_i?
+ "#{self.class.name} (\##{self.object_id}): #{self.to_s}"
+ end
+end
+class Phonograph
+ include Debug
+end
+class EightTrack
+ include Debug
+end
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.source
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.source (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.activeFile.rb.source 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,11 @@
+module Debugger
+ def who_am_i?
+ "#{self.class.name} (\##{self.object_id}): #{self.to_s}"
+ end
+end
+class Phonograph
+ include Debugger
+end
+class EightTrack
+ include Debugger
+end
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.test_properties
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.test_properties (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_3.test_properties 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,3 @@
+name=NewModule
+pos=8
+activeFile=activeFile.rb
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.result
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.result (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.result 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,20 @@
+module OuterModule
+ module Module
+ module CentralModule
+ end
+ end
+end
+
+module Module
+ module CentralModule
+ end
+end
+
+module CentralModule
+end
+
+class ModulTest
+ include OuterModule::Module::CentralModule
+ include Module::CentralModule
+ include CentralModule
+end
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.source
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.source (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.activeFile.rb.source 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,20 @@
+module OuterModule
+ module Module
+ module InnerModule
+ end
+ end
+end
+
+module Module
+ module InnerModule
+ end
+end
+
+module InnerModule
+end
+
+class ModulTest
+ include OuterModule::Module::InnerModule
+ include Module::InnerModule
+ include InnerModule
+end
\ No newline at end of file
Added: trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.test_properties
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.test_properties (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/resources/core/renamemodule/rename_module_test_4.test_properties 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,3 @@
+name=NewModule
+pos=8
+activeFile=activeFile.rb
\ No newline at end of file
Modified: trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/FileTestCase.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/FileTestCase.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/FileTestCase.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -34,8 +34,8 @@
public abstract class FileTestCase extends RefactoringTestCase
{
- public FileTestCase(String fileName) {
- super(fileName);
+ public FileTestCase(String name) {
+ super(name);
}
protected String getSource(String file){
Added: trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -0,0 +1,43 @@
+package org.rubypeople.rdt.refactoring.tests.core.nodewrapper;
+
+import org.rubypeople.rdt.refactoring.core.SelectionNodeProvider;
+import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
+import org.rubypeople.rdt.refactoring.tests.FileTestCase;
+
+public class TC_ModuleNodeWrapper extends FileTestCase {
+
+ public TC_ModuleNodeWrapper() {
+ super("Module Node Wrapper");
+ }
+
+ private ModuleNodeWrapper findModule(String file, int position) {
+ return SelectionNodeProvider.getSelectedModuleNode(getRootNode(file),position);
+ }
+
+ public void testSimpleModule() {
+ ModuleNodeWrapper moduleNode = findModule("TC_ModuleNodeWrapper_SimpleModule.rb", 8);
+
+ assertNull(moduleNode.getParentModule());
+ assertNotNull(moduleNode.getWrappedNode());
+ assertEquals("Modul", moduleNode.getName());
+ assertEquals("Modul", moduleNode.getFullName());
+ }
+
+ public void testModuleWithParent() {
+ ModuleNodeWrapper moduleNode = findModule("TC_ModuleNodeWrapper_ModuleWithParent.rb", 31);
+
+ assertNotNull(moduleNode.getParentModule());
+ assertNotNull(moduleNode.getParentModule().getWrappedNode());
+ assertNull(moduleNode.getParentModule().getParentModule());
+ assertNotNull(moduleNode.getWrappedNode());
+ assertEquals("Modul", moduleNode.getName());
+ assertEquals("OuterModule::Modul", moduleNode.getFullName());
+ }
+
+ public void testModuleWithMultipleParents() {
+ ModuleNodeWrapper moduleNode = findModule("TC_ModuleNodeWrapper_ModuleWithMultipleParents.rb", 68);
+
+ assertEquals("M5", moduleNode.getName());
+ assertEquals("M1::M2::M3::M4::M5", moduleNode.getFullName());
+ }
+}
Modified: trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TS_NodeWrapper.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TS_NodeWrapper.java 2007-04-12 23:50:02 UTC (rev 2302)
+++ trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TS_NodeWrapper.java 2007-04-13 12:12:24 UTC (rev 2303)
@@ -35,6 +35,7 @@
TestSuite suite = new TestSuite("Node Wrapper");
suite.addTestSuite(TC_FieldNodeWrapper.class);
suite.addTestSuite(TC_MethodNodeWrapper.class);
+ suite.addTestSuite(TC_ModuleNodeWrapper.class);
return suite;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|