public void BuildImpressionWithOptimizedAndWithPreviousTime() { // Arrange. var impressionsManager = new ImpressionsManager(_impressionsLog.Object, _customerImpressionListener.Object, _impressionsCounter.Object, true, ImpressionsMode.Optimized, _telemetryRuntimeProducer.Object, _tasksManager, _impressionsObserver.Object); var impTime = CurrentTimeHelper.CurrentTimeMillis(); var ptTime = impTime - 150; _impressionsObserver .Setup(mock => mock.TestAndSet(It.IsAny <KeyImpression>())) .Returns(ptTime); // Act. var result = impressionsManager.BuildImpression("matching-key", "feature", "off", impTime, 432543, "label", "bucketing-key"); // Assert. Assert.AreEqual("matching-key", result.keyName); Assert.AreEqual("feature", result.feature); Assert.AreEqual("off", result.treatment); Assert.AreEqual(impTime, result.time); Assert.AreEqual("label", result.label); Assert.AreEqual("bucketing-key", result.bucketingKey); Assert.AreEqual(ptTime, result.previousTime); _impressionsObserver.Verify(mock => mock.TestAndSet(It.IsAny <KeyImpression>()), Times.Once); _impressionsCounter.Verify(mock => mock.Inc("feature", impTime), Times.Once); }
public void TrackWithoutCustomerListener_Debug() { // Arrange. var impressionsObserver = new ImpressionsObserver(new ImpressionHasher()); var impressionsCounter = new ImpressionsCounter(); var impressionsManager = new ImpressionsManager(_impressionsLog.Object, null, impressionsCounter, true, ImpressionsMode.Debug, impressionsObserver); var impTime = CurrentTimeHelper.CurrentTimeMillis(); var impressions = new List <KeyImpression> { impressionsManager.BuildImpression("matching-key", "feature", "off", impTime, 432543, "label", "bucketing-key"), impressionsManager.BuildImpression("matching-key-2", "feature-2", "off", impTime, 432543, "label-2", "bucketing-key"), impressionsManager.BuildImpression("matching-key-2", "feature-2", "off", impTime, 432543, "label-2", "bucketing-key"), impressionsManager.BuildImpression("matching-key-2", "feature-2", "off", impTime, 432543, "label-2", "bucketing-key") }; // Act. impressionsManager.Track(impressions); // Assert. Thread.Sleep(1000); _impressionsLog.Verify(mock => mock.Log(impressions), Times.Once); _customerImpressionListener.Verify(mock => mock.Log(It.IsAny <KeyImpression>()), Times.Never); }
public void BuildImpressionWithDebugAndWithoutPreviousTime() { // Arrange. var impressionsManager = new ImpressionsManager(_impressionsLog.Object, _customerImpressionListener.Object, _impressionsCounter.Object, false, ImpressionsMode.Debug, _impressionsObserver.Object); var impTime = CurrentTimeHelper.CurrentTimeMillis(); // Act. var result = impressionsManager.BuildImpression("matching-key", "feature", "off", impTime, 432543, "label", "bucketing-key"); // Assert. Assert.AreEqual("matching-key", result.keyName); Assert.AreEqual("feature", result.feature); Assert.AreEqual("off", result.treatment); Assert.AreEqual(impTime, result.time); Assert.AreEqual("label", result.label); Assert.AreEqual("bucketing-key", result.bucketingKey); Assert.IsNull(result.previousTime); _impressionsObserver.Verify(mock => mock.TestAndSet(It.IsAny <KeyImpression>()), Times.Never); _impressionsCounter.Verify(mock => mock.Inc("feature", impTime), Times.Never); }