2023-06-25 11:44:37 -04:00
using Content.Shared.Item ;
using Content.Shared.Stacks ;
using Robust.Shared.GameObjects ;
using Robust.Shared.Prototypes ;
namespace Content.IntegrationTests.Tests ;
[TestFixture]
public sealed class StackTest
{
[Test]
public async Task StackCorrectItemSize ( )
{
2023-08-06 14:30:28 +12:00
await using var pairTracker = await PoolManager . GetServerClient ( ) ;
2023-06-25 11:44:37 -04:00
var server = pairTracker . Pair . Server ;
var protoManager = server . ResolveDependency < IPrototypeManager > ( ) ;
var compFact = server . ResolveDependency < IComponentFactory > ( ) ;
Assert . Multiple ( ( ) = >
{
foreach ( var entity in PoolManager . GetEntityPrototypes < StackComponent > ( server ) )
{
if ( ! entity . TryGetComponent < StackComponent > ( out var stackComponent , compFact ) | |
! entity . TryGetComponent < ItemComponent > ( out var itemComponent , compFact ) )
continue ;
if ( ! protoManager . TryIndex < StackPrototype > ( stackComponent . StackTypeId , out var stackProto ) | |
stackProto . ItemSize = = null )
continue ;
var expectedSize = stackProto . ItemSize * stackComponent . Count ;
Assert . That ( itemComponent . Size , Is . EqualTo ( expectedSize ) , $"Prototype id: {entity.ID} has an item size of {itemComponent.Size} but expected size of {expectedSize}." ) ;
}
} ) ;
await pairTracker . CleanReturnAsync ( ) ;
}
}