示例#1
0
        public void MiHomeRequest_ProvidedID_Update()
        {
            var device = new MiDevice("192.168.0.119", "aabbcc");

            device._deviceId        = new byte[] { 0x00, 0x11, 0x22, 0x33 };
            device._serverTimestamp = new Protocol.ServerTimestamp(91);

            var request = new MiHomeRequest(device._miToken, device._deviceId, device._serverTimestamp, device.NetworkOptions, new
            {
                method = "app_start",
                id     = "hello"
            });

            // This should not affect the ID when it was provided in the original payload
            request.RequestId++;

            var json = request.CreateJson();

            var jobj = JObject.Parse(json);

            Assert.AreEqual(2, jobj.Children().Count());
            Assert.IsNotNull(jobj.SelectToken("$.method"));
            Assert.AreEqual("app_start", (jobj.SelectToken("$.method") as JValue).Value);
            Assert.AreEqual("hello", (jobj.SelectToken("$.id") as JValue).Value);
        }
示例#2
0
 public void StartCleaning()
 {
     if (!string.IsNullOrEmpty(_ip))
     {
         using (var device = new MiDevice(_ip, _token))
         {
             var response = device.Send("app_start");
         }
     }
 }
示例#3
0
        public void Test_GetStatus()
        {
            if (!string.IsNullOrEmpty(_ip))
            {
                using (var device = new MiDevice(_ip, _token))
                {
                    var response = device.Send("get_status");

                    // in cleaning 3 ==    spot cleaning?
                    // in cleaning 2 == ✔ zone
                    // in cleaning 1 == ✔ general
                }
            }
        }
示例#4
0
 public void Test_CleanZone()
 {
     if (!string.IsNullOrEmpty(_ip))
     {
         using (var device = new MiDevice(_ip, _token))
         {
             var response      = device.Send("app_zoned_clean", new int[] { 20047, 24303, 24097, 25853, 1 });
             var resultStrings = response.As <List <string> >();
             Assert.IsNotNull(resultStrings);
             Assert.AreEqual(1, resultStrings.Count);
             Assert.AreEqual("ok", resultStrings.First());
         }
     }
 }
示例#5
0
        public void MiHomeRequest_RequestID()
        {
            var device = new MiDevice("192.168.0.119", "aabbcc");

            device._deviceId        = new byte[] { 0x00, 0x11, 0x22, 0x33 };
            device._serverTimestamp = new Protocol.ServerTimestamp(91);

            var request = new MiHomeRequest(device._miToken, device._deviceId, device._serverTimestamp, device.NetworkOptions, new
            {
                method = "app_start"
            });

            var json = request.CreateJson();

            var jobj = JObject.Parse(json);

            Assert.AreEqual(2, jobj.Children().Count());
            Assert.IsNotNull(jobj.SelectToken("$.method"));
            Assert.AreEqual("app_start", (jobj.SelectToken("$.method") as JValue).Value);
            Assert.AreEqual((Int64)0, (jobj.SelectToken("$.id") as JValue).Value);
        }
示例#6
0
 public void MiToken_EmptyToken_Exception()
 {
     var x = new MiDevice("127.0.0.1", "");
 }
示例#7
0
 public void MiToken_NonHexValues_Exception()
 {
     var x = new MiDevice("127.0.0.1", "hello there");
 }