From 292b14376787aacf9b9bf1d0fe66f63d772cd3da Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Tue, 19 Mar 2024 16:00:55 -0700 Subject: [PATCH] Report writer tests. --- .../MultipleFileTaskReportFileWriterTest.java | 64 +++++++++++++++++++ .../SingleFileTaskReportFileWriterTest.java | 60 +++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 indexing-service/src/test/java/org/apache/druid/indexing/common/MultipleFileTaskReportFileWriterTest.java create mode 100644 indexing-service/src/test/java/org/apache/druid/indexing/common/SingleFileTaskReportFileWriterTest.java diff --git a/indexing-service/src/test/java/org/apache/druid/indexing/common/MultipleFileTaskReportFileWriterTest.java b/indexing-service/src/test/java/org/apache/druid/indexing/common/MultipleFileTaskReportFileWriterTest.java new file mode 100644 index 000000000000..146283f699d8 --- /dev/null +++ b/indexing-service/src/test/java/org/apache/druid/indexing/common/MultipleFileTaskReportFileWriterTest.java @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.druid.indexing.common; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableMap; +import org.apache.druid.segment.TestHelper; +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Map; + +public class MultipleFileTaskReportFileWriterTest +{ + private static final String TASK_ID = "mytask"; + + @Rule + public final TemporaryFolder tempFolder = new TemporaryFolder(); + + @Test + public void testReport() throws IOException + { + final ObjectMapper mapper = TestHelper.makeJsonMapper(); + final File file = tempFolder.newFile(); + final MultipleFileTaskReportFileWriter writer = new MultipleFileTaskReportFileWriter(); + writer.setObjectMapper(mapper); + writer.add(TASK_ID, file); + + final ImmutableMap reportsMap = ImmutableMap.of( + IngestionStatsAndErrorsTaskReport.REPORT_KEY, + new IngestionStatsAndErrorsTaskReport(TASK_ID, null) + ); + + writer.write(TASK_ID, reportsMap); + + Assert.assertEquals( + reportsMap, + mapper.readValue(Files.readAllBytes(file.toPath()), new TypeReference>() {}) + ); + } +} diff --git a/indexing-service/src/test/java/org/apache/druid/indexing/common/SingleFileTaskReportFileWriterTest.java b/indexing-service/src/test/java/org/apache/druid/indexing/common/SingleFileTaskReportFileWriterTest.java new file mode 100644 index 000000000000..893d8fcdd574 --- /dev/null +++ b/indexing-service/src/test/java/org/apache/druid/indexing/common/SingleFileTaskReportFileWriterTest.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +package org.apache.druid.indexing.common; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableMap; +import org.apache.druid.segment.TestHelper; +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Map; + +public class SingleFileTaskReportFileWriterTest +{ + private static final String TASK_ID = "mytask"; + + @Rule + public final TemporaryFolder tempFolder = new TemporaryFolder(); + + @Test + public void testReport() throws IOException + { + final ObjectMapper mapper = TestHelper.makeJsonMapper(); + final File file = tempFolder.newFile(); + final SingleFileTaskReportFileWriter writer = new SingleFileTaskReportFileWriter(file); + writer.setObjectMapper(mapper); + final ImmutableMap reportsMap = ImmutableMap.of( + IngestionStatsAndErrorsTaskReport.REPORT_KEY, + new IngestionStatsAndErrorsTaskReport(TASK_ID, null) + ); + writer.write(TASK_ID, reportsMap); + Assert.assertEquals( + reportsMap, + mapper.readValue(Files.readAllBytes(file.toPath()), new TypeReference>() {}) + ); + } +}