@@ -97,4 +97,112 @@ public static void Ctor_StringReason()
97
97
Assert . NotNull ( exception . Code ) ;
98
98
Assert . Equal ( reason , exception . Reason . ToString ( ) ) ;
99
99
}
100
+
101
+ [ WcfFact ]
102
+ public static void Ctor_TDetail_FaultReason_FaultCode ( )
103
+ {
104
+ var detail = new FaultDetail ( "Fault message" ) ;
105
+ var reason = new FaultReason ( "Fault reason" ) ;
106
+ var code = new FaultCode ( "MustUnderstand" ) ;
107
+ var exception = new FaultException < FaultDetail > ( detail , reason , code ) ;
108
+ Assert . NotNull ( exception ) ;
109
+ Assert . NotNull ( exception . Detail ) ;
110
+ Assert . NotNull ( exception . Reason ) ;
111
+ Assert . NotNull ( exception . Code ) ;
112
+ Assert . Equal ( detail . Message , exception . Detail . Message ) ;
113
+ Assert . Equal ( reason , exception . Reason ) ;
114
+ Assert . Equal ( reason . ToString ( ) , exception . Message ) ;
115
+ Assert . Equal ( code , exception . Code ) ;
116
+ //default reason, default code
117
+ exception = new FaultException < FaultDetail > ( null , ( FaultReason ) null , null ) ;
118
+ Assert . NotNull ( exception ) ;
119
+ Assert . NotNull ( exception . Code ) ;
120
+ Assert . NotNull ( exception . Reason ) ;
121
+ Assert . NotEqual ( string . Empty , exception . Reason . ToString ( ) ) ;
122
+ Assert . False ( string . IsNullOrEmpty ( exception . Message ) ) ;
123
+ Assert . Null ( exception . Detail ) ;
124
+ Assert . Null ( exception . Action ) ;
125
+ }
126
+
127
+ [ WcfFact ]
128
+ public static void Ctor_TDetail_StringReason ( )
129
+ {
130
+ var detail = new FaultDetail ( "Fault message" ) ;
131
+ string reason = "Fault reason" ;
132
+ var exception = new FaultException < FaultDetail > ( detail , reason ) ;
133
+ Assert . NotNull ( exception ) ;
134
+ Assert . NotNull ( exception . Detail ) ;
135
+ Assert . NotNull ( exception . Reason ) ;
136
+ Assert . Equal ( detail , exception . Detail ) ;
137
+ Assert . Equal ( reason , exception . Reason . ToString ( ) ) ;
138
+ Assert . Equal ( reason , exception . Message ) ;
139
+ //empty reason, default code
140
+ exception = new FaultException < FaultDetail > ( null , string . Empty ) ;
141
+ Assert . NotNull ( exception ) ;
142
+ Assert . NotNull ( exception . Code ) ;
143
+ Assert . NotNull ( exception . Reason ) ;
144
+ Assert . Null ( exception . Detail ) ;
145
+ Assert . Null ( exception . Action ) ;
146
+ Assert . Equal ( string . Empty , exception . Reason . ToString ( ) ) ;
147
+ Assert . Equal ( string . Empty , exception . Message ) ;
148
+ Assert . Null ( exception . Action ) ;
149
+ }
150
+
151
+ [ WcfFact ]
152
+ public static void Ctor_TDetail_StringReason_FaultCode ( )
153
+ {
154
+ var detail = new FaultDetail ( "Fault message" ) ;
155
+ string reason = "Fault reason" ;
156
+ var code = new FaultCode ( "MustUnderstand" ) ;
157
+ var exception = new FaultException < FaultDetail > ( detail , reason , code ) ;
158
+ Assert . NotNull ( exception ) ;
159
+ Assert . NotNull ( exception . Detail ) ;
160
+ Assert . NotNull ( exception . Reason ) ;
161
+ Assert . NotNull ( exception . Code ) ;
162
+ Assert . Equal ( detail , exception . Detail ) ;
163
+ Assert . Equal ( reason , exception . Reason . ToString ( ) ) ;
164
+ Assert . Equal ( reason , exception . Message ) ;
165
+ Assert . Equal ( code , exception . Code ) ;
166
+ //default reason, default code
167
+ exception = new FaultException < FaultDetail > ( null , ( string ) null , null ) ;
168
+ Assert . NotNull ( exception ) ;
169
+ Assert . NotNull ( exception . Code ) ;
170
+ Assert . NotNull ( exception . Reason ) ;
171
+ Assert . NotEqual ( string . Empty , exception . Reason . ToString ( ) ) ;
172
+ Assert . False ( string . IsNullOrEmpty ( exception . Message ) ) ;
173
+ Assert . Null ( exception . Detail ) ;
174
+ Assert . Null ( exception . Action ) ;
175
+ }
176
+
177
+ [ WcfFact ]
178
+ public static void Ctor_TDetail_StringReason_FaultCode_StringAction ( )
179
+ {
180
+ var detail = new FaultDetail ( "Fault message" ) ;
181
+ string reason = "Fault reason" ;
182
+ var code = new FaultCode ( "Server" ) ;
183
+ string action = "http://example.com/faults/processingerror" ;
184
+ var exception = new FaultException < FaultDetail > ( detail , reason , code , action ) ;
185
+ Assert . NotNull ( exception ) ;
186
+ Assert . NotNull ( exception . Detail ) ;
187
+ Assert . NotNull ( exception . Reason ) ;
188
+ Assert . NotNull ( exception . Code ) ;
189
+ Assert . NotNull ( exception . Action ) ;
190
+ Assert . IsType < FaultException < FaultDetail > > ( exception ) ;
191
+ Assert . Equal ( detail , exception . Detail ) ;
192
+ Assert . Equal ( reason , exception . Reason . ToString ( ) ) ;
193
+ Assert . Equal ( reason , exception . Message ) ;
194
+ Assert . Equal ( code , exception . Code ) ;
195
+ Assert . Equal ( action , exception . Action ) ;
196
+ Assert . IsAssignableFrom < Exception > ( exception ) ;
197
+ Assert . IsAssignableFrom < FaultException > ( exception ) ;
198
+ //empty reason, default code
199
+ exception = new FaultException < FaultDetail > ( null , string . Empty , null , null ) ;
200
+ Assert . NotNull ( exception ) ;
201
+ Assert . NotNull ( exception . Code ) ;
202
+ Assert . NotNull ( exception . Reason ) ;
203
+ Assert . Equal ( string . Empty , exception . Reason . ToString ( ) ) ;
204
+ Assert . Equal ( string . Empty , exception . Message ) ;
205
+ Assert . Null ( exception . Detail ) ;
206
+ Assert . Null ( exception . Action ) ;
207
+ }
100
208
}
0 commit comments