2 // MonoTests.Remoting.CrossDomainCalls.cs
4 // Author: Lluis Sanchez Gual (lluis@ximian.com)
6 // 2003 (C) Copyright, Novell, Inc.
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;
16 namespace MonoTests.Remoting
18 class CrossDomainServer: MarshalByRefObject
20 public RemoteObject CreateRemoteInstance ()
22 return new RemoteObject();
25 public AbstractRemoteObject CreateRemoteAbstract ()
27 return new RemoteObject();
30 public IRemoteObject CreateRemoteInterface ()
32 return new RemoteObject();
35 public int GetDomId ()
37 return Thread.GetDomainID();
42 public class CrossDomainSyncCallTest : SyncCallTest
44 CrossDomainServer server;
46 protected override int CreateServer ()
48 AppDomain domain = AppDomain.CreateDomain ("testdomain");
49 server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
50 return server.GetDomId ();
53 protected override RemoteObject CreateRemoteInstance ()
55 return server.CreateRemoteInstance ();
58 protected override AbstractRemoteObject CreateRemoteAbstract ()
60 return server.CreateRemoteAbstract ();
63 protected override IRemoteObject CreateRemoteInterface ()
65 return server.CreateRemoteInterface ();
70 public class CrossDomainAsyncCallTest : AsyncCallTest
72 CrossDomainServer server;
74 protected override int CreateServer ()
76 AppDomain domain = AppDomain.CreateDomain ("testdomain");
77 server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
78 return server.GetDomId ();
81 protected override RemoteObject CreateRemoteInstance ()
83 return server.CreateRemoteInstance ();
86 protected override AbstractRemoteObject CreateRemoteAbstract ()
88 return server.CreateRemoteAbstract ();
91 protected override IRemoteObject CreateRemoteInterface ()
93 return server.CreateRemoteInterface ();
98 public class CrossDomainReflectionCallTest : ReflectionCallTest
100 CrossDomainServer server;
102 protected override int CreateServer ()
104 AppDomain domain = AppDomain.CreateDomain ("testdomain");
105 server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
106 return server.GetDomId ();
109 protected override RemoteObject CreateRemoteInstance ()
111 return server.CreateRemoteInstance ();
114 protected override AbstractRemoteObject CreateRemoteAbstract ()
116 return server.CreateRemoteAbstract ();
119 protected override IRemoteObject CreateRemoteInterface ()
121 return server.CreateRemoteInterface ();
126 public class CrossDomainDelegateCallTest : DelegateCallTest
128 CrossDomainServer server;
130 protected override int CreateServer ()
132 AppDomain domain = AppDomain.CreateDomain ("testdomain");
133 server = (CrossDomainServer) domain.CreateInstanceAndUnwrap(GetType().Assembly.FullName,"MonoTests.Remoting.CrossDomainServer");
134 return server.GetDomId ();
137 protected override RemoteObject CreateRemoteInstance ()
139 return server.CreateRemoteInstance ();
142 protected override AbstractRemoteObject CreateRemoteAbstract ()
144 return server.CreateRemoteAbstract ();
147 protected override IRemoteObject CreateRemoteInterface ()
149 return server.CreateRemoteInterface ();