Skip to content

Commit

Permalink
Add Marker mock (#976)
Browse files Browse the repository at this point in the history
* Add `MarkerMock`

* Add to test

* Fix behavior and add test

---------

Co-authored-by: Thorinwasher <37477983+Thorinwasher@users.noreply.github.com>
  • Loading branch information
Seggan and Thorinwasher committed Feb 27, 2024
1 parent 392cf5f commit 7becc19
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 1 deletion.
6 changes: 6 additions & 0 deletions src/main/java/be/seeseemelk/mockbukkit/WorldMock.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import be.seeseemelk.mockbukkit.entity.LlamaMock;
import be.seeseemelk.mockbukkit.entity.LlamaSpitMock;
import be.seeseemelk.mockbukkit.entity.MagmaCubeMock;
import be.seeseemelk.mockbukkit.entity.MarkerMock;
import be.seeseemelk.mockbukkit.entity.MobMock;
import be.seeseemelk.mockbukkit.entity.MuleMock;
import be.seeseemelk.mockbukkit.entity.MushroomCowMock;
Expand Down Expand Up @@ -186,6 +187,7 @@
import org.bukkit.entity.Llama;
import org.bukkit.entity.LlamaSpit;
import org.bukkit.entity.MagmaCube;
import org.bukkit.entity.Marker;
import org.bukkit.entity.Monster;
import org.bukkit.entity.Mule;
import org.bukkit.entity.MushroomCow;
Expand Down Expand Up @@ -1443,6 +1445,10 @@ else if (clazz == Trident.class)
{
return new TridentMock(server, UUID.randomUUID());
}
else if (clazz == Marker.class)
{
return new MarkerMock(server, UUID.randomUUID());
}
throw new UnimplementedOperationException();
}

Expand Down
40 changes: 40 additions & 0 deletions src/main/java/be/seeseemelk/mockbukkit/entity/MarkerMock.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package be.seeseemelk.mockbukkit.entity;

import be.seeseemelk.mockbukkit.ServerMock;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Marker;
import org.jetbrains.annotations.NotNull;

import java.util.UUID;

/**
* Mock implementation of a {@link Marker}.
*/
public class MarkerMock extends EntityMock implements Marker
{

/**
* Constructs a new {@link MarkerMock} on the provided {@link ServerMock} with a specified {@link UUID}.
*
* @param server The server to create the entity on.
* @param uuid The UUID of the entity.
*/
public MarkerMock(@NotNull ServerMock server, @NotNull UUID uuid)
{
super(server, uuid);
}

@Override
public @NotNull EntityType getType()
{
return EntityType.MARKER;
}

@Override
public boolean addPassenger(@NotNull Entity passenger)
{
return false;
}

}
4 changes: 3 additions & 1 deletion src/test/java/be/seeseemelk/mockbukkit/WorldMockTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import be.seeseemelk.mockbukkit.entity.LlamaMock;
import be.seeseemelk.mockbukkit.entity.LlamaSpitMock;
import be.seeseemelk.mockbukkit.entity.MagmaCubeMock;
import be.seeseemelk.mockbukkit.entity.MarkerMock;
import be.seeseemelk.mockbukkit.entity.MuleMock;
import be.seeseemelk.mockbukkit.entity.MushroomCowMock;
import be.seeseemelk.mockbukkit.entity.OcelotMock;
Expand Down Expand Up @@ -1330,7 +1331,8 @@ public static Stream<Arguments> getSpawnableEntities()
Arguments.of(EntityType.ZOMBIFIED_PIGLIN, PigZombieMock.class),
Arguments.of(EntityType.TRIDENT, Trident.class),
Arguments.of(EntityType.SPECTRAL_ARROW, SpectralArrow.class),
Arguments.of(EntityType.ARROW, Arrow.class)
Arguments.of(EntityType.ARROW, Arrow.class),
Arguments.of(EntityType.MARKER, MarkerMock.class)
);
}

Expand Down
46 changes: 46 additions & 0 deletions src/test/java/be/seeseemelk/mockbukkit/entity/MarkerMockTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package be.seeseemelk.mockbukkit.entity;

import be.seeseemelk.mockbukkit.MockBukkit;
import be.seeseemelk.mockbukkit.ServerMock;
import org.bukkit.entity.EntityType;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.UUID;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;

public class MarkerMockTest
{

private MarkerMock marker;
private ServerMock server;

@BeforeEach
void setUp()
{
server = MockBukkit.mock();
marker = new MarkerMock(server, UUID.randomUUID());
}

@AfterEach
void tearDown()
{
MockBukkit.unmock();
}

@Test
void testType()
{
assertEquals(EntityType.MARKER, marker.getType());
}

@Test
void testCannotAddPassenger()
{
assertFalse(marker.addPassenger(new SimpleEntityMock(server)));
assertEquals(0, marker.getPassengers().size());
}
}

0 comments on commit 7becc19

Please sign in to comment.