AsKeywordRecommenderTests.cs 4.5 KB
Newer Older
S
Sam Harwell 已提交
1
// Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.
2

C
Cyrus Najmabadi 已提交
3
using System.Threading.Tasks;
4
using Microsoft.CodeAnalysis.Test.Utilities;
5 6 7 8 9 10 11
using Roslyn.Test.Utilities;
using Xunit;

namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.Recommendations
{
    public class AsKeywordRecommenderTests : KeywordRecommenderTests
    {
12
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
13
        public async Task TestNotAtRoot_Interactive()
14
        {
C
Cyrus Najmabadi 已提交
15
            await VerifyAbsenceAsync(SourceCodeKind.Script,
16 17 18
@"$$");
        }

19
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
20
        public async Task TestNotAfterClass_Interactive()
21
        {
C
Cyrus Najmabadi 已提交
22
            await VerifyAbsenceAsync(SourceCodeKind.Script,
23 24 25 26
@"class C { }
$$");
        }

27
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
28
        public async Task TestNotAfterGlobalStatement_Interactive()
29
        {
C
Cyrus Najmabadi 已提交
30
            await VerifyAbsenceAsync(SourceCodeKind.Script,
31 32 33 34
@"System.Console.WriteLine();
$$");
        }

35
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
36
        public async Task TestNotAfterGlobalVariableDeclaration_Interactive()
37
        {
C
Cyrus Najmabadi 已提交
38
            await VerifyAbsenceAsync(SourceCodeKind.Script,
39 40 41 42
@"int i = 0;
$$");
        }

43
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
44
        public async Task TestNotInUsingAlias()
45
        {
C
Cyrus Najmabadi 已提交
46
            await VerifyAbsenceAsync(
47
@"using Goo = $$");
48 49
        }

50
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
51
        public async Task TestNotInEmptyStatement()
52
        {
C
Cyrus Najmabadi 已提交
53
            await VerifyAbsenceAsync(AddInsideMethod(
54 55 56
@"$$"));
        }

57
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
58
        public async Task TestAfterExpr()
59
        {
C
Cyrus Najmabadi 已提交
60
            await VerifyKeywordAsync(AddInsideMethod(
61
@"var q = goo $$"));
62 63
        }

64
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
65
        public async Task TestAfterDottedName()
66
        {
C
Cyrus Najmabadi 已提交
67
            await VerifyKeywordAsync(AddInsideMethod(
68
@"var q = goo.Current $$"));
69 70
        }

J
Jared Parsons 已提交
71
        [WorkItem(543041, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543041")]
72
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
73
        public async Task TestNotAfterVarInForLoop()
74
        {
C
Cyrus Najmabadi 已提交
75
            await VerifyAbsenceAsync(AddInsideMethod(
76 77 78
@"for (var $$"));
        }

J
Jared Parsons 已提交
79
        [WorkItem(1064811, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1064811")]
80
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
81
        public async Task TestNotBeforeFirstStringHole()
82
        {
C
Cyrus Najmabadi 已提交
83
            await VerifyAbsenceAsync(AddInsideMethod(
84 85 86
@"var x = ""\{0}$$\{1}\{2}"""));
        }

J
Jared Parsons 已提交
87
        [WorkItem(1064811, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1064811")]
88
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
89
        public async Task TestNotBetweenStringHoles()
90
        {
C
Cyrus Najmabadi 已提交
91
            await VerifyAbsenceAsync(AddInsideMethod(
92 93 94
@"var x = ""\{0}\{1}$$\{2}"""));
        }

J
Jared Parsons 已提交
95
        [WorkItem(1064811, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1064811")]
96
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
97
        public async Task TestNotAfterStringHoles()
98
        {
C
Cyrus Najmabadi 已提交
99
            await VerifyAbsenceAsync(AddInsideMethod(
100 101 102
@"var x = ""\{0}\{1}\{2}$$"""));
        }

J
Jared Parsons 已提交
103
        [WorkItem(1064811, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1064811")]
104
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
105
        public async Task TestAfterLastStringHole()
106
        {
C
Cyrus Najmabadi 已提交
107
            await VerifyKeywordAsync(AddInsideMethod(
108 109
@"var x = ""\{0}\{1}\{2}"" $$"));
        }
110 111

        [WorkItem(1736, "https://github.com/dotnet/roslyn/issues/1736")]
112
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
C
Cyrus Najmabadi 已提交
113
        public async Task TestNotWithinNumericLiteral()
114
        {
C
Cyrus Najmabadi 已提交
115
            await VerifyAbsenceAsync(AddInsideMethod(
116 117
@"var x = .$$0;"));
        }
118 119 120 121 122

        [WorkItem(28586, "https://github.com/dotnet/roslyn/issues/28586")]
        [Fact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)]
        public async Task TestNotAfterAsync()
        {
C
Cyrus Najmabadi 已提交
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
            await VerifyAbsenceAsync(
@"
using System;

class C
{
    void Goo()
    {
        Bar(async $$
    }

    void Bar(Func<int, string> f)
    {
    }
}");
138
        }
139 140
    }
}