Skip to content

Commit 3998aa6

Browse files
authored
Expose CreateMessage method overloads with FaultCode parameter (#5169)
1 parent 7a261fa commit 3998aa6

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/System.ServiceModel.Primitives/ref/System.ServiceModel.Primitives.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,6 +1273,8 @@ public void Close() { }
12731273
public static System.ServiceModel.Channels.Message CreateMessage(System.ServiceModel.Channels.MessageVersion version, string action, System.Xml.XmlReader body) { return default; }
12741274
public static System.ServiceModel.Channels.Message CreateMessage(System.Xml.XmlDictionaryReader envelopeReader, int maxSizeOfHeaders, System.ServiceModel.Channels.MessageVersion version) { return default; }
12751275
public static System.ServiceModel.Channels.Message CreateMessage(System.Xml.XmlReader envelopeReader, int maxSizeOfHeaders, System.ServiceModel.Channels.MessageVersion version) { return default; }
1276+
public static System.ServiceModel.Channels.Message CreateMessage(System.ServiceModel.Channels.MessageVersion version, System.ServiceModel.FaultCode faultCode, string reason, string action) { return default; }
1277+
public static System.ServiceModel.Channels.Message CreateMessage(System.ServiceModel.Channels.MessageVersion version, System.ServiceModel.FaultCode faultCode, string reason, object detail, string action) { return default; }
12761278
public T GetBody<T>() { return default; }
12771279
public T GetBody<T>(System.Runtime.Serialization.XmlObjectSerializer serializer) { return default; }
12781280
public string GetBodyAttribute(string localName, string ns) { return default; }

src/System.ServiceModel.Primitives/tests/Channels/MessageTest.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,36 @@ public static void GetMessageVersion()
7777
string actual = version.ToString();
7878
Assert.Equal(expected, actual);
7979
}
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+
}
80112
}

0 commit comments

Comments
 (0)