2 using System.Collections.Generic;
4 using System.Runtime.Serialization;
5 using System.ServiceModel;
6 using System.ServiceModel.Channels;
10 using NUnit.Framework;
12 namespace MonoTests.System.ServiceModel
15 public class FaultExceptionTest
18 public void TestDefaults ()
20 FaultException<int> e = new FaultException<int> (0);
21 Assert.AreEqual (0, e.Detail, "#1");
22 Assert.IsNull (e.Action, "#2");
26 public void TestMessage ()
28 FaultException<int> e = new FaultException<int> (0);
29 Assert.AreEqual (e.Message, e.Reason.GetMatchingTranslation ().Text);
32 public void TestCode ()
34 // default Code is a SenderFault with a null SubCode
35 FaultException<int> e = new FaultException<int> (0);
36 Assert.IsTrue (e.Code.IsSenderFault);
37 Assert.IsNull (e.Code.SubCode);
41 public void TestAction ()
43 FaultException<int> e = new FaultException<int> (0);
44 Assert.IsNull (e.Action);
47 static void AreMessageFaultEqual (MessageFault a, MessageFault b, string label)
49 Assert.AreEqual (a.Actor, b.Actor, label + ".Actor");
50 Assert.AreEqual (a.Code, b.Code, label + ".Code");
51 Assert.AreEqual (a.HasDetail, b.HasDetail, label + ".HasDetail");
52 Assert.AreEqual (a.Node, b.Node, label + ".Node");
53 Assert.AreEqual (a.Reason, b.Reason, label + ".Reason");
57 public void TestCreateMessageFault ()
59 FaultException<int> e = new FaultException<int> (0); Assert.IsFalse (
60 (object) MessageFault.CreateFault (e.Code, e.Reason, e.Detail)
61 == e.CreateMessageFault (), "#1");
62 AreMessageFaultEqual (
63 MessageFault.CreateFault (e.Code, e.Reason, e.Detail),
64 e.CreateMessageFault (), "#2");
68 [Ignore ("this test is old")]
69 public void TestGetObjectData ()
71 FaultException<int> e = new FaultException<int> (0);
74 XmlWriterSettings s = new XmlWriterSettings ();
76 s.ConformanceLevel = ConformanceLevel.Fragment;
77 XmlWriter w = XmlWriter.Create (TextWriter.Null, s);
78 XmlObjectSerializer formatter = new DataContractSerializer (typeof (int));
79 formatter.WriteObject (w, e);
85 [Ignore ("This test premises English.")]
86 public void TestToString ()
88 FaultException<int> e = new FaultException<int> (0);
90 String.Format ("{0}: {1} (Fault Detail is equal to {2}).", e.GetType (), e.Message, e.Detail),