FOP-2425-Marathon/src/graderPrivate/java/h04/chesspieces/ChessPieceTest.java
Oshgnacknak 638df0b63d Squashed 'solution/H04/' content from commit 2ed3e56
git-subtree-dir: solution/H04
git-subtree-split: 2ed3e5642f6d0a6d1d02ae17ffc33f3a1076f8bb
2025-01-11 16:41:09 +01:00

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()'"));
}
}