Merge pull request #2807 from akoeplinger/gchandle
[mono.git] / mcs / class / System.ServiceModel / Test / System.ServiceModel / FaultCodeTest.cs
1 using System;
2 using System.ServiceModel;
3 using NUnit.Framework;
4
5 namespace MonoTests.System.ServiceModel
6 {
7         [TestFixture]
8         public class FaultCodeTest
9         {
10                 FaultCode code;
11
12                 [Test]
13                 public void TestDefaults ()
14                 {
15                         code = new FaultCode ("foo");
16                         Assert.AreEqual ("foo", code.Name);
17                         Assert.AreEqual (String.Empty, code.Namespace);
18                         Assert.AreEqual (null, code.SubCode);                   
19                 }
20
21                 [Test]
22                 public void TestReceiverFaultCode ()
23                 {
24                         code = FaultCode.CreateReceiverFaultCode ("foo", "bar");
25                         Assert.IsTrue (code.IsReceiverFault);   
26                         Assert.AreEqual ("Receiver", code.Name);
27                         Assert.AreEqual (String.Empty, code.Namespace);
28                         Assert.AreEqual ("foo", code.SubCode.Name);
29                         Assert.AreEqual ("bar", code.SubCode.Namespace);                                                                
30                         
31                         code = new FaultCode ("Receiver");                      
32                         Assert.IsTrue (code.IsReceiverFault);
33
34                         code = new FaultCode ("something else");                        
35                         Assert.IsFalse (code.IsReceiverFault);
36                 }
37
38                 [Test]
39                 public void TestSenderFaultCode ()
40                 {
41                         code = FaultCode.CreateSenderFaultCode ("foo", "bar");
42                         Assert.IsTrue (code.IsSenderFault);     
43                         Assert.AreEqual ("Sender", code.Name);
44                         Assert.AreEqual (String.Empty, code.Namespace);
45                         Assert.AreEqual ("foo", code.SubCode.Name);
46                         Assert.AreEqual ("bar", code.SubCode.Namespace);                                                                
47                         
48                         code = new FaultCode ("Sender");                        
49                         Assert.IsTrue (code.IsSenderFault);
50
51                         code = new FaultCode ("something else");                        
52                         Assert.IsFalse (code.IsReceiverFault);
53                 }
54
55                 [Test]
56                 public void TestIsPredefinedCode ()
57                 {
58                         code = new FaultCode ("foo");
59                         Assert.IsTrue (code.IsPredefinedFault);
60
61                         code = new FaultCode ("foo", String.Empty);
62                         Assert.IsTrue (code.IsPredefinedFault);
63
64                         code = new FaultCode ("foo", "bar");
65                         Assert.IsFalse (code.IsPredefinedFault);
66
67                         code = FaultCode.CreateReceiverFaultCode (new FaultCode ("foo", "bar"));
68                         Assert.IsTrue (code.IsPredefinedFault);
69                         Assert.IsFalse (code.SubCode.IsPredefinedFault);
70
71                         code = FaultCode.CreateReceiverFaultCode (new FaultCode ("foo"));
72                         Assert.IsTrue (code.IsPredefinedFault);
73                         Assert.IsTrue (code.SubCode.IsPredefinedFault);
74
75                 }
76
77                 [Test]
78                 public void TestNamespace ()
79                 {
80                         code = new FaultCode ("foo");
81                         Assert.AreEqual (String.Empty, code.Namespace);
82                         Assert.IsTrue (code.IsPredefinedFault);                 
83                 }
84         }
85 }