1 /*
2 * The MIT License (MIT)
3 *
4 * Copyright (c) 2013-2026 The Coveralls Maven Plugin Project Contributors:
5 * https://github.com/hazendaz/coveralls-maven-plugin/graphs/contributors
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 * THE SOFTWARE.
24 */
25 package org.eluder.coveralls.maven.plugin.logging;
26
27 import java.io.File;
28
29 import org.apache.maven.plugin.logging.Log;
30 import org.eluder.coveralls.maven.plugin.logging.Logger.Position;
31 import org.junit.jupiter.api.Assertions;
32 import org.junit.jupiter.api.Test;
33 import org.junit.jupiter.api.extension.ExtendWith;
34 import org.mockito.Mock;
35 import org.mockito.Mockito;
36 import org.mockito.junit.jupiter.MockitoExtension;
37
38 /**
39 * The Class DryRunLoggerTest.
40 */
41 @ExtendWith(MockitoExtension.class)
42 class DryRunLoggerTest {
43
44 /** The log mock. */
45 @Mock
46 Log logMock;
47
48 /** The coveralls file mock. */
49 @Mock
50 File coverallsFileMock;
51
52 /**
53 * Missing coveralls file.
54 */
55 @Test
56 void missingCoverallsFile() {
57 Assertions.assertThrows(IllegalArgumentException.class, () -> new DryRunLogger(true, null));
58 }
59
60 /**
61 * Test get position.
62 */
63 @Test
64 void position() {
65 Assertions.assertEquals(Position.AFTER, new DryRunLogger(true, this.coverallsFileMock).getPosition());
66 }
67
68 /**
69 * Log dry run disabled.
70 */
71 @Test
72 void logDryRunDisabled() {
73 new DryRunLogger(false, this.coverallsFileMock).log(this.logMock);
74
75 Mockito.verifyNoInteractions(this.logMock);
76 }
77
78 /**
79 * Log dry run enabled.
80 */
81 @Test
82 void logDryRunEnabled() {
83 Mockito.when(this.coverallsFileMock.length()).thenReturn(1024L);
84 Mockito.when(this.coverallsFileMock.getAbsolutePath()).thenReturn("/target/coveralls.json");
85
86 new DryRunLogger(true, this.coverallsFileMock).log(this.logMock);
87
88 Mockito.verify(this.logMock).info("Dry run enabled, Coveralls report will NOT be submitted to API");
89 Mockito.verify(this.logMock).info("1024 bytes of data was recorded in /target/coveralls.json");
90 }
91
92 }