2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Runtime.Remoting / Test / CrossDomainCalls.cs
1 //
2 // MonoTests.Remoting.CrossDomainCalls.cs
3 //
4 // Author: Lluis Sanchez Gual (lluis@ximian.com)
5 //
6 // 2003 (C) Copyright, Novell, Inc.
7 //
8
9 using System;
10 using System.Threading;
11 using System.Runtime.Remoting;
12 using System.Runtime.Remoting.Channels;
13 using System.Runtime.Remoting.Channels.Tcp;
14 using NUnit.Framework;
15
16 namespace MonoTests.Remoting
17 {
18         class CrossDomainServer: MarshalByRefObject
19         {
20                 public RemoteObject CreateRemoteInstance ()
21                 {
22                         return new RemoteObject();
23                 }
24
25                 public AbstractRemoteObject CreateRemoteAbstract ()
26                 {
27                         return new RemoteObject();
28                 }
29
30                 public IRemoteObject CreateRemoteInterface ()
31                 {
32                         return new RemoteObject();
33                 }       
34                 
35                 public int GetDomId ()
36                 {
37                         return Thread.GetDomainID();
38                 }
39         }
40         
41         [TestFixture]
42         public class CrossDomainSyncCallTest : SyncCallTest
43         {
44                 CrossDomainServer server;
45                 
46                 protected override int CreateServer ()
47                 {
48                         AppDomain domain = AppDomain.CreateDomain ("testdomain");
49                         server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
50                         return server.GetDomId ();
51                 }
52                 
53                 protected override RemoteObject CreateRemoteInstance ()
54                 {
55                         return server.CreateRemoteInstance ();
56                 }
57
58                 protected override AbstractRemoteObject CreateRemoteAbstract ()
59                 {
60                         return server.CreateRemoteAbstract ();
61                 }
62
63                 protected override IRemoteObject CreateRemoteInterface ()
64                 {
65                         return server.CreateRemoteInterface ();
66                 }       
67         }
68
69         [TestFixture]
70         public class CrossDomainAsyncCallTest : AsyncCallTest
71         {
72                 CrossDomainServer server;
73                 
74                 protected override int CreateServer ()
75                 {
76                         AppDomain domain = AppDomain.CreateDomain ("testdomain");
77                         server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
78                         return server.GetDomId ();
79                 }
80                 
81                 protected override RemoteObject CreateRemoteInstance ()
82                 {
83                         return server.CreateRemoteInstance ();
84                 }
85
86                 protected override AbstractRemoteObject CreateRemoteAbstract ()
87                 {
88                         return server.CreateRemoteAbstract ();
89                 }
90
91                 protected override IRemoteObject CreateRemoteInterface ()
92                 {
93                         return server.CreateRemoteInterface ();
94                 }       
95         }
96
97         [TestFixture]
98         public class CrossDomainReflectionCallTest : ReflectionCallTest
99         {
100                 CrossDomainServer server;
101                 
102                 protected override int CreateServer ()
103                 {
104                         AppDomain domain = AppDomain.CreateDomain ("testdomain");
105                         server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
106                         return server.GetDomId ();
107                 }
108                 
109                 protected override RemoteObject CreateRemoteInstance ()
110                 {
111                         return server.CreateRemoteInstance ();
112                 }
113
114                 protected override AbstractRemoteObject CreateRemoteAbstract ()
115                 {
116                         return server.CreateRemoteAbstract ();
117                 }
118
119                 protected override IRemoteObject CreateRemoteInterface ()
120                 {
121                         return server.CreateRemoteInterface ();
122                 }       
123         }
124
125         [TestFixture]
126         public class CrossDomainDelegateCallTest : DelegateCallTest
127         {
128                 CrossDomainServer server;
129                 
130                 protected override int CreateServer ()
131                 {
132                         AppDomain domain = AppDomain.CreateDomain ("testdomain");
133                         server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
134                         return server.GetDomId ();
135                 }
136                 
137                 protected override RemoteObject CreateRemoteInstance ()
138                 {
139                         return server.CreateRemoteInstance ();
140                 }
141
142                 protected override AbstractRemoteObject CreateRemoteAbstract ()
143                 {
144                         return server.CreateRemoteAbstract ();
145                 }
146
147                 protected override IRemoteObject CreateRemoteInterface ()
148                 {
149                         return server.CreateRemoteInterface ();
150                 }       
151         }
152 }
153