コード例 #1
0
        public void IsNameTakenMultipleChildSpaces()
        {
            parent.AddChildSpace(child);
            var child2 = new LocalDeclarationSpace();

            parent.AddChildSpace(child2);

            var input   = @"
class Foo
{
	void Bar()
	{
		{
			int $i;
		}
	}
}";
            var context = TestRefactoringContext.Create(input);

            child2.AddDeclaration("i", context.GetNode <VariableInitializer>());

            Assert.That(parent.IsNameUsed("i"), "The declaration was not added to parent correctly.");
            Assert.That(!child.IsNameUsed("i"), "child contained the declaration, event though it shouldn't.");
            Assert.That(child2.IsNameUsed("i"), "child2 did not contain the declaration, event though it should have.");

            Assert.That(!parent.IsNameUsed("j"), "parent contained a non-existent declaration.");
            Assert.That(!child.IsNameUsed("j"), "parent contained a non-existent declaration.");
            Assert.That(!child2.IsNameUsed("j"), "parent contained a non-existent declaration.");
        }
コード例 #2
0
        static LocalDeclarationSpaceVisitor GetVisitor(out TestRefactoringContext context, string input)
        {
            context = TestRefactoringContext.Create(input);
            var visitor = new LocalDeclarationSpaceVisitor();

            context.RootNode.AcceptVisitor(visitor);
            return(visitor);
        }
コード例 #3
0
 protected static void CheckFix(TestRefactoringContext ctx, CodeIssue issue, string expectedOutput, int fixIndex = 0)
 {
     using (var script = ctx.StartScript())
         issue.Actions[fixIndex].Run(script);
     if (expectedOutput != ctx.Text)
     {
         Console.WriteLine("expected:");
         Console.WriteLine(expectedOutput);
         Console.WriteLine("got:");
         Console.WriteLine(ctx.Text);
     }
     Assert.AreEqual(expectedOutput, ctx.Text);
 }
コード例 #4
0
        protected static void CheckFix(TestRefactoringContext ctx, IEnumerable <CodeIssue> issues, string expectedOutput)
        {
            using (var script = ctx.StartScript()) {
                foreach (var issue in issues)
                {
                    issue.Actions.First().Run(script);
                }
            }
            bool pass = expectedOutput == ctx.Text;

            if (!pass)
            {
                Console.WriteLine(ctx.Text);
            }
            Assert.AreEqual(expectedOutput, ctx.Text);
        }
コード例 #5
0
        public void ContainsNameSimpleVariableDeclaration()
        {
            parent.AddChildSpace(child);

            var input   = @"
class Foo
{
	void Bar()
	{
		int $i;
	}
}";
            var context = TestRefactoringContext.Create(input);

            child.AddDeclaration("i", context.GetNode <VariableInitializer>());

            Assert.That(child.ContainsName("i", false), "The declaration was not added to child correctly.");
            Assert.That(!parent.ContainsName("i", false), "parent incorrectly contained the declaration.");
            Assert.That(parent.ContainsName("i", true), "parent did not contain the declaration, event though it should have.");
        }
コード例 #6
0
        protected static void CheckBatchFix(TestRefactoringContext ctx, IEnumerable <CodeIssue> issues, object siblingKey, string expectedOutput)
        {
            using (var script = ctx.StartScript()) {
                foreach (var issue in issues)
                {
                    var actions = issue.Actions.Where(a => a.SiblingKey == siblingKey).ToList();
                    Assert.IsTrue(actions.Count <= 1, "At most a single action expected per sibling key and issue.");
                    actions.First(a => a.SiblingKey == siblingKey).Run(script);
                }
            }
            bool pass = expectedOutput == ctx.Text;

            if (!pass)
            {
                Console.WriteLine("expected:");
                Console.WriteLine(expectedOutput);
                Console.WriteLine("got:");
                Console.WriteLine(ctx.Text);
            }
            Assert.AreEqual(expectedOutput, ctx.Text);
        }
コード例 #7
0
 public void SetUp()
 {
     compilation        = TestRefactoringContext.Create("").Compilation;
     typeResolveContext = compilation.TypeResolveContext;
     intType            = GetIType <int>();
 }
コード例 #8
0
        protected static List <CodeIssue> GetIssuesWithSubIssue(CodeIssueProvider action, string input, string subIssue, out TestRefactoringContext context, bool expectErrors = false)
        {
            context = TestRefactoringContext.Create(input, expectErrors);

            return(new List <CodeIssue> (action.GetIssues(context, subIssue)));
        }
コード例 #9
0
        protected static List <CodeIssue> GetIssues(CodeIssueProvider action, string input, out TestRefactoringContext context, bool expectErrors = false, CSharpParser parser = null)
        {
            context = TestRefactoringContext.Create(input, expectErrors, parser);

            return(new List <CodeIssue> (action.GetIssues(context)));
        }
コード例 #10
0
 protected static void CheckFix(TestRefactoringContext ctx, CodeIssue issue, string expectedOutput, int fixIndex = 0)
 {
     using (var script = ctx.StartScript())
         issue.Actions[fixIndex].Run(script);
     Assert.AreEqual(expectedOutput, ctx.Text);
 }
コード例 #11
0
        RefactoringContext MakeContext(string input, bool expectErrors = false)
        {
            var context = TestRefactoringContext.Create(input, expectErrors);

            return(context);
        }
コード例 #12
0
        protected static List <CodeIssue> GetIssues(ICodeIssueProvider action, string input, out TestRefactoringContext context)
        {
            context = TestRefactoringContext.Create(input);

            return(new List <CodeIssue> (action.GetIssues(context)));
        }