public void GetProxyWithNullInterfaceType() { SampleInvocable sampleInvocable = new SampleInvocable(); RemoteObjectAddress address = ObjectServer.PublishObject(sampleInvocable); IInvocable proxy = RemoteObjectProxyProvider.GetProxy<IInvocable>(address, null); Assert.NotNull(proxy); InvokeSampleInvokable(proxy); }
public void GetProxyWithDescendantRequiredInterface() { SampleInvocable sampleInvocable = new SampleInvocable(); RemoteObjectAddress address = ObjectServer.PublishObject(sampleInvocable); IRemotelyReferable proxy = RemoteObjectProxyProvider.GetProxy<IRemotelyReferable>( address, typeof(IInvocable)); Assert.NotNull(proxy); }
public void GetProxyTwice() { SampleInvocable sampleInvocable = new SampleInvocable(); RemoteObjectAddress address = ObjectServer.PublishObject(sampleInvocable); IInvocable proxy1 = RemoteObjectProxyProvider.GetProxy<IInvocable>( address, typeof(IInvocable)); IInvocable proxy2 = RemoteObjectProxyProvider.GetProxy<IInvocable>( address, typeof(IInvocable)); Assert.NotNull(proxy1); Assert.NotNull(proxy2); Assert.Equal(proxy1, proxy2); InvokeSampleInvokable(proxy1); InvokeSampleInvokable(proxy2); }
public void GetProxyWithNonInterfaceType() { SampleInvocable sampleInvocable = new SampleInvocable(); RemoteObjectAddress address = ObjectServer.PublishObject(sampleInvocable); Assert.Throws<InvalidOperationException>(() => RemoteObjectProxyProvider.GetProxy<IInvocable>( address, typeof(SampleInvocable)) ); }
public void GetProxyWithAntecendantRequiredInterface() { SampleInvocable sampleInvocable = new SampleInvocable(); RemoteObjectAddress address = ObjectServer.PublishObject(sampleInvocable); Assert.Throws<ArgumentException>(() => RemoteObjectProxyProvider.GetProxy<IInvocable>( address, typeof(IRemotelyReferable))); }
public void GetProxyWithIncompatibleInterface() { SampleInvocable sampleInvocable = new SampleInvocable(); RemoteObjectAddress address = ObjectServer.PublishObject(sampleInvocable); // pass a different interface parameter then is the interface of the proxy // (eg. IRemotelyCloneable instead of IInvocable) Assert.Throws<ArgumentException>(() => RemoteObjectProxyProvider.GetProxy<IInvocable>( address, typeof(IRemotelyCloneable)) ); }