git-subtree-dir: solution/H04 git-subtree-split: 2ed3e5642f6d0a6d1d02ae17ffc33f3a1076f8bb
37 lines
1.7 KiB
Java
37 lines
1.7 KiB
Java
package h04.chesspieces;
|
|
|
|
import h04.movement.MoveStrategy;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.objectweb.asm.Type;
|
|
import org.sourcegrade.jagr.api.rubric.TestForSubmission;
|
|
import org.tudalgo.algoutils.transform.SubmissionExecutionHandler;
|
|
import org.tudalgo.algoutils.transform.util.headers.MethodHeader;
|
|
|
|
import java.awt.Point;
|
|
|
|
import static org.tudalgo.algoutils.tutor.general.assertions.Assertions2.emptyContext;
|
|
import static org.tudalgo.algoutils.tutor.general.assertions.Assertions2.fail;
|
|
|
|
@TestForSubmission
|
|
public class ChessPieceTest {
|
|
|
|
@Test
|
|
public void testMoveStrategyDeclaration() {
|
|
MethodHeader moveStrategyMethodHeader = SubmissionExecutionHandler.getOriginalMethodHeaders(ChessPiece.class)
|
|
.stream()
|
|
.filter(methodHeader -> methodHeader.name().equals("moveStrategy") &&
|
|
methodHeader.descriptor().equals(Type.getMethodDescriptor(Type.VOID_TYPE, Type.INT_TYPE, Type.INT_TYPE, Type.getType(MoveStrategy.class))))
|
|
.findAny()
|
|
.orElseGet(() -> fail(emptyContext(), result -> "ChessPiece does not declare method 'moveStrategy(int, int, MoveStrategy)'"));
|
|
}
|
|
|
|
@Test
|
|
public void testGetPossibleMoveFieldDeclaration() {
|
|
MethodHeader getPossibleMoveFieldsMethodHeader = SubmissionExecutionHandler.getOriginalMethodHeaders(ChessPiece.class)
|
|
.stream()
|
|
.filter(methodHeader -> methodHeader.name().equals("getPossibleMoveFields") &&
|
|
methodHeader.descriptor().equals(Type.getMethodDescriptor(Type.getType(Point[].class))))
|
|
.findAny()
|
|
.orElseGet(() -> fail(emptyContext(), result -> "ChessPiece does not declare method 'getPossibleMoveFields()'"));
|
|
}
|
|
}
|