|
@ -0,0 +1,66 @@ |
|
|
|
|
|
package de.tims.fleetstorm.matchfield; |
|
|
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
|
import static org.junit.Assert.assertNotNull; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
|
import org.junit.jupiter.params.ParameterizedTest; |
|
|
|
|
|
import org.junit.jupiter.params.provider.Arguments; |
|
|
|
|
|
import org.junit.jupiter.params.provider.MethodSource; |
|
|
|
|
|
|
|
|
|
|
|
class MatchfieldCreationTest { |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
void testMatchfieldCreateNotEmpty() { |
|
|
|
|
|
Matchfield matchfield = new Matchfield(0); |
|
|
|
|
|
int[][] calcResult = matchfield.createMatchfield(); |
|
|
|
|
|
assertNotNull(calcResult); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ParameterizedTest(name = "matchfield creation has correct size") |
|
|
|
|
|
@MethodSource("testMatchfieldSize") |
|
|
|
|
|
void testMatchfieldCreationHasCorrectSize(String testName, int size, int expectedResult) { |
|
|
|
|
|
Matchfield matchfield = new Matchfield(size); |
|
|
|
|
|
matchfield.createMatchfield(); |
|
|
|
|
|
|
|
|
|
|
|
int calcResult = matchfield.getSize(); |
|
|
|
|
|
assertThat(calcResult).describedAs(testName).isEqualTo(expectedResult); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static Stream<Arguments> testMatchfieldSize() { |
|
|
|
|
|
return Stream.of(Arguments.of("field size 10x10", 10, 100), Arguments.of("field size 15x15", 15, 225)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ParameterizedTest(name = "matchfield get field is correct") |
|
|
|
|
|
@MethodSource("testMatchfieldGetFieldState") |
|
|
|
|
|
void testMatchfieldGetCorrectState(String testName, int x, int y, int expectedResult) { |
|
|
|
|
|
Matchfield matchfield = new Matchfield(10); |
|
|
|
|
|
matchfield.createMatchfield(); |
|
|
|
|
|
|
|
|
|
|
|
int calcResult = matchfield.getState(x, y); |
|
|
|
|
|
assertThat(calcResult).describedAs(testName).isEqualTo(expectedResult); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static Stream<Arguments> testMatchfieldGetFieldState() { |
|
|
|
|
|
return Stream.of(Arguments.of("field x:0 y:0 has empty state", 0, 0, Matchfield.EMPTY)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ParameterizedTest(name = "matchfield change field is correct") |
|
|
|
|
|
@MethodSource("testMatchfieldSetStateIsCorrect") |
|
|
|
|
|
void testMatchfieldGetCorrectState(String testName, int x, int y, int state, int expectedResult) { |
|
|
|
|
|
Matchfield matchfield = new Matchfield(10); |
|
|
|
|
|
matchfield.createMatchfield(); |
|
|
|
|
|
|
|
|
|
|
|
matchfield.setState(x, y, state); |
|
|
|
|
|
|
|
|
|
|
|
int calcResult = matchfield.getState(x, y); |
|
|
|
|
|
assertThat(calcResult).describedAs(testName).isEqualTo(expectedResult); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static Stream<Arguments> testMatchfieldSetStateIsCorrect() { |
|
|
|
|
|
return Stream.of( |
|
|
|
|
|
Arguments.of("field x:0 y:0 has state SHIP after setState()", 0, 0, Matchfield.SHIP, Matchfield.SHIP)); |
|
|
|
|
|
} |
|
|
|
|
|
} |