From addd9ad42c6f111e311332e36b53d44d404ddd61 Mon Sep 17 00:00:00 2001 From: Mark Terry Date: Thu, 10 Oct 2019 14:52:33 +1000 Subject: [PATCH 1/4] [PIE-2023] Fixed casing of dynamic MetricCategorys Signed-off-by: Mark Terry --- .../hyperledger/besu/cli/converter/MetricCategoryConverter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java b/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java index 0d1f0ad2236..2909a40d190 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java @@ -41,6 +41,6 @@ public & MetricCategory> void addCategories(final Class ca } public void addRegistryCategory(final MetricCategory metricCategory) { - metricCategories.put(metricCategory.getName(), metricCategory); + metricCategories.put(metricCategory.getName().toUpperCase(), metricCategory); } } From 57516895ccf37e8723135b2a7ec033bb60a628de Mon Sep 17 00:00:00 2001 From: Mark Terry Date: Fri, 11 Oct 2019 10:19:01 +1000 Subject: [PATCH 2/4] [PIE-2023] Tests. Signed-off-by: Mark Terry --- .../converter/MetricCategoryConverter.java | 6 +++ .../MetricCategoryConverterTest.java | 44 +++++++++++++++++++ build.gradle | 4 +- 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java diff --git a/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java b/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java index 2909a40d190..9752c6df28d 100644 --- a/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java +++ b/besu/src/main/java/org/hyperledger/besu/cli/converter/MetricCategoryConverter.java @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.Map; +import com.google.common.annotations.VisibleForTesting; import picocli.CommandLine; public class MetricCategoryConverter implements CommandLine.ITypeConverter { @@ -43,4 +44,9 @@ public & MetricCategory> void addCategories(final Class ca public void addRegistryCategory(final MetricCategory metricCategory) { metricCategories.put(metricCategory.getName().toUpperCase(), metricCategory); } + + @VisibleForTesting + Map getMetricCategories() { + return metricCategories; + } } diff --git a/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java b/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java new file mode 100644 index 00000000000..fca178f1350 --- /dev/null +++ b/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java @@ -0,0 +1,44 @@ +package org.hyperledger.besu.cli.converter; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.mockito.Mockito.when; + +import org.hyperledger.besu.plugin.services.metrics.MetricCategory; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class MetricCategoryConverterTest { + + private MetricCategoryConverter metricCategoryConverter; + + @Mock MetricCategory metricCategory; + + @Before + public void setUp() { + metricCategoryConverter = new MetricCategoryConverter(); + } + + @Test + public void convertShouldFailIfValueNotRegistered() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> metricCategoryConverter.convert("notRegistered")); + } + + @Test + public void addRegistryCategoryShouldUppercaseInputValues() { + when(metricCategory.getName()).thenReturn("testcat"); + metricCategoryConverter.addRegistryCategory(metricCategory); + when(metricCategory.getName()).thenReturn("tesTCat2"); + metricCategoryConverter.addRegistryCategory(metricCategory); + boolean containsLowercase = + metricCategoryConverter.getMetricCategories().keySet().stream() + .anyMatch(testString -> testString.chars().anyMatch(Character::isLowerCase)); + assertThat(containsLowercase).isFalse(); + } +} diff --git a/build.gradle b/build.gradle index 0a9dff7ad2c..4c2edd80e8d 100644 --- a/build.gradle +++ b/build.gradle @@ -276,8 +276,8 @@ task checkMavenCoordianteCollisions { def coordinate = it.publishing?.publications[0].coordinates if (coordinates.containsKey(coordinate)) { throw new GradleException("Duplicate maven coordinates detected, ${coordinate} is used by " + - "both ${coordinates[coordinate]} and ${it.path}.\n" + - "Please add a `publishing` script block to one or both subprojects.") + "both ${coordinates[coordinate]} and ${it.path}.\n" + + "Please add a `publishing` script block to one or both subprojects.") } coordinates[coordinate] = it.path } From 446c5ed5b7cffe794bf33e17a8f0cc20940e4214 Mon Sep 17 00:00:00 2001 From: Mark Terry Date: Fri, 11 Oct 2019 10:41:40 +1000 Subject: [PATCH 3/4] [PIE-2023] PR improvements. Signed-off-by: Mark Terry --- .../besu/cli/converter/MetricCategoryConverterTest.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java b/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java index fca178f1350..82ff79b0661 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java @@ -36,9 +36,14 @@ public void addRegistryCategoryShouldUppercaseInputValues() { metricCategoryConverter.addRegistryCategory(metricCategory); when(metricCategory.getName()).thenReturn("tesTCat2"); metricCategoryConverter.addRegistryCategory(metricCategory); - boolean containsLowercase = + + final boolean containsLowercase = metricCategoryConverter.getMetricCategories().keySet().stream() .anyMatch(testString -> testString.chars().anyMatch(Character::isLowerCase)); + assertThat(containsLowercase).isFalse(); + assertThat(metricCategoryConverter.getMetricCategories().size()).isEqualTo(2); + assertThat(metricCategoryConverter.getMetricCategories().keySet()) + .containsExactlyInAnyOrder("TESTCAT", "TESTCAT2"); } } From 1bef7999261dab3e3accdc4d08433a3eb8f5f9ce Mon Sep 17 00:00:00 2001 From: Mark Terry Date: Fri, 11 Oct 2019 10:58:33 +1000 Subject: [PATCH 4/4] [PIE-2023] Test header. Signed-off-by: Mark Terry --- .../cli/converter/MetricCategoryConverterTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java b/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java index 82ff79b0661..db34fb9d5e4 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/converter/MetricCategoryConverterTest.java @@ -1,3 +1,17 @@ +/* + * Copyright ConsenSys AG. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ package org.hyperledger.besu.cli.converter; import static org.assertj.core.api.Assertions.assertThat;