コード例 #1
0
        public void EnumValuesAreConvertedFromSnakeCase()
        {
            var result = HassSerializer.DeserializeObject <TestEnum>($"\"{expectedTestValueEnumResult}\"");

            Assert.NotNull(result);
            Assert.AreEqual(TestEnum.TestValue, result);
        }
コード例 #2
0
        public void FieldsAreConvertedFromSnakeCase()
        {
            var result = HassSerializer.DeserializeObject <TestClass>($"{{\"{expectedTestFieldResult}\":\"{nameof(TestClass.TestField)}\"}}");

            Assert.NotNull(result);
            Assert.AreEqual(nameof(TestClass.TestField), result.TestField);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 /// <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;
     }
 }
コード例 #5
0
        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));
        }
コード例 #6
0
        public void DeserializedEntityRegistryEntryHasNoPendingChanges()
        {
            var testEntry = HassSerializer.DeserializeObject <TestRegistryEntry>("{}");

            Assert.IsFalse(testEntry.HasPendingChanges);
        }
コード例 #7
0
 protected virtual TModel DeserializeModel(JToken merged, out string modelSerialized)
 {
     modelSerialized = this.GetModelSerialized(merged);
     return(HassSerializer.DeserializeObject <TModel>(modelSerialized));
 }
コード例 #8
0
ファイル: ResultMessage.cs プロジェクト: vicfergar/HassClient
 public T DeserializeResult <T>()
 {
     return(HassSerializer.DeserializeObject <T>(this.Result));
 }
コード例 #9
0
ファイル: StateModel.cs プロジェクト: vicfergar/HassClient
 /// <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]);
コード例 #10
0
 public T DeserializeEvent <T>()
 {
     return(HassSerializer.DeserializeObject <T>(this.Event));
 }
コード例 #11
0
ファイル: PanelInfo.cs プロジェクト: vicfergar/HassClient
 /// <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));
 }