/// <inheritdoc />
        public TMetricType GetSessionMetric <TMetricType>(SessionMetric sessionMetric) where TMetricType : class, IDriverMetric
        {
            var metric = _sessionMetrics.MetricsRegistry.GetMetric(sessionMetric);

            if (metric == null)
            {
                throw new ArgumentException("Could not find the provided session metric: ", sessionMetric.Name);
            }

            if (!(metric is TMetricType typedMetric))
            {
                throw new ArgumentException(
                          $"Session Metric {sessionMetric.Name} is not of type {typeof(TMetricType).Name}. Its type is {metric.GetType().Name}.");
            }

            return(typedMetric);
        }
        public void Should_NotBeEqual_WhenCustomMetricEqualsSessionMetric()
        {
            var     sessionMetric      = new SessionMetric(NodeMetric.Counters.AuthenticationErrors.Name);
            IMetric sessionMetricBase  = sessionMetric;
            IMetric sessionMetricBase2 = sessionMetric;

            var testMetric = new TestMetric {
                Name = NodeMetric.Counters.AuthenticationErrors.Name
            };
            IMetric testMetricBase  = testMetric;
            IMetric testMetricBase2 = testMetric;

            Assert.IsFalse(testMetric.Equals(sessionMetric));
            Assert.IsFalse(sessionMetric.Equals(testMetric));

            Assert.IsFalse(testMetric.Equals(sessionMetricBase));
            Assert.IsFalse(sessionMetricBase.Equals(testMetric));

            Assert.IsFalse(testMetric.Equals(sessionMetricBase2));
            Assert.IsFalse(sessionMetricBase2.Equals(testMetric));

            Assert.IsFalse(testMetricBase.Equals(sessionMetric));
            Assert.IsFalse(sessionMetric.Equals(testMetricBase));

            Assert.IsFalse(testMetricBase.Equals(sessionMetricBase));
            Assert.IsFalse(sessionMetricBase.Equals(testMetricBase));

            Assert.IsFalse(testMetricBase.Equals(sessionMetricBase2));
            Assert.IsFalse(sessionMetricBase2.Equals(testMetricBase));

            Assert.IsFalse(testMetricBase2.Equals(sessionMetric));
            Assert.IsFalse(sessionMetric.Equals(testMetricBase2));

            Assert.IsFalse(testMetricBase2.Equals(sessionMetricBase));
            Assert.IsFalse(sessionMetricBase.Equals(testMetricBase2));

            Assert.IsFalse(testMetricBase2.Equals(sessionMetricBase2));
            Assert.IsFalse(sessionMetricBase2.Equals(testMetricBase2));
        }
        public void Should_NotBeEqual_WhenNodeMetricEqualsSessionMetric()
        {
            var     sessionMetric      = new SessionMetric(NodeMetric.Counters.AuthenticationErrors.Name);
            IMetric sessionMetricBase  = sessionMetric;
            IMetric sessionMetricBase2 = sessionMetric;

            var     nodeMetric      = NodeMetric.Counters.AuthenticationErrors;
            IMetric nodeMetricBase  = nodeMetric;
            IMetric nodeMetricBase2 = nodeMetric;

            Assert.IsFalse(nodeMetric.Equals(sessionMetric));
            Assert.IsFalse(sessionMetric.Equals(nodeMetric));

            Assert.IsFalse(nodeMetric.Equals(sessionMetricBase));
            Assert.IsFalse(sessionMetricBase.Equals(nodeMetric));

            Assert.IsFalse(nodeMetric.Equals(sessionMetricBase2));
            Assert.IsFalse(sessionMetricBase2.Equals(nodeMetric));

            Assert.IsFalse(nodeMetricBase.Equals(sessionMetric));
            Assert.IsFalse(sessionMetric.Equals(nodeMetricBase));

            Assert.IsFalse(nodeMetricBase.Equals(sessionMetricBase));
            Assert.IsFalse(sessionMetricBase.Equals(nodeMetricBase));

            Assert.IsFalse(nodeMetricBase.Equals(sessionMetricBase2));
            Assert.IsFalse(sessionMetricBase2.Equals(nodeMetricBase));

            Assert.IsFalse(nodeMetricBase2.Equals(sessionMetric));
            Assert.IsFalse(sessionMetric.Equals(nodeMetricBase2));

            Assert.IsFalse(nodeMetricBase2.Equals(sessionMetricBase));
            Assert.IsFalse(sessionMetricBase.Equals(nodeMetricBase2));

            Assert.IsFalse(nodeMetricBase2.Equals(sessionMetricBase2));
            Assert.IsFalse(sessionMetricBase2.Equals(nodeMetricBase2));
        }
Exemple #4
0
 /// <summary>
 /// Utility method that wraps a call to <see cref="IDriverMetrics.GetSessionMetric{TMetricType}"/> with the appropriate AppMetrics based counter type
 /// as the type parameter. For more information see the API docs of <see cref="IDriverMetrics.GetSessionMetric{TMetricType}"/>.
 /// </summary>
 public static IAppMetricsCounter GetSessionCounter(this IDriverMetrics driverMetrics, SessionMetric sessionMetric)
 {
     MetricsExtensions.ThrowIfNull(driverMetrics, sessionMetric);
     return(driverMetrics.GetSessionMetric <IAppMetricsCounter>(sessionMetric));
 }
Exemple #5
0
 private static void ThrowIfNull(IDriverMetrics driverMetrics, SessionMetric sessionMetric)
 {
     MetricsExtensions.ThrowIfNull(driverMetrics, nameof(driverMetrics));
     MetricsExtensions.ThrowIfNull(sessionMetric, nameof(sessionMetric));
 }
Exemple #6
0
 /// <summary>
 /// Utility method that wraps a call to <see cref="IDriverMetrics.GetSessionMetric{TMetricType}"/> with the appropriate AppMetrics based gauge type
 /// as the type parameter. For more information see the API docs of <see cref="IDriverMetrics.GetSessionMetric{TMetricType}"/>.
 /// </summary>
 public static IAppMetricsGauge GetSessionGauge(this IDriverMetrics driverMetrics, SessionMetric sessionMetric)
 {
     MetricsExtensions.ThrowIfNull(driverMetrics, sessionMetric);
     return(driverMetrics.GetSessionMetric <IAppMetricsGauge>(sessionMetric));
 }