public void Test(TestCase testCase) { // ARRANGE SetUp(testCase); var transactionMetricName = GetTransactionMetricName(testCase.TransactionName); Mock.Arrange(() => _transactionMetricNameMaker.GetTransactionMetricName(Arg.IsAny <ITransactionName>())) .Returns(transactionMetricName); ITimer timer = Mock.Create <ITimer>(); var responseTime = TimeSpan.FromMilliseconds(testCase.ApplicationTimeMilliseconds); Mock.Arrange(() => timer.Duration).Returns(responseTime); ITransactionName name = TransactionName.ForWebTransaction(transactionMetricName.Prefix, transactionMetricName.UnPrefixedName); var priority = 0.5f; IInternalTransaction tx = new Transaction(_configuration, name, timer, DateTime.UtcNow, Mock.Create <ICallStackManager>(), Mock.Create <IDatabaseService>(), priority, Mock.Create <IDatabaseStatementParser>(), Mock.Create <IDistributedTracePayloadHandler>(), Mock.Create <IErrorService>(), _attribDefs); tx.TransactionMetadata.SetQueueTime(TimeSpan.FromMilliseconds(testCase.QueueTimeMilliseconds)); testCase.UserAttributes.ForEach(attr => tx.AddCustomAttribute(attr.Key, attr.Value)); tx.TransactionMetadata.SetCrossApplicationReferrerTripId(""); // ACT var browserMonitoringScript = _browserMonitoringScriptMaker.GetScript(tx); // ASSERT var extractedConfigurationDataJson = Regex.Match(browserMonitoringScript, @"NREUM.info = (\{.+\})").Groups[1].Value; var actualConfigurationData = JsonConvert.DeserializeObject <ExpectedBrowserMonitoringConfigurationData>(extractedConfigurationDataJson); NrAssert.Multiple ( () => Assert.AreEqual(testCase.ExpectedConfigurationData.Agent, actualConfigurationData.Agent), () => Assert.AreEqual(testCase.ExpectedConfigurationData.ApplicationId, actualConfigurationData.ApplicationId), () => Assert.AreEqual(testCase.ExpectedConfigurationData.ApplicationTimeMilliseconds, actualConfigurationData.ApplicationTimeMilliseconds), () => Assert.AreEqual(testCase.ExpectedConfigurationData.Beacon, actualConfigurationData.Beacon), () => Assert.AreEqual(testCase.ExpectedConfigurationData.BrowserLicenseKey, actualConfigurationData.BrowserLicenseKey), () => Assert.AreEqual(testCase.ExpectedConfigurationData.ErrorBeacon, actualConfigurationData.ErrorBeacon), () => Assert.AreEqual(testCase.ExpectedConfigurationData.ObfuscatedTransactionName, actualConfigurationData.ObfuscatedTransactionName), () => Assert.AreEqual(testCase.ExpectedConfigurationData.ObfuscatedUserAttributes, actualConfigurationData.ObfuscatedUserAttributes), () => Assert.AreEqual(testCase.ExpectedConfigurationData.QueueTimeMilliseconds, actualConfigurationData.QueueTimeMilliseconds) ); Teardown(); }