[Unit Tests] Add Tier 2 coverage for 6 quest objective types#309
[Unit Tests] Add Tier 2 coverage for 6 quest objective types#309DiamondDagger590 wants to merge 1 commit into
Conversation
Add extended coverage tests for ItemPickup, VillagerTrade, TameAnimal, ShearEntity, LaunchProjectile, and FertilizeBlock objective types. Each test covers canProcess, processProgress (empty/filtered/wrong context), identity, and parseConfig branches. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GkwBKsKUjJQV5qnFXzHxqu
WalkthroughAdded six JUnit 5 coverage suites for built-in quest objective types. Tests cover context compatibility, progress calculations, material/entity/projectile filtering, identity keys, expansion keys, configuration parsing, and mocked Bukkit events. ChangesBuilt-in objective type coverage
Estimated code review effort: 3 (Moderate) | ~25 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/FertilizeBlockObjectiveTypeCoverageTest.java`:
- Line 25: Convert all six Mockito-only coverage test classes to plain JUnit
tests by removing McRPGBaseTest inheritance and its unused import from
FertilizeBlockObjectiveTypeCoverageTest, ItemPickupObjectiveTypeCoverageTest,
ShearEntityObjectiveTypeCoverageTest, TameAnimalObjectiveTypeCoverageTest,
VillagerTradeObjectiveTypeCoverageTest, and
LaunchProjectileObjectiveTypeCoverageTest; leave their test behavior unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 235da1fb-658e-4705-a381-0fb9c89c55fa
📒 Files selected for processing (6)
src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/FertilizeBlockObjectiveTypeCoverageTest.javasrc/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/ItemPickupObjectiveTypeCoverageTest.javasrc/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/LaunchProjectileObjectiveTypeCoverageTest.javasrc/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/ShearEntityObjectiveTypeCoverageTest.javasrc/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/TameAnimalObjectiveTypeCoverageTest.javasrc/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/VillagerTradeObjectiveTypeCoverageTest.java
| import static org.mockito.Mockito.when; | ||
|
|
||
| @DisplayName("FertilizeBlockObjectiveType — extended coverage") | ||
| public class FertilizeBlockObjectiveTypeCoverageTest extends McRPGBaseTest { |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Remove unnecessary McRPGBaseTest inheritance from these Mockito-only suites.
src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/FertilizeBlockObjectiveTypeCoverageTest.java#L25-L25: remove the superclass and import.src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/ItemPickupObjectiveTypeCoverageTest.java#L26-L26: remove the superclass and import.src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/ShearEntityObjectiveTypeCoverageTest.java#L25-L25: remove the superclass and import.src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/TameAnimalObjectiveTypeCoverageTest.java#L25-L25: remove the superclass and import.src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/VillagerTradeObjectiveTypeCoverageTest.java#L26-L26: remove the superclass and import.src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/LaunchProjectileObjectiveTypeCoverageTest.java#L25-L25: remove the superclass and import.
As per coding guidelines, “A test that extends McRPGBaseTest but uses neither MockBukkit server interaction nor McRPGPlayer tracking should be converted to a plain JUnit test.”
📍 Affects 6 files
src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/FertilizeBlockObjectiveTypeCoverageTest.java#L25-L25(this comment)src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/ItemPickupObjectiveTypeCoverageTest.java#L26-L26src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/ShearEntityObjectiveTypeCoverageTest.java#L25-L25src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/TameAnimalObjectiveTypeCoverageTest.java#L25-L25src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/VillagerTradeObjectiveTypeCoverageTest.java#L26-L26src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/LaunchProjectileObjectiveTypeCoverageTest.java#L25-L25
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@src/test/java/us/eunoians/mcrpg/quest/objective/type/builtin/FertilizeBlockObjectiveTypeCoverageTest.java`
at line 25, Convert all six Mockito-only coverage test classes to plain JUnit
tests by removing McRPGBaseTest inheritance and its unused import from
FertilizeBlockObjectiveTypeCoverageTest, ItemPickupObjectiveTypeCoverageTest,
ShearEntityObjectiveTypeCoverageTest, TameAnimalObjectiveTypeCoverageTest,
VillagerTradeObjectiveTypeCoverageTest, and
LaunchProjectileObjectiveTypeCoverageTest; leave their test behavior unchanged.
Source: Coding guidelines
Summary
canProcess,processProgress(empty filter, with filter, wrong context type),identity(key namespace/value, expansion key), andparseConfig(new instance, no-key empty filter, with-entries filtering, empty-list empty filter)QuestRewardDistributionResolverPotBehaviorTestremain)Details
All 6 test files follow the established
BlockBreakObjectiveTypeCoverageTestpattern:McRPGBaseTest(required forCustomItemWrapper/CustomEntityWrapper/CustomBlockWrapperregistry access)@Nestedclasses to group related test scenarios@Testbefore@DisplayNameannotation orderingaction_outcome_whenConditionmethod naming conventionAmount-based types (ItemPickup, VillagerTrade) verify stack amounts (1, 3, 5, 7, 12, 64) rather than flat 1.
Entity-based types (TameAnimal, ShearEntity) filter via
CustomEntityWrapper.LaunchProjectile filters via
EntityTypedirectly (no wrapper).FertilizeBlock filters via
CustomBlockWrapper.Test plan
🤖 Generated with Claude Code
https://claude.ai/code/session_01GkwBKsKUjJQV5qnFXzHxqu
Generated by Claude Code
Summary by CodeRabbit