This repository has been archived by the owner on Oct 16, 2020. It is now read-only.
/
PythonResolverTestsHelper.cs
73 lines (61 loc) · 2.22 KB
/
PythonResolverTestsHelper.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom;
using UnitTesting.Tests.Utils;
using ScriptingUtils = ICSharpCode.Scripting.Tests.Utils;
namespace PythonBinding.Tests.Utils
{
public class PythonResolverTestsHelper
{
public ScriptingUtils.MockProjectContent ProjectContent;
public DefaultCompilationUnit CompilationUnit;
public ParseInformation ParseInfo;
public PythonResolver Resolver;
public ResolveResult ResolveResult;
public PythonResolverTestsHelper(string code)
{
ProjectContent = new ScriptingUtils.MockProjectContent();
PythonParser parser = new PythonParser();
string fileName = @"test.py";
CompilationUnit = parser.Parse(ProjectContent, fileName, code) as DefaultCompilationUnit;
ParseInfo = new ParseInformation(CompilationUnit);
Resolver = new PythonResolver();
}
public PythonResolverTestsHelper()
: this(String.Empty)
{
}
public ResolveResult Resolve(string expression)
{
ExpressionResult expressionResult = new ExpressionResult(expression);
PythonResolverContext context = new PythonResolverContext(ParseInfo, expressionResult, String.Empty);
ResolveResult = Resolver.Resolve(context);
return ResolveResult;
}
public ResolveResult Resolve(string expression, string code)
{
ExpressionResult expressionResult = new ExpressionResult(expression);
return Resolve(expressionResult, code);
}
public ResolveResult Resolve(ExpressionResult expressionResult, string code)
{
ResolveResult = Resolver.Resolve(expressionResult, ParseInfo, code);
return ResolveResult;
}
public MemberResolveResult MemberResolveResult {
get { return ResolveResult as MemberResolveResult; }
}
public LocalResolveResult LocalResolveResult {
get { return ResolveResult as LocalResolveResult; }
}
public MethodGroupResolveResult MethodGroupResolveResult {
get { return ResolveResult as MethodGroupResolveResult; }
}
public MockClass CreateClass(string name)
{
return new MockClass(ProjectContent, name);
}
}
}