private static PreprocessedData Preprocess(Operator op, IEnumerable <LdValue> values) { if (op == Operator.In) { return(new PreprocessedData { ValuesAsSet = values.ToImmutableHashSet() }); } if (op == Operator.Matches) { return(PreprocessValues(values, value => value.IsString ? new PreprocessedValue { Regex = new Regex(value.AsString) } : new PreprocessedValue())); } if (op == Operator.Before || op == Operator.After) { return(PreprocessValues(values, value => new PreprocessedValue { DateTime = Operator.ValueToDate(value) })); } if (op == Operator.SemVerEqual || op == Operator.SemVerGreaterThan || op == Operator.SemVerLessThan) { return(PreprocessValues(values, value => new PreprocessedValue { SemVer = Operator.ValueToSemVer(value) })); } return(new PreprocessedData()); }
public void CanParseUnixMillis() { var timestampMillis = 1000; var actualDateTime = Operator.ValueToDate(LdValue.Of(timestampMillis)); var expectedDateTime = new DateTime(1970, 1, 1, 0, 0, 1, DateTimeKind.Utc); Assert.Equal(expectedDateTime, actualDateTime); }
public void CanParseTimestampFromTimezone() { var timestamp = "1970-01-01T00:00:00-01:00"; var actualDateTime = Operator.ValueToDate(LdValue.Of(timestamp)); var expectedDateTime = new DateTime(1970, 1, 1, 1, 0, 0, DateTimeKind.Utc); Assert.Equal(expectedDateTime, actualDateTime); }