diff --git a/culminating-mastermind/.editorconfig b/culminating-mastermind/.editorconfig index 14056f7..af1f196 100644 --- a/culminating-mastermind/.editorconfig +++ b/culminating-mastermind/.editorconfig @@ -1,4 +1,6 @@ root = true [*.java] -max_line_length = 80 \ No newline at end of file +max_line_length = 80 +indent_style = space +indent_size = 4 diff --git a/culminating-mastermind/app/src/test/java/mastermind/CodeTest.java b/culminating-mastermind/app/src/test/java/mastermind/CodeTest.java new file mode 100644 index 0000000..35da8dd --- /dev/null +++ b/culminating-mastermind/app/src/test/java/mastermind/CodeTest.java @@ -0,0 +1,62 @@ +package mastermind; + +import mastermind.core.Code; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.HashMap; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +class CodeTest { + @Test + void testGenerateRandomCode() { + final Code randomCode = Code.generateRandomCode(List.of()); + final int expectedCodeLength = Mastermind.CODE_LENGTH; + final var colorArray = randomCode.getColors(); + + assertEquals(expectedCodeLength, colorArray.size()); + } + + @Test + void testCodeFromIndices() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final List expectedColors = List.of(Code.Color.Green, Code.Color.Red, Code.Color.Blue, + Code.Color.Yellow); + + assertEquals(expectedColors, code.getColors()); + } + + @Test + void testGetColor() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final List expectedColors = List.of(Code.Color.Green, Code.Color.Red, Code.Color.Blue, + Code.Color.Yellow); + + for (int i = 0; i < Mastermind.CODE_LENGTH; ++i) { + assertEquals(expectedColors.get(i), code.getColor(i)); + } + } + + @Test + void testGetColors() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final List expectedColors = List.of(Code.Color.Green, Code.Color.Red, Code.Color.Blue, + Code.Color.Yellow); + + assertEquals(expectedColors, code.getColors()); + } + + @Test + void testGetOccurrences() { + final Code code = new Code(List.of(0, 1, 2, 3)); + HashMap expectedOccurrences = new HashMap<>(4); + expectedOccurrences.put(Code.Color.Green, 1); + expectedOccurrences.put(Code.Color.Red, 1); + expectedOccurrences.put(Code.Color.Blue, 1); + expectedOccurrences.put(Code.Color.Yellow, 1); + + assumeTrue(code.getOccurrences().equals(expectedOccurrences)); + } +}