private Number getStatisticalValue(FieldStatsResult fieldStatsResult) {
   switch (statsFunction) {
     case "count":
       return fieldStatsResult.getCount();
     case "mean":
       return fieldStatsResult.getMean();
     case "stddev":
       return fieldStatsResult.getStdDeviation();
     case "min":
       return fieldStatsResult.getMin();
     case "max":
       return fieldStatsResult.getMax();
     case "sum":
       return fieldStatsResult.getSum();
     case "variance":
       return fieldStatsResult.getVariance();
     case "squares":
       return fieldStatsResult.getSumOfSquares();
     case "cardinality":
       return fieldStatsResult.getCardinality();
     default:
       throw new IllegalArgumentException(
           "Statistic function " + statsFunction + " is not supported");
   }
 }
  protected FieldStatsResult getFieldStatsResult(
      FieldValueAlertCondition.CheckType type, Number retValue) {
    final Double value = (Double) retValue;
    final FieldStatsResult fieldStatsResult = mock(FieldStatsResult.class);

    when(fieldStatsResult.getCount()).thenReturn(1L);

    switch (type) {
      case MIN:
        when(fieldStatsResult.getMin()).thenReturn(value);
      case MAX:
        when(fieldStatsResult.getMax()).thenReturn(value);
      case MEAN:
        when(fieldStatsResult.getMean()).thenReturn(value);
      case STDDEV:
        when(fieldStatsResult.getStdDeviation()).thenReturn(value);
      case SUM:
        when(fieldStatsResult.getSum()).thenReturn(value);
    }
    return fieldStatsResult;
  }