提交 be7e53ba 编写于 作者: C CyrusNajmabadi

Add C# tests.

上级 5346ef0c
......@@ -93,8 +93,10 @@
<AssemblyName>Roslyn.Services.Editor.CSharp.UnitTests</AssemblyName>
<RoslynProjectType>UnitTest</RoslynProjectType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "></PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="PresentationCore" />
......@@ -278,6 +280,7 @@
<Compile Include="Formatting\Indentation\SmartTokenFormatterFormatTokenTests.cs" />
<Compile Include="InlineDeclaration\CSharpInlineDeclarationTests_FixAllTests.cs" />
<Compile Include="InlineDeclaration\CSharpInlineDeclarationTests.cs" />
<Compile Include="UseCollectionInitializer\UseCollectionInitializerTests.cs" />
<Compile Include="UsePatternMatching\CSharpIsAndCastCheckTests_FixAllTests.cs" />
<Compile Include="UsePatternMatching\CSharpIsAndCastCheckTests.cs" />
<Compile Include="UsePatternMatching\CSharpAsAndNullCheckTests.cs" />
......
// 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 System;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CodeFixes;
using Microsoft.CodeAnalysis.CSharp.UseCollectionInitializer;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.Diagnostics;
using Roslyn.Test.Utilities;
using Xunit;
namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.UseCollectionInitializer
{
public partial class UseCollectionInitializerTests : AbstractCSharpDiagnosticProviderBasedUserDiagnosticTest
{
internal override Tuple<DiagnosticAnalyzer, CodeFixProvider> CreateDiagnosticProviderAndFixer(Workspace workspace)
{
return new Tuple<DiagnosticAnalyzer, CodeFixProvider>(
new CSharpUseCollectionInitializerDiagnosticAnalyzer(),
new CSharpUseCollectionInitializerCodeFixProvider());
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestOnVariableDeclarator()
{
await TestAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = [||]new List<int>();
c.Add(1);
}
}",
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = new List<int>()
{
1
};
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestOnAssignmentExpression()
{
await TestAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
List<int> c = null;
c = [||]new List<int>();
c.Add(1);
}
}",
@"
using System.Collections.Generic;
class C
{
void M()
{
List<int> c = null;
c = new List<int>()
{
1
};
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestMissingOnRefAdd()
{
await TestMissingAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = [||]new List<int>();
c.Add(ref i);
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestComplexInitializer()
{
await TestAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
List<int>[] array;
array[0] = [||]new List<int>();
array[0].Add(1);
array[0].Add(2);
}
}",
@"
using System.Collections.Generic;
class C
{
void M()
{
List<int>[] array;
array[0] = new List<int>()
{
1,
2
};
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestNotOnNamedArg()
{
await TestMissingAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = [||]new List<int>();
c.Add(arg: 1);
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestMissingWithExistingInitializer()
{
await TestMissingAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = [||]new List<int>() { 1 };
c.Add(1);
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestFixAllInDocument()
{
await TestAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
List<int>[] array;
array[0] = {|FixAllInDocument:new|} List<int>();
array[0].Add(1);
array[0].Add(2);
array[1] = new List<int>();
array[1].Add(3);
array[1].Add(4);
}
}",
@"
using System.Collections.Generic;
class C
{
void M()
{
List<int>[] array;
array[0] = new List<int>()
{
1,
2
};
array[1] = new List<int>()
{
3,
4
};
}
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestTrivia1()
{
await TestAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = [||]new List<int>();
c.Add(1); // Foo
c.Add(2); // Bar
}
}",
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = new List<int>()
{
1, // Foo
2 // Bar
};
}
}",
compareTokens: false);
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseCollectionInitializer)]
public async Task TestComplexInitializer2()
{
await TestAsync(
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = new [||]Dictionary<int, string>();
c.Add(1, ""x"");
c.Add(2, ""y"");
}
}",
@"
using System.Collections.Generic;
class C
{
void M()
{
var c = new Dictionary<int, string>()
{
{ 1, ""x"" },
{ 2, ""y"" }
};
}
}");
}
}
}
\ No newline at end of file
......@@ -84,6 +84,7 @@ public static class Features
public const string CodeActionsSpellcheck = "CodeActions.Spellcheck";
public const string CodeActionsSuppression = "CodeActions.Suppression";
public const string CodeActionsUseAutoProperty = "CodeActions.UseAutoProperty";
public const string CodeActionsUseCollectionInitializer = "CodeActions.UseCollectionInitializer";
public const string CodeActionsUseExpressionBody = "CodeActions.UseExpressionBody";
public const string CodeActionsUseImplicitType = "CodeActions.UseImplicitType";
public const string CodeActionsUseExplicitType = "CodeActions.UseExplicitType";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册