public void EnumValuesAreConvertedFromSnakeCase() { var result = HassSerializer.DeserializeObject <TestEnum>($"\"{expectedTestValueEnumResult}\""); Assert.NotNull(result); Assert.AreEqual(TestEnum.TestValue, result); }
public void FieldsAreConvertedFromSnakeCase() { var result = HassSerializer.DeserializeObject <TestClass>($"{{\"{expectedTestFieldResult}\":\"{nameof(TestClass.TestField)}\"}}"); Assert.NotNull(result); Assert.AreEqual(nameof(TestClass.TestField), result.TestField); }
public void EnumValuesAreConvertedFromSnakeCasePriorizingEnumMemberAttribute() { var value = TestEnum.EnumMemberTestValue; var memInfo = typeof(TestEnum).GetMember(value.ToString()); var attribValue = memInfo[0].GetCustomAttribute <EnumMemberAttribute>().Value; var result = HassSerializer.DeserializeObject <TestEnum>($"\"{attribValue}\""); Assert.NotNull(result); Assert.AreEqual(value, result); }
/// <summary> /// Deserializes the event <see cref="Data"/> to the specified .NET type. /// </summary> /// <typeparam name="T">The type of the object to deserialize to.</typeparam> /// <returns>The deserialized data object.</returns> public T DeserializeData <T>() { try { return(HassSerializer.DeserializeObject <T>(this.Data)); } catch (JsonException) { throw; } }
public async Task <TMessage> ReceiveMessageAsync <TMessage>(CancellationToken cancellationToken) where TMessage : BaseMessage { var receivedString = new StringBuilder(); WebSocketReceiveResult rcvResult; do { rcvResult = await this.WebSocket.ReceiveAsync(this.receivingBuffer, cancellationToken); byte[] msgBytes = this.receivingBuffer.Skip(this.receivingBuffer.Offset).Take(rcvResult.Count).ToArray(); receivedString.Append(Encoding.UTF8.GetString(msgBytes)); }while (!rcvResult.EndOfMessage); var rcvMsg = receivedString.ToString(); return(HassSerializer.DeserializeObject <TMessage>(rcvMsg)); }
public void DeserializedEntityRegistryEntryHasNoPendingChanges() { var testEntry = HassSerializer.DeserializeObject <TestRegistryEntry>("{}"); Assert.IsFalse(testEntry.HasPendingChanges); }
protected virtual TModel DeserializeModel(JToken merged, out string modelSerialized) { modelSerialized = this.GetModelSerialized(merged); return(HassSerializer.DeserializeObject <TModel>(modelSerialized)); }
public T DeserializeResult <T>() { return(HassSerializer.DeserializeObject <T>(this.Result)); }
/// <summary> /// Attempts to get the value of the specified attribute by <paramref name="name"/>, /// and cast the value to type <typeparamref name="T" />. /// </summary> /// <exception cref="InvalidCastException">Thrown when the specified type <typeparamref name="T"/> /// cannot be cast to the attribute's current value.</exception> /// <typeparam name="T">The desired type to cast the attribute value to.</typeparam> /// <param name="name">The name of the attribute to retrieve the value for.</param> /// <returns>The attribute's current value, cast to type <typeparamref name="T" />.</returns> public T GetAttributeValue <T>(string name) => !this.Attributes.ContainsKey(name) ? default : HassSerializer.DeserializeObject <T>(this.Attributes[name]);
public T DeserializeEvent <T>() { return(HassSerializer.DeserializeObject <T>(this.Event)); }
/// <summary> /// Deserializes the <see cref="Configuration"/> object with the specified type. /// </summary> /// <typeparam name="T">The type of the object to deserialize to.</typeparam> /// <returns>The deserialized configuration object.</returns> public T DeserializeConfig <T>() { return(HassSerializer.DeserializeObject <T>(this.Configuration)); }