Skip to content

Commit 29c5057

Browse files
committed
Fix tests, optimize tests, reord imports.
1 parent 97aff7a commit 29c5057

File tree

68 files changed

+592
-983
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+592
-983
lines changed

src/main/java/world/bentobox/bentobox/api/commands/admin/AdminResetHomeCommand.java

-2
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ public Optional<List<String>> tabComplete(User user, String alias, List<String>
138138
Map<String, Island> getNameIslandMap(User user) {
139139
Map<String, Island> islandMap = new HashMap<>();
140140
int index = 0;
141-
System.out.println("Getting for " + user.getName());
142141
for (Island island : getIslands().getIslands(getWorld(), user.getUniqueId())) {
143-
System.out.println("Island - " + island);
144142
index++;
145143
if (island.getName() != null && !island.getName().isBlank()) {
146144
// Name has been set

src/main/java/world/bentobox/bentobox/lists/Flags.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import world.bentobox.bentobox.listeners.flags.protection.ElytraListener;
2626
import world.bentobox.bentobox.listeners.flags.protection.EntityInteractListener;
2727
import world.bentobox.bentobox.listeners.flags.protection.ExperiencePickupListener;
28+
import world.bentobox.bentobox.listeners.flags.protection.ExplosionListener;
2829
import world.bentobox.bentobox.listeners.flags.protection.FireListener;
2930
import world.bentobox.bentobox.listeners.flags.protection.HurtingListener;
3031
import world.bentobox.bentobox.listeners.flags.protection.InventoryListener;
@@ -39,7 +40,6 @@
3940
import world.bentobox.bentobox.listeners.flags.protection.SculkSensorListener;
4041
import world.bentobox.bentobox.listeners.flags.protection.SculkShriekerListener;
4142
import world.bentobox.bentobox.listeners.flags.protection.ShearingListener;
42-
import world.bentobox.bentobox.listeners.flags.protection.ExplosionListener;
4343
import world.bentobox.bentobox.listeners.flags.protection.TeleportationListener;
4444
import world.bentobox.bentobox.listeners.flags.protection.ThrowingListener;
4545
import world.bentobox.bentobox.listeners.flags.settings.DecayListener;

src/main/java/world/bentobox/bentobox/managers/island/IslandGrid.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package world.bentobox.bentobox.managers.island;
22

33
import java.util.Map.Entry;
4-
54
import java.util.TreeMap;
65

76
import world.bentobox.bentobox.database.objects.Island;

src/main/java/world/bentobox/bentobox/util/Util.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,21 @@
2828
import org.bukkit.attribute.Attribute;
2929
import org.bukkit.block.Block;
3030
import org.bukkit.block.BlockFace;
31-
import org.bukkit.entity.*;
31+
import org.bukkit.entity.Allay;
32+
import org.bukkit.entity.Animals;
33+
import org.bukkit.entity.Bat;
34+
import org.bukkit.entity.EnderDragon;
35+
import org.bukkit.entity.Entity;
36+
import org.bukkit.entity.Flying;
37+
import org.bukkit.entity.IronGolem;
38+
import org.bukkit.entity.Monster;
39+
import org.bukkit.entity.Player;
40+
import org.bukkit.entity.PufferFish;
41+
import org.bukkit.entity.Shulker;
42+
import org.bukkit.entity.Slime;
43+
import org.bukkit.entity.Snowman;
44+
import org.bukkit.entity.Tameable;
45+
import org.bukkit.entity.WaterMob;
3246
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
3347
import org.bukkit.util.Vector;
3448
import org.eclipse.jdt.annotation.NonNull;

src/test/java/world/bentobox/bentobox/listeners/flags/AbstractCommonSetup.java src/test/java/world/bentobox/bentobox/AbstractCommonSetup.java

+77-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
package world.bentobox.bentobox.listeners.flags;
1+
package world.bentobox.bentobox;
22

3+
import static org.junit.Assert.assertEquals;
34
import static org.mockito.ArgumentMatchers.any;
45
import static org.mockito.ArgumentMatchers.anyString;
6+
import static org.mockito.Mockito.atLeast;
57
import static org.mockito.Mockito.mock;
8+
import static org.mockito.Mockito.verify;
69
import static org.mockito.Mockito.when;
710

811
import java.util.Collections;
@@ -19,6 +22,7 @@
1922
import org.bukkit.block.Block;
2023
import org.bukkit.entity.Entity;
2124
import org.bukkit.entity.Player;
25+
import org.bukkit.entity.Player.Spigot;
2226
import org.bukkit.event.entity.EntityExplodeEvent;
2327
import org.bukkit.event.entity.PlayerDeathEvent;
2428
import org.bukkit.inventory.ItemFactory;
@@ -31,6 +35,7 @@
3135
import org.eclipse.jdt.annotation.Nullable;
3236
import org.junit.After;
3337
import org.junit.runner.RunWith;
38+
import org.mockito.ArgumentCaptor;
3439
import org.mockito.Mock;
3540
import org.mockito.Mockito;
3641
import org.mockito.stubbing.Answer;
@@ -40,8 +45,7 @@
4045

4146
import com.google.common.collect.ImmutableSet;
4247

43-
import world.bentobox.bentobox.BentoBox;
44-
import world.bentobox.bentobox.Settings;
48+
import net.md_5.bungee.api.chat.TextComponent;
4549
import world.bentobox.bentobox.api.configuration.WorldSettings;
4650
import world.bentobox.bentobox.api.user.Notifier;
4751
import world.bentobox.bentobox.api.user.User;
@@ -97,6 +101,8 @@ public abstract class AbstractCommonSetup {
97101
protected Notifier notifier;
98102
@Mock
99103
protected FlagsManager fm;
104+
@Mock
105+
protected Spigot spigot;
100106

101107

102108
public void setUp() throws Exception {
@@ -129,6 +135,7 @@ public void setUp() throws Exception {
129135
when(mockPlayer.getWorld()).thenReturn(world);
130136
when(mockPlayer.getName()).thenReturn("tastybento");
131137
when(mockPlayer.getInventory()).thenReturn(inv);
138+
when(mockPlayer.spigot()).thenReturn(spigot);
132139

133140
User.setPlugin(plugin);
134141
User.clearUsers();
@@ -176,12 +183,13 @@ public void setUp() throws Exception {
176183
when(plugin.getSettings()).thenReturn(settings);
177184
when(settings.getFakePlayers()).thenReturn(new HashSet<>());
178185

179-
PowerMockito.mockStatic(Util.class);
186+
PowerMockito.mockStatic(Util.class, Mockito.CALLS_REAL_METHODS);
180187
when(Util.getWorld(any())).thenReturn(mock(World.class));
188+
181189
// Util
182190
when(Util.findFirstMatchingEnum(any(), any())).thenCallRealMethod();
183191
// Util translate color codes (used in user translate methods)
184-
when(Util.translateColorCodes(anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
192+
//when(Util.translateColorCodes(anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
185193

186194
// Tags
187195
for (Material m : Material.values()) {
@@ -217,6 +225,70 @@ public void tearDown() throws Exception {
217225
Mockito.framework().clearInlineMocks();
218226
}
219227

228+
/**
229+
* Check that spigot sent the message
230+
* @param message - message to check
231+
*/
232+
public void checkSpigotMessage(String expectedMessage) {
233+
checkSpigotMessage(expectedMessage, 1);
234+
}
235+
236+
/*
237+
public void checkSpigotMessage(String expectedMessage, boolean shouldBePresent) {
238+
// Capture the argument passed to spigot().sendMessage(...) if messages are sent
239+
ArgumentCaptor<TextComponent> captor = ArgumentCaptor.forClass(TextComponent.class);
240+
241+
if (shouldBePresent) {
242+
// If we expect a message to be present, verify that sendMessage() was called at least once
243+
verify(spigot, atLeastOnce()).sendMessage(captor.capture());
244+
245+
// Get all captured TextComponents
246+
List<TextComponent> capturedMessages = captor.getAllValues();
247+
248+
// Check if any captured message contains the expected text
249+
boolean messageFound = capturedMessages.stream()
250+
.map(component -> component.toPlainText()) // Convert each TextComponent to plain text
251+
.anyMatch(messageText -> messageText.contains(expectedMessage)); // Check if the expected message is present
252+
253+
// Assert that the message was found
254+
assertTrue("Expected message not found: " + expectedMessage, messageFound);
255+
256+
} else {
257+
// If we expect no messages with this text, capture any sent messages to ensure none match the given message
258+
verify(spigot, atLeast(0)).sendMessage(captor.capture());
259+
260+
// Get all captured TextComponents
261+
List<TextComponent> capturedMessages = captor.getAllValues();
262+
263+
// Check that none of the captured messages contain the forbidden text
264+
boolean messageFound = capturedMessages.stream().map(component -> component.toPlainText()) // Convert each TextComponent to plain text
265+
.anyMatch(messageText -> messageText.contains(expectedMessage)); // Check if the message is present
266+
267+
// Assert that the message was NOT found
268+
assertFalse("Unexpected message found: " + expectedMessage, messageFound);
269+
}
270+
}*/
271+
272+
public void checkSpigotMessage(String expectedMessage, int expectedOccurrences) {
273+
// Capture the argument passed to spigot().sendMessage(...) if messages are sent
274+
ArgumentCaptor<TextComponent> captor = ArgumentCaptor.forClass(TextComponent.class);
275+
276+
// Verify that sendMessage() was called at least 0 times (capture any sent messages)
277+
verify(spigot, atLeast(0)).sendMessage(captor.capture());
278+
279+
// Get all captured TextComponents
280+
List<TextComponent> capturedMessages = captor.getAllValues();
281+
282+
// Count the number of occurrences of the expectedMessage in the captured messages
283+
long actualOccurrences = capturedMessages.stream().map(component -> component.toPlainText()) // Convert each TextComponent to plain text
284+
.filter(messageText -> messageText.contains(expectedMessage)) // Check if the message contains the expected text
285+
.count(); // Count how many times the expected message appears
286+
287+
// Assert that the number of occurrences matches the expectedOccurrences
288+
assertEquals("Expected message occurrence mismatch: " + expectedMessage, expectedOccurrences,
289+
actualOccurrences);
290+
}
291+
220292
/**
221293
* Get the explode event
222294
* @param entity

src/test/java/world/bentobox/bentobox/managers/RanksManagerBeforeClassTest.java src/test/java/world/bentobox/bentobox/RanksManagerBeforeClassTest.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package world.bentobox.bentobox.managers;
1+
package world.bentobox.bentobox;
22

33
import static org.mockito.ArgumentMatchers.any;
44
import static org.mockito.ArgumentMatchers.anyInt;
@@ -29,18 +29,18 @@
2929
import org.powermock.modules.junit4.PowerMockRunner;
3030
import org.powermock.reflect.Whitebox;
3131

32-
import world.bentobox.bentobox.BentoBox;
3332
import world.bentobox.bentobox.api.user.User;
3433
import world.bentobox.bentobox.database.AbstractDatabaseHandler;
3534
import world.bentobox.bentobox.database.DatabaseSetup;
35+
import world.bentobox.bentobox.managers.RanksManager;
3636

3737
/**
3838
* @author tastybento
3939
*
4040
*/
4141
@RunWith(PowerMockRunner.class)
4242
@PrepareForTest({ BentoBox.class, DatabaseSetup.class, RanksManager.class, Bukkit.class })
43-
public abstract class RanksManagerBeforeClassTest {
43+
public abstract class RanksManagerBeforeClassTest extends AbstractCommonSetup {
4444

4545
// Constants that define the hard coded rank values
4646
public static final String ADMIN_RANK_REF = "ranks.admin";
@@ -68,8 +68,6 @@ public abstract class RanksManagerBeforeClassTest {
6868
TRUSTED_RANK_REF, TRUSTED_RANK, COOP_RANK_REF, COOP_RANK, VISITOR_RANK_REF, VISITOR_RANK, BANNED_RANK_REF,
6969
BANNED_RANK);
7070

71-
@Mock
72-
public BentoBox plugin;
7371
@Mock
7472
public RanksManager rm;
7573

@@ -113,6 +111,7 @@ public static void beforeClass() throws IllegalAccessException, InvocationTarget
113111

114112
@Before
115113
public void setUp() throws Exception {
114+
super.setUp();
116115
PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS);
117116
when(Bukkit.getBukkitVersion()).thenReturn("");
118117
// Set up plugin

src/test/java/world/bentobox/bentobox/TestBentoBox.java

-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
import world.bentobox.bentobox.api.flags.FlagListener;
4949
import world.bentobox.bentobox.api.user.User;
5050
import world.bentobox.bentobox.database.objects.Island;
51-
import world.bentobox.bentobox.listeners.flags.AbstractCommonSetup;
5251
import world.bentobox.bentobox.lists.Flags;
5352
import world.bentobox.bentobox.managers.CommandsManager;
5453
import world.bentobox.bentobox.managers.FlagsManager;

src/test/java/world/bentobox/bentobox/api/commands/admin/AdminInfoCommandTest.java

+4-20
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,8 @@
1717
import java.util.UUID;
1818

1919
import org.bukkit.Bukkit;
20-
import org.bukkit.Location;
21-
import org.bukkit.World;
2220
import org.bukkit.command.CommandSender;
23-
import org.bukkit.entity.Player;
2421
import org.bukkit.util.Vector;
25-
import org.eclipse.jdt.annotation.NonNull;
2622
import org.junit.Before;
2723
import org.junit.Test;
2824
import org.junit.runner.RunWith;
@@ -34,16 +30,15 @@
3430
import org.powermock.modules.junit4.PowerMockRunner;
3531

3632
import world.bentobox.bentobox.BentoBox;
33+
import world.bentobox.bentobox.RanksManagerBeforeClassTest;
3734
import world.bentobox.bentobox.api.commands.CompositeCommand;
3835
import world.bentobox.bentobox.api.user.User;
3936
import world.bentobox.bentobox.database.objects.Island;
4037
import world.bentobox.bentobox.managers.CommandsManager;
41-
import world.bentobox.bentobox.managers.IslandWorldManager;
4238
import world.bentobox.bentobox.managers.IslandsManager;
4339
import world.bentobox.bentobox.managers.LocalesManager;
4440
import world.bentobox.bentobox.managers.PlaceholdersManager;
4541
import world.bentobox.bentobox.managers.PlayersManager;
46-
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
4742
import world.bentobox.bentobox.util.Util;
4843

4944
/**
@@ -59,27 +54,15 @@ public class AdminInfoCommandTest extends RanksManagerBeforeClassTest {
5954
@Mock
6055
private User user;
6156
@Mock
62-
private IslandsManager im;
63-
@Mock
6457
private PlayersManager pm;
6558

6659
private Island island;
6760

6861
private AdminInfoCommand iic;
6962

70-
@Mock
71-
private Player player;
72-
@Mock
73-
private World world;
7463
@Mock
7564
private PlaceholdersManager phm;
76-
@Mock
77-
private @NonNull Location location;
78-
@Mock
79-
private IslandWorldManager iwm;
8065

81-
/**
82-
*/
8366
@Before
8467
public void setUp() throws Exception {
8568
super.setUp();
@@ -96,12 +79,12 @@ public void setUp() throws Exception {
9679
when(plugin.getCommandsManager()).thenReturn(cm);
9780

9881
// Player
99-
when(player.isOp()).thenReturn(false);
82+
when(mockPlayer.isOp()).thenReturn(false);
10083
UUID uuid = UUID.randomUUID();
10184
when(user.getUniqueId()).thenReturn(uuid);
10285
when(user.getName()).thenReturn("tastybento");
10386
when(user.getWorld()).thenReturn(world);
104-
when(user.getPlayer()).thenReturn(player);
87+
when(user.getPlayer()).thenReturn(mockPlayer);
10588
when(user.isPlayer()).thenReturn(true);
10689
//user = User.getInstance(player);
10790
// Set the User class plugin as this one
@@ -164,6 +147,7 @@ public void testExecuteUserStringListOfStringTooManyArgs() {
164147
@Test
165148
public void testExecuteUserStringListOfStringNoArgsConsole() {
166149
CommandSender console = mock(CommandSender.class);
150+
when(console.spigot()).thenReturn(spigot);
167151
User sender = User.getInstance(console);
168152
assertFalse(iic.execute(sender, "", Collections.emptyList()));
169153
verify(user, never()).sendMessage("commands.help.header", "[label]", "commands.help.console");

0 commit comments

Comments
 (0)