public void testCreateStructureWithJacksonMapperUnknownProperty_shouldSetAllValuesCorrectly() { try { var json = LoadString(TEST_STRUCTURE_UNKNOWN_JSON); Structure structure = Parse <Structure>(json); Assert.AreEqual(structure.StructureId, "VqFabWH21nwVyd4RWgJgNb292wa7hG"); Assert.AreEqual(structure.Thermostats.Count, 1); Assert.AreEqual(structure.Thermostats[0], "peyiJNo0IldT2YlIVtYaGQ"); Assert.AreEqual(structure.SmokeCoAlarms.Count, 1); Assert.AreEqual(structure.SmokeCoAlarms[0], "RTMTKxsQTCxzVcsySOHPxKoF4OyCifrs"); Assert.AreEqual(structure.Cameras.Count, 1); Assert.AreEqual(structure.Cameras[0], "awJo6rHX"); Assert.AreEqual(structure.Devices.Count, 1); Assert.AreEqual(structure.Away, "home"); Assert.AreEqual(structure.Name, "Home"); Assert.AreEqual(structure.CountryCode, "US"); Assert.AreEqual(structure.PostalCode, "94304"); Assert.AreEqual(structure.PeakPeriodStartTime, "2015-10-31T23:59:59.000Z"); Assert.AreEqual(structure.PeakPeriodEndTime, "2015-10-31T23:59:59.000Z"); Assert.AreEqual(structure.TimeZone, "America/Los_Angeles"); Assert.IsNotNull(structure.Eta); Structure.ETA eta = structure.Eta; Assert.AreEqual(eta.TripId, "myTripHome1024"); Assert.AreEqual(eta.EstimatedArrivalWindowBegin, "2015-10-31T22:42:59.000Z"); Assert.AreEqual(eta.EstimatedArrivalWindowEnd, "2015-10-31T23:59:59.000Z"); Assert.AreEqual(structure.RhrEnrollment, true); Assert.IsNotNull(structure.Wheres); Assert.AreEqual(structure.Wheres.Count, 1); Structure.Where where = structure.Wheres["Fqp6wJIX"]; Assert.IsNotNull(where); Assert.AreEqual(where.WhereId, "Fqp6wJIX"); Assert.AreEqual(where.Name, "Bedroom"); } catch (IOException e) { Trace.WriteLine(e.StackTrace); Assert.Fail(); } }
/// <summary> /// Sets the ETA on a structure. It is used to let Nest know that a user is expected to return /// home at a specific time. /// </summary> /// <param name="structureId">The unique identifier for the <see cref="Structure"/>.</param> /// <param name="eta">The <see cref="Structure.ETA"/> object containing the ETA values.</param> /// <param name="callback">A <see cref="Callback"/> to receive whether the change was successful.</param> public void SetEta(string structureId, Structure.ETA eta, Callback callback = null) { restClient.WriteString(GetPath(structureId), Structure.KEY_ETA, eta.ToString(), callback); }