public void TestWoopsaClientSubscriptionChannelServerStartAfter() { bool isValueChanged = false; TestObjectServer objectServer = new TestObjectServer(); using (WoopsaClient client = new WoopsaClient("http://localhost/woopsa")) { WoopsaUnboundClientObject root = client.CreateUnboundRoot(""); WoopsaClientSubscription subscription = root.Subscribe(nameof(TestObjectServer.Votes), (sender, e) => { isValueChanged = true; }, TimeSpan.FromMilliseconds(10), TimeSpan.FromMilliseconds(20)); using (WoopsaServer server = new WoopsaServer(objectServer)) { objectServer.Votes = 2; Stopwatch watch = new Stopwatch(); watch.Start(); while ((!isValueChanged) && (watch.Elapsed < TimeSpan.FromSeconds(2))) Thread.Sleep(10); if (isValueChanged) Console.WriteLine("Notification after {0} ms", watch.Elapsed.TotalMilliseconds); else Console.WriteLine("No notification received"); subscription.Unsubscribe(); Assert.AreEqual(true, isValueChanged); } } }
public void TestWoopsaProtocolUnboundClient() { TestObjectServer objectServer = new TestObjectServer(); using (WoopsaClient client = new WoopsaClient("http://localhost/woopsa")) { WoopsaUnboundClientObject root = client.CreateUnboundRoot("root"); WoopsaProperty propertyVote = root.GetProperty("Votes", WoopsaValueType.Integer, false); using (WoopsaServer server = new WoopsaServer(objectServer)) { propertyVote.Value = new WoopsaValue(123); Assert.AreEqual(objectServer.Votes, 123); var result = propertyVote.Value; Assert.AreEqual(result.ToInt64(), 123); } } }