53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using VoxelEngine.World;
|
|
using VoxelEngine.World.Blocks;
|
|
using Xunit;
|
|
|
|
namespace VoxelEngine.Tests;
|
|
|
|
public class BlockRegistryTests
|
|
{
|
|
[Fact]
|
|
public void Get_ReturnsRegisteredBlockById()
|
|
{
|
|
var registry = new BlockRegistry();
|
|
|
|
Assert.IsType<AirBlock>(registry.Get(0));
|
|
Assert.IsType<StoneBlock>(registry.Get(1));
|
|
Assert.IsType<DirtBlock>(registry.Get(2));
|
|
Assert.IsType<GrassBlock>(registry.Get(3));
|
|
}
|
|
|
|
[Fact]
|
|
public void Air_IsNotOpaqueOrSolid_OthersAre()
|
|
{
|
|
var registry = new BlockRegistry();
|
|
|
|
Assert.False(registry.Get(0).IsOpaque);
|
|
Assert.False(registry.Get(0).IsSolid);
|
|
Assert.True(registry.Get(1).IsOpaque);
|
|
Assert.True(registry.Get(1).IsSolid);
|
|
}
|
|
|
|
[Fact]
|
|
public void Grass_HasDifferentTexturesPerFace()
|
|
{
|
|
var registry = new BlockRegistry();
|
|
IBlock grass = registry.Get(3);
|
|
|
|
Assert.Equal(new TileCoord(0, 1), grass.GetTextureTile(BlockFace.Top));
|
|
Assert.Equal(new TileCoord(0, 0), grass.GetTextureTile(BlockFace.Bottom));
|
|
Assert.Equal(new TileCoord(1, 1), grass.GetTextureTile(BlockFace.North));
|
|
}
|
|
|
|
[Fact]
|
|
public void NamedAccessors_MatchIds()
|
|
{
|
|
var registry = new BlockRegistry();
|
|
|
|
Assert.Equal((ushort)0, registry.Air.Id);
|
|
Assert.Equal((ushort)1, registry.Stone.Id);
|
|
Assert.Equal((ushort)2, registry.Dirt.Id);
|
|
Assert.Equal((ushort)3, registry.Grass.Id);
|
|
}
|
|
}
|