public TransactionContext(
     string transactionId,
     DateTimeOffset startTime,
     TransactionConfigImmutable config,
     PerTransactionConfigImmutable?perConfig)
 {
     TransactionId = transactionId;
     StartTime     = startTime;
     Config        = config;
     PerConfig     = perConfig ?? new PerTransactionConfig().AsImmutable();
 }
Example #2
0
        public void TransactionLogger_Redacts_Properly()
        {
            var testOutputLogger = new TestOutputLogger(this.outputHelper, nameof(LoggerTests));
            var config           = new TransactionConfigImmutable(
                ExpirationTime: TimeSpan.FromMinutes(10),
                CleanupLostAttempts: false,
                CleanupClientAttempts: false,
                CleanupWindow: TimeSpan.FromSeconds(10),
                KeyValueTimeout: TimeSpan.FromSeconds(10),
                DurabilityLevel: DurabilityLevel.Majority,
                LoggerFactory: null,
                MetadataCollection: null
                );
            var ctx                = new TransactionContext(Guid.NewGuid().ToString(), DateTimeOffset.UtcNow, config, null);
            var loggerFactory      = new TransactionsLoggerFactory(new TestOutputLoggerFactory(this.outputHelper), ctx);
            var transactionsLogger = loggerFactory.CreateLogger(nameof(TransactionLogger_Redacts_Properly));
            var redactor           = new TestRedactor();

            transactionsLogger.LogDebug("Example UD: {id}", redactor.UserData("default:_default:_default" + Guid.NewGuid().ToString()));
            var logs = ctx.Logs.ToList();

            Assert.NotEmpty(logs);
            Assert.Collection(logs, s => s.Contains("</ud>"));
        }