@@ -77,4 +77,36 @@ public static void GetMessageVersion()
77
77
string actual = version . ToString ( ) ;
78
78
Assert . Equal ( expected , actual ) ;
79
79
}
80
+
81
+ [ WcfFact ]
82
+ public static void CreateMessageWithFaultCode ( )
83
+ {
84
+ FaultCode faultCode = new FaultCode ( "fName" ) ;
85
+ string faultReason = "fault reason" ;
86
+ object faultDetail = new FaultDetail ( "fault details" ) ;
87
+
88
+ //create message without fault detail
89
+ var message = Message . CreateMessage ( MessageVersion . Soap12WSAddressing10 , faultCode , faultReason , s_action ) ;
90
+ Assert . Equal ( MessageVersion . Soap12WSAddressing10 , message . Version ) ;
91
+ Assert . Equal ( s_action , message . Headers . Action ) ;
92
+ Assert . False ( message . IsEmpty ) ;
93
+ Assert . True ( message . IsFault ) ;
94
+
95
+ var msgFault = MessageFault . CreateFault ( message , int . MaxValue ) ;
96
+ Assert . Equal ( faultReason , msgFault . Reason . GetMatchingTranslation ( ) . Text ) ;
97
+
98
+ //create message with fault detail
99
+ message = Message . CreateMessage ( MessageVersion . Soap12WSAddressing10 , faultCode , faultReason , faultDetail , s_action ) ;
100
+ Assert . Equal ( MessageVersion . Soap12WSAddressing10 , message . Version ) ;
101
+ Assert . Equal ( s_action , message . Headers . Action ) ;
102
+ Assert . False ( message . IsEmpty ) ;
103
+ Assert . True ( message . IsFault ) ;
104
+
105
+ msgFault = MessageFault . CreateFault ( message , int . MaxValue ) ;
106
+ Assert . Equal ( faultReason , msgFault . Reason . GetMatchingTranslation ( ) . Text ) ;
107
+ Assert . True ( msgFault . HasDetail ) ;
108
+ var msgFDetail = msgFault . GetDetail < FaultDetail > ( ) ;
109
+ Assert . NotNull ( msgFDetail ) ;
110
+ Assert . Equal ( ( ( FaultDetail ) faultDetail ) . Message , msgFDetail . Message ) ;
111
+ }
80
112
}
0 commit comments