public void AsyncConnectDisconnectTest() { var wrapper = new CatWebserviceWrapper(Service); Assert.AreEqual(WebserviceWrapperState.Disconnected, wrapper.WebserviceState); bool waiting = true; wrapper.ConnectAsync( connect => { Assert.AreEqual(WebserviceWrapperState.Connected, wrapper.WebserviceState); wrapper.DisconnectAsync( disconnect => { Assert.AreEqual(WebserviceWrapperState.Disconnected, wrapper.WebserviceState); waiting = false; }); }); while (waiting) { Thread.Sleep(200); } }