-
Notifications
You must be signed in to change notification settings - Fork 2
SpeedBoostUpgrade
willembor edited this page Oct 16, 2024
·
1 revision
- Framework: JUNIT 5
- Dependencies:
-
Mockito
: For mocking dependencies -
ParameterizedTest
: For testing different inputs
1. testSpeedBootsActivates
-
Purpose: To ensure that the speed boost upgrade activates correctly and the layout becomes visible.
-
Setup:
- Set player gold to a sufficient amount.
- Call activate() on the speedBootsUpgrade instance.
- Trigger the event Speed.
-
Expected Outcome:
- The upgrade should activate, and the layout and speedMeter should become visible.
- keyboardPlayerInputComponent should update the walking speed to the boosted value.
- The activeTimeRemaining should be set correctly.
- he event handler should trigger the event Speed.
2. testSpeedBootsDeactivates
- Purpose: To ensure that the speed boost upgrade deactivates correctly and the layout becomes hidden.
- Setup: Activate the speed boost, then call deactivate().
-
Expected:
- The upgrade should deactivate, and the speedMeter and layout should be removed from the stage.
- keyboardPlayerInputComponent should update the walking speed to the normal value.
- The activeTimeRemaining should reset, and the event Speed should stop.
3. testLoseGoldOnPurchase
- Purpose: To ensure that the correct amount of gold is deducted when the upgrade is purchased.
-
Setup:
- Set player gold to 100.
- Call activate() on the speedBootsUpgrade.
- Expected: The player's gold should decrease by 20 units upon activation.
4. testInsufficientGold
- Purpose: Ensure that the speed boost upgrade does not activate when there is insufficient gold.
-
Setup:
- Set player gold to an insufficient amount (e.g., 10).
- Call activate() and verify that the event notenoughmoney is triggered.
-
Expected:
- The upgrade should not activate, and the layout should remain hidden.
- The event handler should trigger notenoughmoney.
5. testSpeedBootsFor30Seconds
- Purpose: Ensure that the speed boost upgrade lasts for 30 seconds and deactivates after the time elapses.
- Setup: Activate the speed boots and simulate 30 seconds by calling update() repeatedly.
-
Expected:
- The upgrade should deactivate after 30 seconds, and the speedMeter should deplete.
- The boost sound should stop playing after the boost expires.
6. testMeterValueAtDifferentLevelsOfDepletion
- Purpose: Ensure that the progress meter value updates correctly as time depletes.
-
Setup:
- Use parameterized values for the total depleted time (5, 10, 15, 20, 25, 30 seconds).
- Activate the speed boots and simulate time by calling update() based on the given value.
- Expected: The speedMeter value should reflect the remaining boost time relative to the total duration.
7. testDispose
- Purpose: Ensure that all resources related to the speed boost upgrade are unloaded correctly when dispose() is called.
-
Setup:
- Call dispose() on the speedBootsUpgrade instance.
- Verify that the resourceService.unloadAssets() method is called for the textures.
- Expected: The textures related to the speed boots should be unloaded from memory.
Inventory System
Scoring System
Food Recipes
Level System
Player Actions
Ordering System
Stations
Items
Map Design
Customers
Pause Menu
Upgrades
End of Day Display
Day Night Cycle
Moral System
Debug Terminal
Game Interactions Tutorial
Backstory Cutscenes
Entities and Components
Input Handling
Game Screens and Areas
Fire Extinguisher Handler Component
MainGameActions Create Docket Triggers
Main Game Order Button Display
BackstoryCutsceneDisplay Test Plan
Test Plan for MainGameOrderTicketDisplay
Test Plan for MainGameOrderBtnDisplay
Test Plan for DocketLineDisplay
Test plan for RandomComboService
Test plan for SpeedBoostUpgrade
Test plan for DancePartyUpgrade