public async Task RefreshAsyncTest() { ParticleCloudMock cloud = new ParticleCloudMock(); cloud.RequestCallBack = (a, b, c) => { Assert.AreEqual("GET", a); Assert.AreEqual("devices/3", b); return(new RequestResponse { StatusCode = System.Net.HttpStatusCode.OK, Response = JToken.Parse(@"{'id': '3', 'name': 'Work', 'last_app': 'cheese', 'last_ip_address': '192.168.0.1', 'last_heard': '2015-05-25T01:15:36.034Z', 'product_id': 0, 'connected': true, 'variables':{ temp: 'double', temp2: 'int', temp3: 'string' }, 'functions':[ 'led', 'led2' ]}" ) }); }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test'}")); var result = await p.RefreshAsync(); Assert.IsTrue(result.Success); Assert.AreEqual("3", p.Id); Assert.AreEqual("Work", p.Name); Assert.AreEqual("cheese", p.LastApp); Assert.AreEqual("192.168.0.1", p.LastIPAddress); Assert.AreEqual(JToken.Parse("'2015-05-25T01:15:36.034Z'").Value <DateTime>().ToLocalTime(), p.LastHeard); Assert.AreEqual(ParticleDeviceType.Core, p.DeviceType); Assert.IsTrue(p.Connected); Assert.AreEqual(3, p.Variables.Count); var variable = p.Variables[0]; Assert.AreEqual("temp", variable.Name); Assert.AreEqual(VariableType.Double, variable.Type); variable = p.Variables[1]; Assert.AreEqual("temp2", variable.Name); Assert.AreEqual(VariableType.Int, variable.Type); variable = p.Variables[2]; Assert.AreEqual("temp3", variable.Name); Assert.AreEqual(VariableType.String, variable.Type); var functions = p.Functions; Assert.AreEqual(2, functions.Count); Assert.AreEqual("led", functions[0]); Assert.AreEqual("led2", functions[1]); }
public async Task RefreshAsyncHttpRequestExceptionTest() { using (ParticleCloudMock cloud = new ParticleCloudMock()) { var ex = new HttpRequestException("Unable to resolve dns"); cloud.RequestCallBack = (a, b, c) => { throw ex; }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test'}")); var result = await p.RefreshAsync(); Assert.IsNotNull(result); Assert.IsFalse(result.Success); Assert.AreEqual(ex.Message, result.Error); Assert.AreEqual(ex, result.Exception); } }
public async Task RefreshAsyncTest() { ParticleCloudMock cloud = new ParticleCloudMock(); cloud.RequestCallBack = (a, b, c) => { Assert.AreEqual("GET", a); Assert.AreEqual("devices/3", b); return new RequestResponse { StatusCode = System.Net.HttpStatusCode.OK, Response = JToken.Parse(@"{'id': '3', 'name': 'Work', 'last_app': 'cheese', 'last_ip_address': '192.168.0.1', 'last_heard': '2015-05-25T01:15:36.034Z', 'product_id': 0, 'connected': true, 'variables':{ temp: 'double', temp2: 'int', temp3: 'string' }, 'functions':[ 'led', 'led2' ]}") }; }; var p = new ParticleDeviceMock(cloud, JObject.Parse("{'id':'3', 'name': 'test'}")); var result = await p.RefreshAsync(); Assert.IsTrue(result.Success); Assert.AreEqual("3", p.Id); Assert.AreEqual("Work", p.Name); Assert.AreEqual("cheese", p.LastApp); Assert.AreEqual("192.168.0.1", p.LastIPAddress); Assert.AreEqual(JToken.Parse("'2015-05-25T01:15:36.034Z'").Value<DateTime>().ToLocalTime(), p.LastHeard); Assert.AreEqual(ParticleDeviceType.Core, p.DeviceType); Assert.IsTrue(p.Connected); Assert.AreEqual(3, p.Variables.Count); var variable = p.Variables[0]; Assert.AreEqual("temp", variable.Name); Assert.AreEqual(VariableType.Double, variable.Type); variable = p.Variables[1]; Assert.AreEqual("temp2", variable.Name); Assert.AreEqual(VariableType.Int, variable.Type); variable = p.Variables[2]; Assert.AreEqual("temp3", variable.Name); Assert.AreEqual(VariableType.String, variable.Type); var functions = p.Functions; Assert.AreEqual(2, functions.Count); Assert.AreEqual("led", functions[0]); Assert.AreEqual("led2", functions[1]); }