-
Notifications
You must be signed in to change notification settings - Fork 29
/
Method_modifiers.cs
178 lines (163 loc) · 4.52 KB
/
Method_modifiers.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
using PublicApiGeneratorTests.Examples;
using Xunit;
namespace PublicApiGeneratorTests
{
public class Method_modifiers : ApiGeneratorTestsBase
{
[Fact]
public void Should_output_static_modifier()
{
AssertPublicApi<ClassWithStaticMethod>(
@"namespace PublicApiGeneratorTests.Examples
{
public class ClassWithStaticMethod
{
public ClassWithStaticMethod() { }
public static void DoSomething() { }
}
}");
}
[Fact]
public void Should_output_abstract_modifier()
{
AssertPublicApi<ClassWithAbstractMethod>(
@"namespace PublicApiGeneratorTests.Examples
{
public abstract class ClassWithAbstractMethod
{
protected ClassWithAbstractMethod() { }
public abstract void DoSomething();
}
}");
}
[Fact]
public void Should_output_virtual_modifier()
{
AssertPublicApi<ClassWithVirtualMethod>(
@"namespace PublicApiGeneratorTests.Examples
{
public class ClassWithVirtualMethod
{
public ClassWithVirtualMethod() { }
public virtual void DoSomething() { }
}
}");
}
[Fact]
public void Should_output_override_modifier()
{
AssertPublicApi<ClassWithOverridingMethod>(
@"namespace PublicApiGeneratorTests.Examples
{
public class ClassWithOverridingMethod : PublicApiGeneratorTests.Examples.ClassWithVirtualMethod
{
public ClassWithOverridingMethod() { }
public override void DoSomething() { }
}
}");
}
[Fact]
public void Should_allow_overriding_object_methods()
{
AssertPublicApi<ClassWithMethodOverridingObjectMethod>(
@"namespace PublicApiGeneratorTests.Examples
{
public class ClassWithMethodOverridingObjectMethod
{
public ClassWithMethodOverridingObjectMethod() { }
public override string ToString() { }
}
}");
}
[Fact]
public void Should_output_new_modifier()
{
AssertPublicApi<ClassWithMethodHiding>(
@"namespace PublicApiGeneratorTests.Examples
{
public class ClassWithMethodHiding : PublicApiGeneratorTests.Examples.ClassWithSimpleMethod
{
public ClassWithMethodHiding() { }
public new void Method() { }
}
}");
}
[Fact]
public void Should_output_unsafe_modifier()
{
AssertPublicApi<ClassWithUnsafeMethod>(
@"namespace PublicApiGeneratorTests.Examples
{
public class ClassWithUnsafeMethod
{
public ClassWithUnsafeMethod() { }
public unsafe void* DoSomething() { }
}
}");
}
}
// ReSharper disable ClassNeverInstantiated.Global
// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedMemberHierarchy.Global
// ReSharper disable MemberCanBeProtected.Global
// ReSharper disable RedundantOverridenMember
// ReSharper disable ClassWithVirtualMembersNeverInherited.Global
namespace Examples
{
public class ClassWithStaticMethod
{
public static void DoSomething()
{
}
}
public class ClassWithSimpleMethod
{
public void Method()
{
}
}
public class ClassWithMethodHiding : ClassWithSimpleMethod
{
public new void Method()
{
}
}
public abstract class ClassWithAbstractMethod
{
public abstract void DoSomething();
}
public class ClassWithVirtualMethod
{
public virtual void DoSomething()
{
}
}
public class ClassWithOverridingMethod : ClassWithVirtualMethod
{
public override void DoSomething()
{
base.DoSomething();
}
}
public class ClassWithMethodOverridingObjectMethod
{
public override string ToString()
{
return base.ToString();
}
}
public class ClassWithUnsafeMethod
{
public unsafe void* DoSomething()
{
return null;
}
}
}
// ReSharper restore ClassWithVirtualMembersNeverInherited.Global
// ReSharper restore RedundantOverridenMember
// ReSharper restore MemberCanBeProtected.Global
// ReSharper restore UnusedMemberHierarchy.Global
// ReSharper restore UnusedMember.Global
// ReSharper restore ClassNeverInstantiated.Global
}