public void TryGetEnumFromSnakeCase() { var success = HassSerializer.TryGetEnumFromSnakeCase <TestEnum>(expectedTestValueEnumResult, out var result); Assert.IsTrue(success); Assert.AreEqual(TestEnum.TestValue, result); }
public void TryGetEnumFromSnakeCaseWithInvalidValue() { var success = HassSerializer.TryGetEnumFromSnakeCase <TestEnum>("invalid_value", out var result); Assert.IsFalse(success); Assert.AreEqual(default(TestEnum), result); }
private async Task <StateChangedEvent> ForceStateChangedAndGetEventData(MockEventSubscriber subscriber) { var domain = testEntitytId.GetDomain(); var update = await this.hassWSApi.CallServiceForEntitiesAsync(domain, "toggle", testEntitytId); Assert.NotNull(update, "SetUp failed"); var eventResultInfo = await subscriber.WaitFirstEventArgWithTimeoutAsync <EventResultInfo>( (x) => HassSerializer.TryGetEnumFromSnakeCase <KnownEventTypes>(x.EventType, out var knownEventType) && knownEventType == KnownEventTypes.StateChanged, 500); Assert.NotNull(eventResultInfo, "SetUp failed"); return(eventResultInfo.DeserializeData <StateChangedEvent>()); }
public TEnum AsEnum(string value) { if (string.IsNullOrEmpty(value)) { if (this.valueForNullString.HasValue) { return(this.valueForNullString.Value); } else { throw new ArgumentException($"'{nameof(value)}' cannot be null or empty", nameof(value)); } } if (!this.cache.Forward.TryGetValue(value, out var result) && HassSerializer.TryGetEnumFromSnakeCase(value, out result)) { this.cache.Add(value, result); } return(result); }