Skip to content

Commit 99011e5

Browse files
committed
Add test cases
1 parent d54eb5e commit 99011e5

File tree

5 files changed

+85
-10
lines changed

5 files changed

+85
-10
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>cf.maybelambda</groupId>
88
<artifactId>fedora-setup-script</artifactId>
9-
<version>3.0.3</version>
9+
<version>3.0.4</version>
1010

1111
<properties>
1212
<maven.compiler.source>21</maven.compiler.source>

src/main/java/cf/maybelambda/fedora/ConfigManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111

1212
public class ConfigManager {
1313
private static final String CONFIG_DIR = "src/main/resources";
14-
private static final String DNF_INSTALL_FILE = "dnf-install.cf";
15-
private static final String DNF_REMOVE_FILE = "dnf-remove.cf";
16-
private static final String FLATPAK_INSTALL_FILE = "flatpak-install.cf";
17-
private static final String HELP_FILE = "help.txt";
14+
static final String DNF_INSTALL_FILE = "dnf-install.cf";
15+
static final String DNF_REMOVE_FILE = "dnf-remove.cf";
16+
static final String FLATPAK_INSTALL_FILE = "flatpak-install.cf";
17+
static final String HELP_FILE = "help.txt";
1818

1919
private static final List<String> gpgKeys = List.of(
2020
"https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020",

src/main/java/cf/maybelambda/fedora/PostInstallUpdater.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static void main(String[] args) {
3030
List<String> flatpakInstallPackages = ConfigManager.getFlatpakInstallPackages();
3131
Scanner scanner = new Scanner(System.in);
3232

33-
System.out.println(color("]|I{•------» Fedora Post-Install Actions «------•}I|[\n", GREEN));
33+
System.out.println(color("]|I{•------» Fedora Setup Script «------•}I|[\n", GREEN));
3434
setDryRun(Arrays.asList(args).contains("--dry-run"));
3535
if (isDryRun()) {
3636
System.out.println(color("---[Dry Run Mode] Shell Commands will not be executed.---\n", RED));

src/main/resources/help.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
Fedora Post Install Actions
2-
===========================
1+
Fedora Setup Script
2+
===================
33

44
Usage:
55
java -jar fedora-setup-script-X.Y.Z.jar [options]

src/test/java/cf/maybelambda/fedora/ConfigManagerTests.java

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
import java.nio.file.Path;
1212
import java.util.List;
1313

14+
import static cf.maybelambda.fedora.ConfigManager.DNF_INSTALL_FILE;
15+
import static cf.maybelambda.fedora.ConfigManager.DNF_REMOVE_FILE;
16+
import static cf.maybelambda.fedora.ConfigManager.FLATPAK_INSTALL_FILE;
17+
import static cf.maybelambda.fedora.ConfigManager.HELP_FILE;
1418
import static org.junit.jupiter.api.Assertions.assertEquals;
1519
import static org.junit.jupiter.api.Assertions.assertThrows;
1620
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -57,7 +61,7 @@ void readResourceLinesThrowsIOExceptionWhenResourceMissing() {
5761
void loadPackageNamesFromValidFileParsesPackageNamesAndOmitsComments() {
5862
try (MockedStatic<ConfigManager> updaterMock = Mockito.mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
5963
updaterMock.when(() -> ConfigManager.readResourceLines(any(String.class)))
60-
.thenReturn(List.of("# Comment", "nano", "vim", "", "htop"));
64+
.thenReturn(List.of("# Comment", "nano", "vim", "", "htop"));
6165

6266
List<String> result = ConfigManager.loadPackageNamesFrom("test-packages.cf");
6367

@@ -69,11 +73,82 @@ void loadPackageNamesFromValidFileParsesPackageNamesAndOmitsComments() {
6973
void loadPackageNamesFromReturnsEmptyListOnIOException() {
7074
try (MockedStatic<Files> filesMock = mockStatic(Files.class)) {
7175
filesMock.when(() -> Files.readAllLines(any(Path.class), eq(StandardCharsets.UTF_8)))
72-
.thenThrow(new IOException("Simulated failure"));
76+
.thenThrow(new IOException("Simulated failure"));
7377

7478
List<String> result = ConfigManager.loadPackageNamesFrom("missing.cf");
7579

7680
assertTrue(result.isEmpty());
7781
}
7882
}
83+
84+
@Test
85+
void loadPackageNamesFromHandlesEmptyFile() {
86+
try (MockedStatic<ConfigManager> updaterMock = Mockito.mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
87+
updaterMock.when(() -> ConfigManager.readResourceLines(any(String.class))).thenReturn(List.of());
88+
89+
List<String> result = ConfigManager.loadPackageNamesFrom("empty.cf");
90+
91+
assertTrue(result.isEmpty());
92+
}
93+
}
94+
95+
@Test
96+
void loadPackageNamesFromHandlesOnlyCommentsAndWhitespace() {
97+
try (MockedStatic<ConfigManager> updaterMock = Mockito.mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
98+
updaterMock.when(() -> ConfigManager.readResourceLines(any(String.class)))
99+
.thenReturn(List.of("# Comment", " ", "# Another comment", ""));
100+
101+
List<String> result = ConfigManager.loadPackageNamesFrom("comments-only.cf");
102+
103+
assertTrue(result.isEmpty());
104+
}
105+
}
106+
107+
@Test
108+
void getHelpTextReturnsTextFromHelpFile() throws IOException {
109+
try (MockedStatic<ConfigManager> configManagerMock = mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
110+
List<String> helpText = List.of("Help line 1", "Help line 2", "Help line 3");
111+
configManagerMock.when(() -> ConfigManager.readResourceLines(eq(HELP_FILE))).thenReturn(helpText);
112+
113+
List<String> result = ConfigManager.getHelpText();
114+
115+
assertEquals(helpText, result);
116+
}
117+
}
118+
119+
@Test
120+
void getDnfInstallPackagesReturnsCorrectPackageNames() {
121+
try (MockedStatic<ConfigManager> updaterMock = Mockito.mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
122+
List<String> pkgs = List.of("package1", "package2", "package3");
123+
updaterMock.when(() -> ConfigManager.loadPackageNamesFrom(eq(DNF_INSTALL_FILE))).thenReturn(pkgs);
124+
125+
List<String> result = ConfigManager.getDnfInstallPackages();
126+
127+
assertEquals(pkgs, result);
128+
}
129+
}
130+
131+
@Test
132+
void getDnfRemovePackagesReturnsCorrectPackageNames() {
133+
try (MockedStatic<ConfigManager> updaterMock = Mockito.mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
134+
List<String> pkgs = List.of("package1", "package2", "package3");
135+
updaterMock.when(() -> ConfigManager.loadPackageNamesFrom(eq(DNF_REMOVE_FILE))).thenReturn(pkgs);
136+
137+
List<String> result = ConfigManager.getDnfRemovePackages();
138+
139+
assertEquals(pkgs, result);
140+
}
141+
}
142+
143+
@Test
144+
void getFlatpakInstallPackagesReturnsCorrectPackageNames() {
145+
try (MockedStatic<ConfigManager> updaterMock = Mockito.mockStatic(ConfigManager.class, CALLS_REAL_METHODS)) {
146+
List<String> pkgs = List.of("package1", "package2", "package3");
147+
updaterMock.when(() -> ConfigManager.loadPackageNamesFrom(eq(FLATPAK_INSTALL_FILE))).thenReturn(pkgs);
148+
149+
List<String> result = ConfigManager.getFlatpakInstallPackages();
150+
151+
assertEquals(pkgs, result);
152+
}
153+
}
79154
}

0 commit comments

Comments
 (0)