[java-metadata-aggregator] branch main updated: MDA-65 - Catch up on unit tests
Ian Young
ian at iay.org.uk
Fri Sep 25 16:56:17 UTC 2020
This is an automated email from the git hooks/post-receive script.
iay pushed a commit to branch main
in repository java-metadata-aggregator.
View the commit online:
http://git.shibboleth.net/view/?p=java-metadata-aggregator.git;a=commit;h=77323f233166eae0dc61661da2c49bbf8b2f6fe7
The following commit(s) were added to refs/heads/main by this push:
new 77323f2 MDA-65 - Catch up on unit tests
77323f2 is described below
commit 77323f233166eae0dc61661da2c49bbf8b2f6fe7
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Fri Sep 25 17:56:08 2020 +0100
MDA-65 - Catch up on unit tests
https://issues.shibboleth.net/jira/browse/MDA-65
---
.../pipeline/StatusMetadataLoggingStage.java | 7 +-
.../pipeline/StatusMetadataLoggingStageTest.java | 101 +++++++++++++++++++++
2 files changed, 105 insertions(+), 3 deletions(-)
diff --git a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStage.java b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStage.java
index c7bae52..49e519c 100644
--- a/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStage.java
+++ b/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStage.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
import org.slf4j.Logger;
@@ -67,7 +68,7 @@ public class StatusMetadataLoggingStage<T> extends AbstractItemMetadataSelection
* @param statuses status messages to log
*/
private void logInfos(@Nonnull final String itemId,
- @Nonnull @NonnullElements final List<? extends ItemMetadata> statuses) {
+ @Nullable @NonnullElements final List<? extends ItemMetadata> statuses) {
if (statuses != null && !statuses.isEmpty() && log.isInfoEnabled()) {
log.info("Item {} was marked with the following Info status messages", itemId);
for (final ItemMetadata info : statuses) {
@@ -84,7 +85,7 @@ public class StatusMetadataLoggingStage<T> extends AbstractItemMetadataSelection
* @param statuses status messages to log
*/
private void logWarnings(@Nonnull final String itemId,
- @Nonnull @NonnullElements final List<? extends ItemMetadata> statuses) {
+ @Nullable @NonnullElements final List<? extends ItemMetadata> statuses) {
if (statuses != null && !statuses.isEmpty() && log.isWarnEnabled()) {
log.warn("Item {} was marked with the following Warning status messages", itemId);
for (final ItemMetadata info : statuses) {
@@ -101,7 +102,7 @@ public class StatusMetadataLoggingStage<T> extends AbstractItemMetadataSelection
* @param statuses status messages to log
*/
private void logErrors(@Nonnull final String itemId,
- @Nonnull @NonnullElements final List<? extends ItemMetadata> statuses) {
+ @Nullable @NonnullElements final List<? extends ItemMetadata> statuses) {
if (statuses != null && !statuses.isEmpty() && log.isErrorEnabled()) {
log.error("Item {} was marked with the following Error status messages", itemId);
for (final ItemMetadata info : statuses) {
diff --git a/aggregator-pipeline/src/test/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStageTest.java b/aggregator-pipeline/src/test/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStageTest.java
new file mode 100644
index 0000000..4664aed
--- /dev/null
+++ b/aggregator-pipeline/src/test/java/net/shibboleth/metadata/pipeline/StatusMetadataLoggingStageTest.java
@@ -0,0 +1,101 @@
+
+package net.shibboleth.metadata.pipeline;
+
+import java.util.List;
+import java.util.Set;
+
+import org.slf4j.LoggerFactory;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.read.ListAppender;
+import net.shibboleth.metadata.ErrorStatus;
+import net.shibboleth.metadata.InfoStatus;
+import net.shibboleth.metadata.Item;
+import net.shibboleth.metadata.ItemIdentificationStrategy;
+import net.shibboleth.metadata.MockItem;
+import net.shibboleth.metadata.WarningStatus;
+
+
+public class StatusMetadataLoggingStageTest {
+
+ private Logger logger;
+ private ListAppender<ILoggingEvent> listAppender;
+
+ @BeforeMethod
+ private void initializeLogger() {
+ // Find the (logback) logger for the class under test
+ logger = (Logger)LoggerFactory.getLogger(StatusMetadataLoggingStage.class);
+
+ // Create and start a ListAppender
+ listAppender = new ListAppender<>();
+ listAppender.start();
+
+ // Add the appender to the logger.
+ logger.addAppender(listAppender);
+ }
+
+ @AfterMethod
+ private void terminateLogger() {
+ logger.detachAppender(listAppender);
+ listAppender.stop();
+ }
+
+ private static class StringSelfIdentificationStrategy implements ItemIdentificationStrategy<String> {
+
+ @Override
+ public String getItemIdentifier(Item<String> item) {
+ return item.unwrap();
+ }
+
+ }
+
+ private List<Item<String>> getItems() {
+ final List<Item<String>> items = List.of(new MockItem("item1"),
+ new MockItem("item2"), new MockItem("item3"));
+ items.get(0).getItemMetadata().put(new ErrorStatus("comp1", "err1"));
+ items.get(0).getItemMetadata().put(new ErrorStatus("comp1", "err2"));
+ items.get(0).getItemMetadata().put(new WarningStatus("comp1", "warn1"));
+ items.get(0).getItemMetadata().put(new InfoStatus("comp1", "info1"));
+ items.get(2).getItemMetadata().put(new WarningStatus("comp1", "warn2"));
+ return items;
+ }
+
+ @Test
+ public void testLoggingAllKinds() throws Exception {
+ final var items = getItems();
+ final var stage = new StatusMetadataLoggingStage<String>();
+ stage.setId("test");
+ stage.setIdentificationStrategy(new StringSelfIdentificationStrategy());
+ stage.setSelectionRequirements(Set.of(ErrorStatus.class, InfoStatus.class, WarningStatus.class));
+ stage.initialize();
+
+ stage.execute(items);
+
+ stage.destroy();
+
+ final var logsList = listAppender.list;
+ Assert.assertEquals(logsList.size(), 9); // 2+1 + 1+1 + 1+1 + 1+1
+ }
+
+ @Test
+ public void testLoggingJustErrors() throws Exception {
+ final var items = getItems();
+ final var stage = new StatusMetadataLoggingStage<String>();
+ stage.setId("test");
+ stage.setIdentificationStrategy(new StringSelfIdentificationStrategy());
+ stage.setSelectionRequirements(Set.of(ErrorStatus.class));
+ stage.initialize();
+
+ stage.execute(items);
+
+ stage.destroy();
+
+ final var logsList = listAppender.list;
+ Assert.assertEquals(logsList.size(), 3); // 2+1
+ }
+}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list