33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using HSchool.Content;
|
|
using HSchool.Content.Tests;
|
|
|
|
namespace HSchool.Content.Tests;
|
|
|
|
public class TopicDefTests
|
|
{
|
|
private readonly CatalogLoader _loader = new();
|
|
|
|
[Fact]
|
|
public void VanillaCore_LoadsTalkTopics()
|
|
{
|
|
var root = Path.Combine(AppContext.BaseDirectory, "vanilla");
|
|
var catalog = _loader.Load([CatalogLoader.CorePackId], PackDocuments.FromDirectory(CatalogLoader.CorePackId, root));
|
|
|
|
Assert.True(catalog.Topics.Count >= 8);
|
|
Assert.True(catalog.Topics.ContainsKey("TopicStudy"));
|
|
Assert.Contains("study", catalog.Topics["TopicStudy"].Tags);
|
|
}
|
|
|
|
[Fact]
|
|
public void CatalogWithoutTopics_ThrowsOnLoad()
|
|
{
|
|
var root = Path.Combine(AppContext.BaseDirectory, "vanilla");
|
|
var documents = PackDocuments.FromDirectory(CatalogLoader.CorePackId, root)
|
|
.Where(document => !document.RelativePath.Contains("defs/topics/", StringComparison.OrdinalIgnoreCase))
|
|
.ToList();
|
|
|
|
var ex = Assert.Throws<ContentLoadException>(() => _loader.Load([CatalogLoader.CorePackId], documents));
|
|
Assert.Contains("TopicDef", ex.Message, StringComparison.Ordinal);
|
|
}
|
|
}
|