public async Task CallFunctionAsyncTest() { using (ParticleCloudMock cloud = new ParticleCloudMock()) { cloud.RequestCallBack = (a, b, c) => { Assert.AreEqual("POST", a); Assert.AreEqual("devices/3/led", b); Assert.AreEqual(1, c.Count()); var first = c.FirstOrDefault(); Assert.IsNotNull(first); Assert.AreEqual("arg", first.Key); Assert.AreEqual("on", first.Value); return(new RequestResponse { StatusCode = System.Net.HttpStatusCode.OK, Response = JToken.Parse(@"{ 'id': '3', 'name': 'led', 'last_app': '', 'connected': true, 'return_value': 1 }") }); }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test', 'functions':['led']}")); var exc = Assert.Throws <ArgumentNullException>(() => { p.CallFunctionAsync(null, "").GetAwaiter().GetResult(); }); Assert.AreEqual("functionName", exc.ParamName); var result = await p.CallFunctionAsync("led", "on"); Assert.IsTrue(result.Success); Assert.AreEqual(1, result.Data); } }
public async Task CallFunctionAsyncHttpRequestExceptionTest() { using (ParticleCloudMock cloud = new ParticleCloudMock()) { var ex = new HttpRequestException("Unable to Resolve"); cloud.RequestCallBack = (a, b, c) => { throw ex; }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test', 'functions':['led']}")); Assert.IsNotNull(p); var cf = await p.CallFunctionAsync("LED", "cheese"); Assert.IsNotNull(cf); Assert.AreEqual(ex.Message, cf.Error); Assert.AreEqual(ex, cf.Exception); } }
public async Task CallFunctionAsyncHttpRequestExceptionTest() { using (ParticleCloudMock cloud = new ParticleCloudMock()) { var ex = new HttpRequestException("Unable to Resolve"); cloud.RequestCallBack = (a, b, c) => { throw ex; }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test', 'functions':['led']}")); Assert.IsNotNull(p); var cf = await p.CallFunctionAsync("LED", "cheese"); Assert.IsNotNull(cf); Assert.AreEqual(ex.Message, cf.Error); Assert.AreEqual(ex, cf.Exception); } }
public async Task CallFunctionAsyncTest() { using (ParticleCloudMock cloud = new ParticleCloudMock()) { cloud.RequestCallBack = (a, b, c) => { Assert.AreEqual("POST", a); Assert.AreEqual("devices/3/led", b); Assert.AreEqual(1, c.Count()); var first = c.FirstOrDefault(); Assert.IsNotNull(first); Assert.AreEqual("arg", first.Key); Assert.AreEqual("on", first.Value); return new RequestResponse { StatusCode = System.Net.HttpStatusCode.OK, Response = JToken.Parse(@"{ 'id': '3', 'name': 'led', 'last_app': '', 'connected': true, 'return_value': 1 }") }; }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test', 'functions':['led']}")); var exc = Assert.Throws<ArgumentNullException>(() => { p.CallFunctionAsync(null, "").GetAwaiter().GetResult(); }); Assert.AreEqual("functionName", exc.ParamName); var result = await p.CallFunctionAsync("led", "on"); Assert.IsTrue(result.Success); Assert.AreEqual(1, result.Data); } }