@Override
    public Long getValue() {
        return Arrays.stream(watermarkGauges).mapToLong(WatermarkGauge::getValue).min().orElse(0);
    }
@Test
    void testSetCurrentLowWatermark() {
        WatermarkGauge metric1 = new WatermarkGauge();
        WatermarkGauge metric2 = new WatermarkGauge();
        MinWatermarkGauge metric = new MinWatermarkGauge(metric1, metric2);

        assertThat(metric.getValue()).isEqualTo(Long.MIN_VALUE);

        metric1.setCurrentWatermark(1);
        assertThat(metric.getValue()).isEqualTo(Long.MIN_VALUE);

        metric2.setCurrentWatermark(2);
        assertThat(metric.getValue()).isOne();

        metric1.setCurrentWatermark(3);
        assertThat(metric.getValue()).isEqualTo(2L);
    }