// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Text; using Roslyn.Test.Utilities; using Xunit; namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.Recommendations { public class SetKeywordRecommenderTests : KeywordRecommenderTests { [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAtRoot_Interactive() { VerifyAbsence(SourceCodeKind.Script, @"$$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterClass_Interactive() { VerifyAbsence(SourceCodeKind.Script, @"class C { } $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterGlobalStatement_Interactive() { VerifyAbsence(SourceCodeKind.Script, @"System.Console.WriteLine(); $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterGlobalVariableDeclaration_Interactive() { VerifyAbsence(SourceCodeKind.Script, @"int i = 0; $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotInUsingAlias() { VerifyAbsence( @"using Foo = $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotInEmptyStatement() { VerifyAbsence(AddInsideMethod( @"$$")); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterProperty() { VerifyKeyword( @"class C { int Foo { $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyPrivate() { VerifyKeyword( @"class C { int Foo { private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyAttribute() { VerifyKeyword( @"class C { int Foo { [Bar] $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyAttributeAndPrivate() { VerifyKeyword( @"class C { int Foo { [Bar] private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyGet() { VerifyKeyword( @"class C { int Foo { get; $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyGetAndPrivate() { VerifyKeyword( @"class C { int Foo { get; private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyGetAndAttribute() { VerifyKeyword( @"class C { int Foo { get; [Bar] $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterPropertyGetAndAttributeAndPrivate() { VerifyKeyword( @"class C { int Foo { get; [Bar] private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterGetAccessorBlock() { VerifyKeyword( @"class C { int Foo { get { } $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterGetAccessorBlockAndPrivate() { VerifyKeyword( @"class C { int Foo { get { } private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterGetAccessorBlockAndAttribute() { VerifyKeyword( @"class C { int Foo { get { } [Bar] $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterGetAccessorBlockAndAttributeAndPrivate() { VerifyKeyword( @"class C { int Foo { get { } [Bar] private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterPropertySetKeyword() { VerifyAbsence( @"class C { int Foo { set $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterPropertySetAccessor() { VerifyAbsence( @"class C { int Foo { set; $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotInEvent() { VerifyAbsence( @"class C { event Foo E { $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexer() { VerifyKeyword( @"class C { int this[int i] { $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerPrivate() { VerifyKeyword( @"class C { int this[int i] { private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerAttribute() { VerifyKeyword( @"class C { int this[int i] { [Bar] $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerAttributeAndPrivate() { VerifyKeyword( @"class C { int this[int i] { [Bar] private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGet() { VerifyKeyword( @"class C { int this[int i] { get; $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetAndPrivate() { VerifyKeyword( @"class C { int this[int i] { get; private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetAndAttribute() { VerifyKeyword( @"class C { int this[int i] { get; [Bar] $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetAndAttributeAndPrivate() { VerifyKeyword( @"class C { int this[int i] { get; [Bar] private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetBlock() { VerifyKeyword( @"class C { int this[int i] { get { } $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetBlockAndPrivate() { VerifyKeyword( @"class C { int this[int i] { get { } private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetBlockAndAttribute() { VerifyKeyword( @"class C { int this[int i] { get { } [Bar] $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void AfterIndexerGetBlockAndAttributeAndPrivate() { VerifyKeyword( @"class C { int this[int i] { get { } [Bar] private $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterIndexerSetKeyword() { VerifyAbsence( @"class C { int this[int i] { set $$"); } [WpfFact, Trait(Traits.Feature, Traits.Features.KeywordRecommending)] public void NotAfterIndexerSetAccessor() { VerifyAbsence( @"class C { int this[int i] { set; $$"); } } }