mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-05-16 06:58:54 +00:00
feature: Completed component design pattern implementation, testing and respective README (#2153)
* update the explanation in README.md * #556 update initial files * added README to component design pattern * Rearrange the file * Finalize the directory * Add test sample * Update the title for README.md * Update the title for README.md * Update the title for README.md * Update the title for README.md * Finish the component design pattern * Updated comments and docstrings for component DP, added basic tests for App and GameObject java classes. Slight modifications to pom.xml to reflect the test suite introduction. * updated comments/docstrings for all classes - wrote v1 of README.md for component design pattern. This still requires the class diagram sketch. * Update the UML and linked with the README.md * Update the README.md * Remove the additional update method and rearrange the file based on the CheckStyle plugin * Changed the structure based on the code smells feedback from PR * Documentation update - uml * Documentation update - grammar * Updated readme to reflect the use of the LOGGER instead of the system output prints. * Correct the constant name * Uses Lombok to remove getter/setter boilerplate * Rename the constant name * Branch out from master and finish all the review changes * Correct the CheckStyle warning Co-authored-by: Samman Palihapitiya Gamage <u7287889@anu.edu.au> Co-authored-by: SammanPali <110753804+SammanPali@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.iluwatar.component;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
|
||||
/**
|
||||
* Tests App class : src/main/java/com/iluwatar/component/App.java
|
||||
* General execution test of the application.
|
||||
*/
|
||||
class AppTest {
|
||||
|
||||
@Test
|
||||
void shouldExecuteComponentWithoutException() {
|
||||
assertDoesNotThrow(() -> App.main(new String[]{}));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.iluwatar.component;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import java.awt.event.KeyEvent;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* Tests GameObject class.
|
||||
* src/main/java/com/iluwatar/component/GameObject.java
|
||||
*/
|
||||
@Slf4j
|
||||
class GameObjectTest {
|
||||
GameObject playerTest;
|
||||
GameObject npcTest;
|
||||
@BeforeEach
|
||||
public void initEach() {
|
||||
//creates player & npc objects for testing
|
||||
//note that velocity and coordinates are initialised to 0 in GameObject.java
|
||||
playerTest = GameObject.createPlayer();
|
||||
npcTest = GameObject.createNpc();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the create methods - createPlayer() and createNPC().
|
||||
*/
|
||||
@Test
|
||||
void objectTest(){
|
||||
LOGGER.info("objectTest:");
|
||||
assertEquals("player",playerTest.getName());
|
||||
assertEquals("npc",npcTest.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the input component with varying key event inputs.
|
||||
* Targets the player game object.
|
||||
*/
|
||||
@Test
|
||||
void eventInputTest(){
|
||||
LOGGER.info("eventInputTest:");
|
||||
playerTest.update(KeyEvent.KEY_LOCATION_LEFT);
|
||||
assertEquals(-1, playerTest.getVelocity());
|
||||
assertEquals(-1, playerTest.getCoordinate());
|
||||
|
||||
playerTest.update(KeyEvent.KEY_LOCATION_RIGHT);
|
||||
playerTest.update(KeyEvent.KEY_LOCATION_RIGHT);
|
||||
assertEquals(1, playerTest.getVelocity());
|
||||
assertEquals(0, playerTest.getCoordinate());
|
||||
|
||||
LOGGER.info(Integer.toString(playerTest.getCoordinate()));
|
||||
LOGGER.info(Integer.toString(playerTest.getVelocity()));
|
||||
|
||||
GameObject p2 = GameObject.createPlayer();
|
||||
p2.update(KeyEvent.KEY_LOCATION_LEFT);
|
||||
//in the case of an unknown, object stats are set to default
|
||||
p2.update(KeyEvent.KEY_LOCATION_UNKNOWN);
|
||||
assertEquals(-1, p2.getVelocity());
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the demo component interface.
|
||||
*/
|
||||
@Test
|
||||
void npcDemoTest(){
|
||||
LOGGER.info("npcDemoTest:");
|
||||
npcTest.demoUpdate();
|
||||
assertEquals(2, npcTest.getVelocity());
|
||||
assertEquals(2, npcTest.getCoordinate());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user