From 9cd4d3f9563b9569d04c7a3673a864feb7c82f60 Mon Sep 17 00:00:00 2001 From: jez04 <david.jezek@post.cz> Date: Wed, 6 Nov 2024 22:18:44 +0100 Subject: [PATCH] feat: change project name fix maven test scope --- pom.xml | 3 +- src/main/java/module-info.java | 1 - .../structure/test/ClassStructureTest.java | 114 ++++-------------- 3 files changed, 28 insertions(+), 90 deletions(-) diff --git a/pom.xml b/pom.xml index 8d8600b..09bb40b 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>vsb-cs-java1</groupId> - <artifactId>lab06v3</artifactId> + <artifactId>lab07v3</artifactId> <version>0.0.1-SNAPHOST</version> <packaging>jar</packaging> <properties> @@ -51,6 +51,7 @@ <groupId>org.reflections</groupId> <artifactId>reflections</artifactId> <version>0.10.2</version> + <scope>test</scope> </dependency> </dependencies> diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index de0ed33..736971c 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -2,7 +2,6 @@ module lab01 { requires transitive javafx.controls; requires javafx.fxml; requires javafx.base; - requires org.reflections; opens lab to javafx.fxml; exports lab; } \ No newline at end of file diff --git a/src/test/java/jez04/structure/test/ClassStructureTest.java b/src/test/java/jez04/structure/test/ClassStructureTest.java index a2bd575..fa5f2e5 100644 --- a/src/test/java/jez04/structure/test/ClassStructureTest.java +++ b/src/test/java/jez04/structure/test/ClassStructureTest.java @@ -3,20 +3,10 @@ package jez04.structure.test; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; import java.io.PrintStream; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.FileVisitResult; -import java.nio.file.FileVisitor; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -36,18 +26,11 @@ import javafx.fxml.FXML; class ClassStructureTest { + private static final String drawableSimulableName = "DrawableSimulable"; + private static final String collisionableName = "Collisionable"; Set<String> allClasses = getNameOfAllClasses(); - @Test - void printAllclassesTest() { - System.out.println("========================================="); - System.out.println("All detected classes:"); - for (String name : allClasses) { - System.out.println(name); - } - System.out.println("========================================="); - } @Test void gameControllerExistenceTest() { classExist("GameController"); @@ -61,30 +44,40 @@ class ClassStructureTest { Class<?> c = getClass("GameController"); hasPropertyWithAnnotation(c, ".*", FXML.class); } - - @Test - void countControllersTest() { - assertTrue(countClassesMatches(".*Controller") > 1, "Only one class named .*Controller found"); - } @Test void gameControllerActionEventTest() { classExist("GameController"); Class<?> c = getClass("GameController"); hasMethodRegexp(c, ".*", void.class, ActionEvent.class); } + @Test + void gameControllerLambdaTest() { + classExist("GameController"); + Class<?> c = getClass("GameController"); + hasMethodRegexp(c, "lambda$.*", void.class, ActionEvent.class); + } + + @Test + void cannonExistenceTest() { + classExist("Player"); + } + @Test + void cannonExistenceSetAngleTest() { + classExist("Player"); + Class<?> c = getClass("Player"); + hasMethod(c, "setAngle"); + } + @Test + void cannonExistenceSetSpeedTest() { + classExist("Player"); + Class<?> c = getClass("Player"); + hasMethod(c, "setSpeed"); + } private void isInterface(Class<?> c) { assertTrue(c.isInterface(), c.getName() + " have to be interface."); } - - private long countClassesMatches(String nameRegExp) { - return allClasses.stream().filter(c -> c.matches(nameRegExp)).count(); - } - - private List<String> getClassesMatches(String nameRegExp) { - return allClasses.stream().filter(c -> c.matches(nameRegExp)).toList(); - } private void classExist(String name) { assertTrue(allClasses.stream().anyMatch(c -> c.endsWith(name)), "Interface " + name + " not found"); @@ -200,13 +193,10 @@ class ClassStructureTest { } private Set<String> getNameOfAllClasses() { - List<String> initClassesName = new ArrayList<>(); - dynamicaliFoundSomeClass(initClassesName); - initClassesName.addAll(List.of("lab.Routines", "lab.App", "lab.DrawingThread")); + List<String> initClassesName = Arrays.asList("lab.Routines", "lab.App", "lab.DrawingThread", "project.loderunner.Game", "cz.vsb.fei.java1.gravityhook.App"); for (String className : initClassesName) { try { Class.forName(className); - break; } catch (ClassNotFoundException e) { System.out.println(String.format("Class '%s' cannot be loaded: %s", className, e.getMessage())); } @@ -228,58 +218,6 @@ class ClassStructureTest { return true; }))); } - for (String string : allClasses) { - System.out.println(string); - } return allClasses; } - private void dynamicaliFoundSomeClass(List<String> initClassesName) { - URL myClassUrl = ClassStructureTest.class.getResource("ClassStructureTest.class"); - myClassUrl.getFile(); - try { - Path classRoot = Paths.get(myClassUrl.toURI()).getParent().getParent().getParent().getParent(); - if("test-classes".equals(classRoot.getFileName().toString())) { - classRoot = classRoot.getParent().resolve("classes"); - } - System.out.println("class root: " + classRoot); - final Path classRootFinal = classRoot; - Files.walkFileTree(classRoot, new FileVisitor<Path>() { - - @Override - public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { - if(List.of("jez04", "META-INF").contains(dir.getFileName().toString())) { - return FileVisitResult.SKIP_SUBTREE; - } - return FileVisitResult.CONTINUE; - } - - @Override - public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { - System.out.println("VISIT: " + file); - if("module-info.class".equals(file.getFileName().toString())) { - return FileVisitResult.CONTINUE; - } - if(!file.getFileName().toString().endsWith(".class")) { - return FileVisitResult.CONTINUE; - } - String foundClassName = classRootFinal.relativize(file).toString(); - foundClassName = foundClassName.substring(0, foundClassName.length()-6).replace(File.separatorChar, '.'); - initClassesName.add(foundClassName); - return FileVisitResult.TERMINATE; - } - - @Override - public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { - return FileVisitResult.CONTINUE; - } - - @Override - public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { - return FileVisitResult.CONTINUE; - } - }); - } catch (URISyntaxException | IOException e) { - e.printStackTrace(); - } - } } -- GitLab