public override void SetUp() { base.SetUp(); var identities = new Identities(IdKind.Server); var serverDispatcher = CreateScheduler(true); var clientDispatcher = CreateScheduler(false); var serverR = "Server (R#)"; ServerProtocol = new Protocol(serverR, CreateSerializers(true), identities, serverDispatcher, new TestWire(serverDispatcher, serverR, true), LifetimeDefinition.Lifetime); var clientIdea = "Client (IDEA)"; ClientProtocol = new Protocol(clientIdea, CreateSerializers(false), identities, clientDispatcher, new TestWire(clientDispatcher, clientIdea, false), LifetimeDefinition.Lifetime); ServerWire = (ServerProtocol.Wire as TestWire).NotNull(); ClientWire = (ClientProtocol.Wire as TestWire).NotNull(); ServerWire.Connection = ClientWire; ClientWire.Connection = ServerWire; }
public void TestEarlyDelivery(bool heavy) { var key = heavy ? TestKeyHeavy.Instance : (RdContext <string>)TestKeyLight.Instance; var identities = new Identities(IdKind.Server); var serverDispatcher = CreateScheduler(); var clientDispatcher = CreateScheduler(); var serverR = "Server (R#)"; myServerProtocol = new Protocol(serverR, CreateSerializers(), identities, serverDispatcher, new TestWire(serverDispatcher, serverR, true), LifetimeDefinition.Lifetime, key); myServerWire = (myServerProtocol.Wire as TestWire).NotNull(); var clientIdea = "Client (IDEA)"; var clientWire = new TestWire(clientDispatcher, clientIdea, false); myClientWire = clientWire; myClientWire.Connection = myServerWire; myServerWire.Connection = myClientWire; myClientProtocol = new Protocol(clientIdea, CreateSerializers(), identities, clientDispatcher, clientWire, LifetimeDefinition.Lifetime, key); myServerWire.AutoTransmitMode = true; myClientWire.AutoTransmitMode = true; var serverSignal = BindToServer(LifetimeDefinition.Lifetime, new RdSignal <string>(), 1); key.Value = "1"; serverSignal.Fire(""); var clientSignal = BindToClient(LifetimeDefinition.Lifetime, new RdSignal <string>(), 1); Lifetime.Using(lt => { var fired = false; clientSignal.Advise(lt, s => { Assert.AreEqual("1", key.Value); fired = true; }); serverSignal.Fire(""); Assert.True(fired, "fired"); }); Assert.AreEqual("1", key.Value); Lifetime.Using(lt => { var fired = false; serverSignal.Advise(lt, s => { Assert.AreEqual("1", key.Value); fired = true; }); clientSignal.Fire(""); Assert.True(fired, "fired"); }); Assert.AreEqual("1", key.Value); }