public void TestLateBind02() { var key = RdContextBasicTest.TestKeyHeavy.Instance; var serverMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var clientMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var server1Cid = "Server-1"; var client1Cid = "Client-1"; key.RegisterOn(ClientProtocol.Serializers); ServerProtocol.Contexts.RegisterContext(key); ClientProtocol.Contexts.RegisterContext(key); // no protocol value set value - pre-bind value will be lost serverMap[server1Cid][1] = "test"; BindToClient(LifetimeDefinition.Lifetime, clientMap, 1); BindToServer(LifetimeDefinition.Lifetime, serverMap, 1); Assert.False(clientMap.TryGetValue(server1Cid, out _)); Assert.False(serverMap.TryGetValue(client1Cid, out _)); }
public void TestLateBind01() { var key = RdContextBasicTest.TestKeyHeavy.Instance; var serverMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var clientMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var server1Cid = "Server-1"; var client1Cid = "Client-1"; key.RegisterOn(ClientProtocol.Serializers); ServerProtocol.Contexts.RegisterContext(key); ClientProtocol.Contexts.RegisterContext(key); ServerProtocol.Contexts.GetValueSet(key).Add(server1Cid); serverMap[server1Cid][1] = "test"; ClientProtocol.Contexts.GetValueSet(key).Add(client1Cid); BindToClient(LifetimeDefinition.Lifetime, clientMap, 1); BindToServer(LifetimeDefinition.Lifetime, serverMap, 1); Assert.True(clientMap.TryGetValue(server1Cid, out var map) && map != null); Assert.AreEqual("test", clientMap[server1Cid][1]); Assert.True(serverMap.TryGetValue(client1Cid, out var map1) && map1 != null); Assert.False(serverMap[client1Cid].ContainsKey(1)); }
public void TestLateBind06() { var key = RdContextBasicTest.TestKeyHeavy.Instance; var serverMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var clientMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var server1Cid = "Server-1"; var log = new List <string>(); serverMap.View(LifetimeDefinition.Lifetime, (lifetime, s, _) => { log.Add("Add " + s); lifetime.OnTermination(() => log.Add("Remove " + s)); }); key.RegisterOn(ClientProtocol.Serializers); ServerProtocol.Contexts.RegisterContext(key); ClientProtocol.Contexts.RegisterContext(key); BindToClient(LifetimeDefinition.Lifetime, clientMap, 1); BindToServer(LifetimeDefinition.Lifetime, serverMap, 1); key.Value = server1Cid; ServerProtocol.Wire.Send(RdId.Nil.Mix(10), _ => { }); key.Value = null; Assert.True(ServerProtocol.Contexts.GetValueSet(key).Contains(server1Cid)); Assert.AreEqual(new [] { "Add " + server1Cid }, log); }
public void TestLateBind04() { var key = RdContextBasicTest.TestKeyHeavy.Instance; var serverMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var clientMap = new RdPerContextMap <string, RdMap <int, string> >(key, _ => new RdMap <int, string>()); var server1Cid = "Server-1"; var client1Cid = "Client-1"; key.RegisterOn(ClientProtocol.Serializers); ServerProtocol.Contexts.RegisterContext(key); ClientProtocol.Contexts.RegisterContext(key); ServerProtocol.Contexts.GetValueSet(key).Add(server1Cid); var log = new List <string>(); serverMap.View(LifetimeDefinition.Lifetime, (lifetime, s, _) => { log.Add("Add " + s); lifetime.OnTermination(() => log.Add("Remove " + s)); }); serverMap[server1Cid][1] = "test"; serverMap[client1Cid][1] = "test"; BindToClient(LifetimeDefinition.Lifetime, clientMap, 1); BindToServer(LifetimeDefinition.Lifetime, serverMap, 1); Assert.AreEqual(new [] { "Add " + server1Cid, "Add " + client1Cid, "Remove " + client1Cid }, log); }
public void TestValueSetChangesInContext() { var key1 = RdContextBasicTest.TestKeyHeavy.Instance; var key2 = RdContextBasicTest.TestKey2.Instance; var serverMap = new RdPerContextMap <string, RdMap <int, string> >(key1, _ => new RdMap <int, string>()); var clientMap = new RdPerContextMap <string, RdMap <int, string> >(key1, _ => new RdMap <int, string>()); var server1Cid = "Server-1"; var server2Cid = "Server-2"; var server3Cid = "Server-3"; var server4Cid = "Server-4"; var log = new List <string>(); serverMap.View(LifetimeDefinition.Lifetime, (lifetime, s, _) => { log.Add("Add " + s); lifetime.OnTermination(() => log.Add("Remove " + s)); }); key1.Value = server1Cid; key2.Value = server1Cid; key1.RegisterOn(ClientProtocol.Serializers); key2.RegisterOn(ClientProtocol.Serializers); ServerProtocol.Contexts.RegisterContext(key1); ServerProtocol.Contexts.RegisterContext(key2); ClientProtocol.Contexts.RegisterContext(key1); BindToClient(LifetimeDefinition.Lifetime, clientMap, 1); BindToServer(LifetimeDefinition.Lifetime, serverMap, 1); ServerProtocol.Contexts.GetValueSet(key1).Add(server2Cid); key1.Value = server4Cid; ServerProtocol.Contexts.GetValueSet(key1).Add(server3Cid); key1.Value = null; key2.Value = null; Assert.False(ServerProtocol.Contexts.GetValueSet(key1).Contains(server1Cid)); Assert.False(ServerProtocol.Contexts.GetValueSet(key2).Contains(server1Cid)); Assert.AreEqual(new [] { "Add " + server2Cid, "Add " + server3Cid }, log); }