public async Task TestRequestKeyManagement1() { var ws = new BufferedWebSocket <Metadata>(testUri, 1); var info = await ws.Connect(); await ws.Request(0); await ws.Request(1); Assert.AreEqual(ws.Get(0), 0, 0); //add third argument to force typecast //all this work to wait for buffer //attach our event handler ulong key = 0; ws.KeyLoadedEvent += delegate(Object sender, ulong e) { key = e; }; //wait for message to come back for (int i = 0; i < 10; i++) { Task.Delay(50).Wait(); if (key == 1) { break; } } Assert.AreNotEqual(ws.Get(1), 0); }
public async Task TestRequestKeyManagementLives() { var ws = new BufferedWebSocket <Metadata>(testUri, 5); var info = await ws.Connect(); for (uint i = 0; i < 5; i++) { await ws.Request(i); } //now request others and make sure the rest are null for (uint i = 5; i < 10; i++) { await ws.Request(i); } //all this work to wait for buffer //attach our event handler bool ready = false; ws.KeyLoadedEvent += delegate(Object sender, ulong e) { if (!ready && e == 9) { ready = true; } }; //wait for messages to come back for (int i = 0; i < 10; i++) { Task.Delay(50).Wait(); if (ready) { break; } } for (uint i = 0; i < 5; i++) { Assert.AreEqual(ws.Get(i), 0, 0); } //now request others and make sure the rest have data for (uint i = 5; i < 10; i++) { //need to check that array is null because we may have exceeded number of frames byte[] b; ws.Get(i, out b); Assert.IsNotNull(b); } }
public async Task TestRequestUsualPattern() { var ws = new BufferedWebSocket <Metadata>(testUri, 3); var info = await ws.Connect(); for (uint i = 0; i < 3; i++) { await ws.Request(i); } //all this work to wait for buffer //attach our event handler bool ready = false; bool ready2 = false; ws.KeyLoadedEvent += delegate(Object sender, ulong e) { if (!ready && e == 2) { ready = true; } if (!ready2 && e == 5) { ready2 = true; } }; //wait for messages to come back for (int i = 0; i < 10; i++) { Task.Delay(50).Wait(); if (ready) { break; } } Assert.IsTrue(ready); //fetch and request for (uint i = 0; i < 3; i++) { Assert.AreNotEqual(ws.Get(i), 0, 0); await ws.Request(i + 3); } //wait for messages to come back for (int i = 0; i < 10; i++) { Task.Delay(50).Wait(); if (ready2) { break; } } Assert.IsTrue(ready2); //make sure we were able to get past our initial batch for (uint i = 3; i < 6; i++) { //need to check that array is null because we may have exceeded number of frames byte[] b; ws.Get(i, out b); Assert.IsNotNull(b); } }