1 package net.pterodactylus.util.envopt;
4 import java.util.Map.Entry;
5 import java.util.Optional;
7 import org.hamcrest.MatcherAssert;
8 import org.hamcrest.Matchers;
12 * Unit test for {@link SystemEnvironment}.
14 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
16 public class SystemEnvironmentTest {
18 private final SystemEnvironment environment = new SystemEnvironment();
21 public void accessorCanAccessTheSystemEnvironment() {
22 Map<String, String> systemEnvironment = System.getenv();
23 MatcherAssert.assertThat(systemEnvironment.entrySet(), Matchers.not(Matchers.empty()));
24 for (Entry<String, String> environmentEntry : systemEnvironment.entrySet()) {
25 MatcherAssert.assertThat(environment.getValue(environmentEntry.getKey()), Matchers.is(
26 Optional.of(environmentEntry.getValue())));
31 public void accessorRecognizesNonExistingVariables() {
32 String randomName = generateRandomName();
33 MatcherAssert.assertThat(environment.getValue(randomName), Matchers.is(Optional.empty()));
36 private String generateRandomName() {
37 StringBuilder stringBuilder = new StringBuilder();
39 stringBuilder.setLength(0);
40 for (int i = 0; i < 10; i++) {
41 stringBuilder.append((char) ('A' + (Math.random() * 26)));
43 } while (System.getenv(stringBuilder.toString()) != null);
44 return stringBuilder.toString();