2
// SetterDoesNotUseValueParameterTests.cs
5
// Simon Lindgren <simon.n.lindgren@gmail.com>
7
// Copyright (c) 2012 Simon Lindgren
9
// Permission is hereby granted, free of charge, to any person obtaining a copy
10
// of this software and associated documentation files (the "Software"), to deal
11
// in the Software without restriction, including without limitation the rights
12
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
// copies of the Software, and to permit persons to whom the Software is
14
// furnished to do so, subject to the following conditions:
16
// The above copyright notice and this permission notice shall be included in
17
// all copies or substantial portions of the Software.
19
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27
using NUnit.Framework;
28
using ICSharpCode.NRefactory.CSharp.Refactoring;
29
using ICSharpCode.NRefactory.CSharp.CodeActions;
31
namespace ICSharpCode.NRefactory.CSharp.CodeIssues
33
public class ValueParameterUnusedTests : InspectionActionTestBase
36
public void TestPropertySetter()
52
TestRefactoringContext context;
53
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
54
Assert.AreEqual(1, issues.Count);
58
public void TestMatchingIndexerSetter()
68
TestRefactoringContext context;
69
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
70
Assert.AreEqual(1, issues.Count);
74
public void TestMatchingEventAdder()
78
delegate void TestEventHandler ();
79
TestEventHandler eventTested;
80
event TestEventHandler EventTested
89
TestRefactoringContext context;
90
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
91
Assert.AreEqual(1, issues.Count);
95
public void TestNonMatchingIndexerSetter()
106
TestRefactoringContext context;
107
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
108
Assert.AreEqual(0, issues.Count);
112
public void IgnoresAutoSetter()
114
var input = @"class A
116
string Property { set; }
118
TestRefactoringContext context;
119
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
120
Assert.AreEqual(0, issues.Count);
124
public void IgnoreReadOnlyProperty()
126
var input = @"class A
128
string Property { get; }
130
TestRefactoringContext context;
131
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
132
Assert.AreEqual(0, issues.Count);
136
public void DoesNotCrashOnNullIndexerAccessorBody()
138
var input = @"abstract class A
140
public abstract string this[int i] { get; set; }
142
TestRefactoringContext context;
143
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
144
Assert.AreEqual(0, issues.Count);
148
public void DoesNotWarnOnExceptionThrowingAccessor()
150
var input = @"abstract class A
152
public string Property
155
throw new Exception();
159
TestRefactoringContext context;
160
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
161
Assert.AreEqual(0, issues.Count);
165
public void DoesNotWarnOnEmptyCustomEvent()
167
// Empty custom events are often used when the event can never be raised
168
// by a class (but the event is required e.g. due to an interface).
169
var input = @"class A
171
delegate void TestEventHandler ();
172
event TestEventHandler EventTested
178
TestRefactoringContext context;
179
var issues = GetIssues(new ValueParameterUnusedIssue(), input, out context);
180
Assert.AreEqual(0, issues.Count);