⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scopevarvisitortestcase.java

📁 Python Development Environment (Python IDE plugin for Eclipse). Features editor, code completion, re
💻 JAVA
字号:
package org.python.pydev.refactoring.tests.visitors;

import java.util.Iterator;

import org.eclipse.jface.text.Document;
import org.python.pydev.refactoring.ast.adapters.ClassDefAdapter;
import org.python.pydev.refactoring.ast.adapters.FunctionDefAdapter;
import org.python.pydev.refactoring.ast.adapters.IClassDefAdapter;
import org.python.pydev.refactoring.ast.adapters.ModuleAdapter;
import org.python.pydev.refactoring.ast.adapters.SimpleAdapter;
import org.python.pydev.refactoring.ast.visitors.VisitorFactory;
import org.python.pydev.refactoring.ast.visitors.context.ScopeVariablesVisitor;
import org.python.pydev.refactoring.tests.adapter.PythonNatureStub;
import org.python.pydev.refactoring.tests.core.AbstractIOTestCase;

public class ScopeVarVisitorTestCase extends AbstractIOTestCase {

	public ScopeVarVisitorTestCase(String name) {
		super(name);
	}

	@Override
	public void runTest() throws Throwable {
		StringBuffer buffer = new StringBuffer();
		ModuleAdapter module = VisitorFactory.createModuleAdapter(null, null, new Document(getSource()), new PythonNatureStub());

		for (FunctionDefAdapter func : module.getFunctions()) {

			ScopeVariablesVisitor visitor = VisitorFactory.createContextVisitor(ScopeVariablesVisitor.class, func.getASTNode(), module,
					func);

			printAttributes(buffer, visitor, func.getName());
		}
		for (IClassDefAdapter clazz : module.getClasses()) {
		    ClassDefAdapter c = (ClassDefAdapter) clazz;
			ScopeVariablesVisitor visitor = VisitorFactory.createContextVisitor(ScopeVariablesVisitor.class, c.getASTNode(), module, c);

			printAttributes(buffer, visitor, clazz.getName());
		}

		this.setTestGenerated(buffer.toString().trim());

		assertEquals(getExpected(), getGenerated());
	}

	private void printAttributes(StringBuffer buffer, ScopeVariablesVisitor scopeVisitor, String scopeName) {
		Iterator<SimpleAdapter> iter = scopeVisitor.iterator();
		buffer.append("\n# " + scopeName + " " + scopeVisitor.getAll().size() + "\n");
		while (iter.hasNext()) {
			SimpleAdapter adapter = iter.next();
			buffer.append("## " + adapter.getName() + "\n");
		}
	}

	@Override
	public String getExpected() {
		return getResult();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -