Files
crystall-punk-14/Content.Tests/Shared/LocalizedDatasetPrototypeTest.cs

62 lines
2.0 KiB
C#
Raw Permalink Normal View History

2024-05-28 14:41:41 -04:00
using System;
using Content.Shared.Dataset;
using NUnit.Framework;
using Robust.Shared.Collections;
using Robust.Shared.IoC;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.Manager;
namespace Content.Tests.Shared;
[TestFixture]
[TestOf(typeof(LocalizedDatasetPrototype))]
public sealed class LocalizedDatasetPrototypeTest : ContentUnitTest
{
private const string TestDatasetId = "Test";
2024-05-28 14:41:41 -04:00
private IPrototypeManager _prototypeManager;
[OneTimeSetUp]
public void OneTimeSetup()
{
IoCManager.Resolve<ISerializationManager>().Initialize();
_prototypeManager = IoCManager.Resolve<IPrototypeManager>();
_prototypeManager.Initialize();
_prototypeManager.LoadString(TestPrototypes);
_prototypeManager.ResolveResults();
}
private const string TestPrototypes = $@"
2024-05-28 14:41:41 -04:00
- type: localizedDataset
id: {TestDatasetId}
2024-05-28 14:41:41 -04:00
values:
prefix: test-dataset-
count: 4
";
[Test]
public void LocalizedDatasetTest()
{
var testPrototype = _prototypeManager.Index<LocalizedDatasetPrototype>(TestDatasetId);
2024-05-28 14:41:41 -04:00
var values = new ValueList<string>();
foreach (var value in testPrototype.Values)
{
values.Add(value);
}
// Make sure we get the right number of values
Assert.That(values, Has.Count.EqualTo(4));
// Make sure indexing works as expected
Assert.That(testPrototype.Values[0], Is.EqualTo("test-dataset-1"));
Assert.That(testPrototype.Values[1], Is.EqualTo("test-dataset-2"));
Assert.That(testPrototype.Values[2], Is.EqualTo("test-dataset-3"));
Assert.That(testPrototype.Values[3], Is.EqualTo("test-dataset-4"));
Assert.Throws<IndexOutOfRangeException>(() => { var x = testPrototype.Values[4]; });
Assert.Throws<IndexOutOfRangeException>(() => { var x = testPrototype.Values[-1]; });
2024-05-28 14:41:41 -04:00
// Make sure that the enumerator gets all of the values
Assert.That(testPrototype.Values[^1], Is.EqualTo("test-dataset-4"));
2024-05-28 14:41:41 -04:00
}
}