Fix newlines and indentation in ModelBuildingException message (#1257)

This commit is contained in:
Guillaume Nodet 2023-09-22 12:54:27 +02:00 committed by GitHub
parent 6bf55cfc11
commit 35022a3616
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 4 deletions

View File

@ -128,7 +128,8 @@ public class ModelBuildingException extends Exception {
return null;
}
private static String toMessage(String modelId, List<ModelProblem> problems) {
// Package protected for test
static String toMessage(String modelId, List<ModelProblem> problems) {
StringWriter buffer = new StringWriter(1024);
PrintWriter writer = new PrintWriter(buffer);
@ -140,17 +141,17 @@ public class ModelBuildingException extends Exception {
writer.print(" for ");
writer.print(modelId);
}
writer.println();
for (ModelProblem problem : problems) {
writer.print("[");
writer.println();
writer.print(" - [");
writer.print(problem.getSeverity());
writer.print("] ");
writer.print(problem.getMessage());
String location = ModelProblemUtils.formatLocation(problem, modelId);
if (!location.isEmpty()) {
writer.print(" @ ");
writer.println(location);
writer.print(location);
}
}

View File

@ -0,0 +1,42 @@
/*
* 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.maven.model.building;
import java.util.Arrays;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class ModelBuildingExceptionTest {
@Test
void testMessage() {
DefaultModelProblem pb1 =
new DefaultModelProblem("message1", ModelProblem.Severity.ERROR, null, "source", 0, 0, "modelId", null);
DefaultModelProblem pb2 =
new DefaultModelProblem("message2", ModelProblem.Severity.ERROR, null, "source", 0, 0, "modelId", null);
String msg = ModelBuildingException.toMessage("modelId", Arrays.asList(pb1, pb2));
assertEquals(
"2 problems were encountered while building the effective model for modelId" + System.lineSeparator()
+ " - [ERROR] message1" + System.lineSeparator()
+ " - [ERROR] message2",
msg);
}
}