Skip to content

Commit

Permalink
Add PigZombieMock (#957)
Browse files Browse the repository at this point in the history
* add PigZombieMock

* fix paper implementation && added descriptive names

* update unit tests

* remove field unused
  • Loading branch information
Nirbose committed Feb 6, 2024
1 parent 0ce43e8 commit 6be1da6
Show file tree
Hide file tree
Showing 4 changed files with 165 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 @@ -54,6 +54,7 @@
import be.seeseemelk.mockbukkit.entity.PandaMock;
import be.seeseemelk.mockbukkit.entity.ParrotMock;
import be.seeseemelk.mockbukkit.entity.PigMock;
import be.seeseemelk.mockbukkit.entity.PigZombieMock;
import be.seeseemelk.mockbukkit.entity.PolarBearMock;
import be.seeseemelk.mockbukkit.entity.PoweredMinecartMock;
import be.seeseemelk.mockbukkit.entity.PufferFishMock;
Expand Down Expand Up @@ -183,6 +184,7 @@
import org.bukkit.entity.Panda;
import org.bukkit.entity.Parrot;
import org.bukkit.entity.Pig;
import org.bukkit.entity.PigZombie;
import org.bukkit.entity.Player;
import org.bukkit.entity.PolarBear;
import org.bukkit.entity.Projectile;
Expand Down Expand Up @@ -1396,6 +1398,10 @@ else if (clazz == LeashHitch.class)
{
return new LeashHitchMock(server, UUID.randomUUID());
}
else if (clazz == PigZombie.class)
{
return new PigZombieMock(server, UUID.randomUUID());
}
throw new UnimplementedOperationException();
}

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

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

import java.util.UUID;

public class PigZombieMock extends ZombieMock implements PigZombie
{

private int anger = 0;

/**
* Constructs a new {@link PigZombieMock} 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 PigZombieMock(@NotNull ServerMock server, @NotNull UUID uuid)
{
super(server, uuid);
}

@Override
public int getAnger()
{
return this.anger;
}

@Override
public void setAnger(int level)
{
this.anger = level;
}

@Override
public void setAngry(boolean angry)
{
this.setAnger(angry ? 400 : 0);
}

@Override
public boolean isAngry()
{
return this.getAnger() > 0;
}

@Override
public boolean isConverting()
{
return false;
}

@Override
public int getConversionTime()
{
throw new UnsupportedOperationException("Not supported by this Entity.");
}

@Override
public void setConversionTime(int conversionTime)
{
throw new UnsupportedOperationException("Not supported by this Entity.");
}

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

}
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 @@ -54,6 +54,7 @@
import be.seeseemelk.mockbukkit.entity.PandaMock;
import be.seeseemelk.mockbukkit.entity.ParrotMock;
import be.seeseemelk.mockbukkit.entity.PigMock;
import be.seeseemelk.mockbukkit.entity.PigZombieMock;
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import be.seeseemelk.mockbukkit.entity.PolarBearMock;
import be.seeseemelk.mockbukkit.entity.PoweredMinecartMock;
Expand Down Expand Up @@ -1317,7 +1318,8 @@ public static Stream<Arguments> getSpawnableEntities()
Arguments.of(EntityType.SNOWBALL, SnowballMock.class),
Arguments.of(EntityType.TURTLE, TurtleMock.class),
Arguments.of(EntityType.THROWN_EXP_BOTTLE, ThrownExpBottleMock.class),
Arguments.of(EntityType.LEASH_HITCH, LeashHitchMock.class)
Arguments.of(EntityType.LEASH_HITCH, LeashHitchMock.class),
Arguments.of(EntityType.ZOMBIFIED_PIGLIN, PigZombieMock.class)
);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
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.*;

class PigZombieMockTest
{
private PigZombieMock pigZombie;

@BeforeEach
void setUp()
{
ServerMock server = MockBukkit.mock();
pigZombie = new PigZombieMock(server, UUID.randomUUID());
}

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

@Test
void testAngerDefault()
{
assertEquals(0, pigZombie.getAnger());
}

@Test
void testSetAnger()
{
pigZombie.setAnger(100);
assertEquals(100, pigZombie.getAnger());
assertTrue(pigZombie.isAngry());
}

@Test
void testAngryDefault()
{
assertFalse(pigZombie.isAngry());
}

@Test
void testSetAngry()
{
pigZombie.setAngry(true);
assertTrue(pigZombie.isAngry());
}

@Test
void testIsConverting()
{
assertFalse(pigZombie.isConverting());
}

@Test
void testGetConversionTime()
{
assertThrows(UnsupportedOperationException.class, pigZombie::getConversionTime);
}

@Test
void testSetConversionTime()
{
assertThrows(UnsupportedOperationException.class, () -> pigZombie.setConversionTime(100));
}

@Test
void testType()
{
assertEquals(EntityType.ZOMBIFIED_PIGLIN, pigZombie.getType());
}

}

0 comments on commit 6be1da6

Please sign in to comment.