public void Should_be_able_to_apply_filter_using_delegatefilter() { var filter = new TextLogMaskingFilter(new TextMaskingRule() { Field = "txid", Mask = Masks.DefaultMask }); var delegateFilter = new DelegateFilter(filter.Apply); var id = Convert.ToString(Guid.NewGuid()); var apiLog = Utility.GetApiLog(); apiLog.Id = id; var filteredLog = delegateFilter.Apply(apiLog); var formatter = JsonLogFormatter.Instance; var firehoseSink = Utility.GetFirehoseSink(); var redisSink = Utility.GetRedisSink(); var compositeSink = Utility.GetCompositeSink(formatter, redisSink, firehoseSink); var logWriter = new LogWriter(formatter, compositeSink); logWriter.WriteAsync(filteredLog).GetAwaiter().GetResult(); //Thread.Sleep(60000); var logData = Utility.GetEsLogDataById(id); var esLogId = string.Empty; var expected = "1*********3"; string actual; logData.TryGetValue("txid", out actual); Assert.Equal(expected, actual); }
public void VerifyWhenCustomMaskSpecified_FieldsAreMaskedCorrectly() { var apiLog = new ApiLog(); var filter = new DelegateFilter((ILog log) => { var copy = new List <KeyValuePair <string, object> >(); var fields = log.GetFields(); foreach (var field in fields) { if (field.Key == "fieldToMask") { copy.Add(new KeyValuePair <string, object>(field.Key, Masks.DefaultMask.Mask(field.Value.ToString()))); } else if (field.Key == "fieldNotToMask") { copy.Add(field); } } return(new SimpleLog(log.Id, log.LogTime, copy)); }); apiLog.TrySetValue("fieldToMask", "ValueToMask"); apiLog.TrySetValue("fieldNotToMask", "ValueNotToMask"); var masked = filter.Apply(apiLog); var maskedFields = masked.GetFields(); var maskedField = maskedFields.First(x => x.Key == "fieldToMask").Value; var notMaskedField = maskedFields.First(x => x.Key == "fieldNotToMask").Value; Assert.Equal(maskedField, "V*********k"); Assert.Equal(notMaskedField, "ValueNotToMask"); }