View Javadoc
1   /*
2    * SPDX-License-Identifier: Apache-2.0
3    * See LICENSE file for details.
4    *
5    * Copyright 2025-2026 Hazendaz
6    * Copyright 2011-2025 Acegi Technology Pty Limited.
7    */
8   package com.github.hazendaz.maven.xml_format_maven_plugin;
9   
10  import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
11  
12  import java.lang.reflect.Field;
13  
14  import org.junit.jupiter.api.Test;
15  
16  /** Tests coverage of generated {@link HelpMojo}. */
17  class HelpMojoTest {
18  
19      @Test
20      void executeSupportsDetailedOutputWithInvalidSizing() {
21          final HelpMojo mojo = new HelpMojo();
22          setField(mojo, "detail", true);
23          setField(mojo, "lineLength", 0);
24          setField(mojo, "indentSize", 0);
25  
26          assertDoesNotThrow(mojo::execute);
27      }
28  
29      @Test
30      void executeSupportsSpecificGoalOutput() {
31          final HelpMojo mojo = new HelpMojo();
32          setField(mojo, "detail", true);
33          setField(mojo, "goal", "check");
34  
35          assertDoesNotThrow(mojo::execute);
36      }
37  
38      @Test
39      void executeSupportsUnknownGoalWithoutFailure() {
40          final HelpMojo mojo = new HelpMojo();
41          setField(mojo, "goal", "unknown-goal");
42  
43          assertDoesNotThrow(mojo::execute);
44      }
45  
46      private static void setField(final HelpMojo mojo, final String fieldName, final Object value) {
47          try {
48              final Field field = HelpMojo.class.getDeclaredField(fieldName);
49              field.setAccessible(true);
50              field.set(mojo, value);
51          } catch (final ReflectiveOperationException ex) {
52              throw new IllegalStateException(ex);
53          }
54      }
55  }