From ecde93b40b3eb243c567fa2a340340708e9350c6 Mon Sep 17 00:00:00 2001 From: GeminiAntigravityCLI Date: Thu, 20 Aug 2026 17:22:33 +0200 Subject: [PATCH] test: maintain test suites for economy and guild model --- .../economy/ChunkPriceCalculatorTest.java | 52 ++++++++++++++++ .../luc/gamingcore/model/GuildModelTest.java | 60 +++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 src/test/java/fr/luc/gamingcore/economy/ChunkPriceCalculatorTest.java create mode 100644 src/test/java/fr/luc/gamingcore/model/GuildModelTest.java diff --git a/src/test/java/fr/luc/gamingcore/economy/ChunkPriceCalculatorTest.java b/src/test/java/fr/luc/gamingcore/economy/ChunkPriceCalculatorTest.java new file mode 100644 index 0000000..a5cb645 --- /dev/null +++ b/src/test/java/fr/luc/gamingcore/economy/ChunkPriceCalculatorTest.java @@ -0,0 +1,52 @@ +package fr.luc.gamingcore.economy; + +import fr.luc.gamingcore.model.Guild; +import fr.luc.gamingcore.model.GuildClaim; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.*; + +public class ChunkPriceCalculatorTest { + + private ChunkPriceCalculator calculator; + + @BeforeEach + public void setUp() { + this.calculator = new ChunkPriceCalculator(); + } + + @Test + public void testFirstChunkPriceIsBasePrice() { + double firstChunk = calculator.calculatePrice(1, 0); + assertEquals(1000.0, firstChunk, 0.01); + } + + @Test + public void testStructuralPriceIncreasesWithChunkCount() { + double chunk1 = calculator.calculatePrice(1, 0); + double chunk2 = calculator.calculatePrice(2, 0); + double chunk5 = calculator.calculatePrice(5, 0); + double chunk10 = calculator.calculatePrice(10, 0); + + assertTrue(chunk2 > chunk1); + assertTrue(chunk5 > chunk2); + assertTrue(chunk10 > chunk5); + } + + @Test + public void testOverheatMultiplierAppliesWithRecentClaims() { + double normalPrice = calculator.calculatePrice(6, 0); + double overheatedPrice = calculator.calculatePrice(6, 3); + assertTrue(overheatedPrice > normalPrice); + } + + @Test + public void testLargeGuildOverheatIsMoreSevereThanSmallGuild() { + double smallMultiplier = calculator.calculateOverheatMultiplier(5, 4); + double largeMultiplier = calculator.calculateOverheatMultiplier(50, 4); + assertTrue(largeMultiplier > smallMultiplier); + } +} diff --git a/src/test/java/fr/luc/gamingcore/model/GuildModelTest.java b/src/test/java/fr/luc/gamingcore/model/GuildModelTest.java new file mode 100644 index 0000000..935ab19 --- /dev/null +++ b/src/test/java/fr/luc/gamingcore/model/GuildModelTest.java @@ -0,0 +1,60 @@ +package fr.luc.gamingcore.model; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.EnumSet; +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.*; + +public class GuildModelTest { + + private Guild guild; + private UUID leaderUuid; + private UUID memberUuid; + private GuildRank leaderRank; + private GuildRank memberRank; + + @BeforeEach + public void setUp() { + UUID guildId = UUID.randomUUID(); + leaderUuid = UUID.randomUUID(); + memberUuid = UUID.randomUUID(); + + guild = new Guild(guildId, "Valhalla", "VAL", "Guilde nordique", 500.0, System.currentTimeMillis()); + + leaderRank = new GuildRank("leader", guildId, "Chef", 100, false, EnumSet.allOf(GuildPermission.class)); + memberRank = new GuildRank("member", guildId, "Membre", 1, true, EnumSet.of(GuildPermission.HOME, GuildPermission.BANK_DEPOSIT)); + + guild.addRank(leaderRank); + guild.addRank(memberRank); + + guild.addMember(new GuildMember(leaderUuid, guildId, "leader", System.currentTimeMillis(), System.currentTimeMillis(), 0.0)); + guild.addMember(new GuildMember(memberUuid, guildId, "member", System.currentTimeMillis(), System.currentTimeMillis(), 0.0)); + } + + @Test + public void testGuildMembershipAndRanks() { + assertEquals(2, guild.getMemberCount()); + assertTrue(guild.isMember(leaderUuid)); + assertTrue(guild.isMember(memberUuid)); + + assertEquals(leaderRank, guild.getMemberRank(leaderUuid)); + assertEquals(memberRank, guild.getMemberRank(memberUuid)); + assertEquals(memberRank, guild.getDefaultRank()); + assertEquals(leaderRank, guild.getLeaderRank()); + } + + @Test + public void testPermissions() { + assertTrue(guild.hasPermission(leaderUuid, GuildPermission.CLAIM)); + assertTrue(guild.hasPermission(leaderUuid, GuildPermission.KICK)); + assertTrue(guild.hasPermission(leaderUuid, GuildPermission.BANK_WITHDRAW)); + + assertTrue(guild.hasPermission(memberUuid, GuildPermission.HOME)); + assertTrue(guild.hasPermission(memberUuid, GuildPermission.BANK_DEPOSIT)); + assertFalse(guild.hasPermission(memberUuid, GuildPermission.CLAIM)); + assertFalse(guild.hasPermission(memberUuid, GuildPermission.BANK_WITHDRAW)); + } +}