mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-10 08:12:59 +00:00
212 lines
5.6 KiB
C#
212 lines
5.6 KiB
C#
using Xunit;
|
|
|
|
namespace SabreTools.Metadata.DatFiles.Test
|
|
{
|
|
public class DatHeaderTests
|
|
{
|
|
#region CanOpenSpecified
|
|
|
|
[Fact]
|
|
public void CanOpenSpecified_Missing()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, null);
|
|
Assert.False(header.CanOpenSpecified);
|
|
}
|
|
|
|
[Fact]
|
|
public void CanOpenSpecified_Empty()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, []);
|
|
Assert.False(header.CanOpenSpecified);
|
|
}
|
|
|
|
[Fact]
|
|
public void CanOpenSpecified_Exists()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, ["value"]);
|
|
Assert.True(header.CanOpenSpecified);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ImagesSpecified
|
|
|
|
[Fact]
|
|
public void ImagesSpecified_Missing()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.Images>(Data.Models.Metadata.Header.ImagesKey, null);
|
|
Assert.False(header.ImagesSpecified);
|
|
}
|
|
|
|
[Fact]
|
|
public void ImagesSpecified_Exists()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.Images>(Data.Models.Metadata.Header.ImagesKey, new());
|
|
Assert.True(header.ImagesSpecified);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region InfosSpecified
|
|
|
|
[Fact]
|
|
public void InfosSpecified_Missing()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.Infos>(Data.Models.Metadata.Header.InfosKey, null);
|
|
Assert.False(header.InfosSpecified);
|
|
}
|
|
|
|
[Fact]
|
|
public void InfosSpecified_Exists()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.Infos>(Data.Models.Metadata.Header.InfosKey, new());
|
|
Assert.True(header.InfosSpecified);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region NewDatSpecified
|
|
|
|
[Fact]
|
|
public void NewDatSpecified_Missing()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.NewDat>(Data.Models.Metadata.Header.NewDatKey, null);
|
|
Assert.False(header.NewDatSpecified);
|
|
}
|
|
|
|
[Fact]
|
|
public void NewDatSpecified_Exists()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.NewDat>(Data.Models.Metadata.Header.NewDatKey, new());
|
|
Assert.True(header.NewDatSpecified);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region SearchSpecified
|
|
|
|
[Fact]
|
|
public void SearchSpecified_Missing()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.Search>(Data.Models.Metadata.Header.SearchKey, null);
|
|
Assert.False(header.SearchSpecified);
|
|
}
|
|
|
|
[Fact]
|
|
public void SearchSpecified_Exists()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Write<Data.Models.OfflineList.Search>(Data.Models.Metadata.Header.SearchKey, new());
|
|
Assert.True(header.SearchSpecified);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Clone
|
|
|
|
[Fact]
|
|
public void CloneTest()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Name = "name";
|
|
|
|
object clone = header.Clone();
|
|
DatHeader? actual = clone as DatHeader;
|
|
Assert.NotNull(actual);
|
|
Assert.Equal("name", actual.Name);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CloneFormat
|
|
|
|
[Fact]
|
|
public void CloneFormatTest()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.DatFormat = DatFormat.Logiqx;
|
|
|
|
object clone = header.Clone();
|
|
DatHeader? actual = clone as DatHeader;
|
|
Assert.NotNull(actual);
|
|
Assert.Equal(DatFormat.Logiqx, actual.DatFormat);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GetInternalClone
|
|
|
|
[Fact]
|
|
public void GetInternalCloneTest()
|
|
{
|
|
DatHeader header = new DatHeader();
|
|
header.Name = "name";
|
|
|
|
Data.Models.Metadata.Header actual = header.GetInternalClone();
|
|
Assert.Equal("name", actual.Name);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Equals
|
|
|
|
[Fact]
|
|
public void Equals_Null_False()
|
|
{
|
|
DatHeader self = new DatHeader();
|
|
DatHeader? other = null;
|
|
|
|
bool actual = self.Equals(other);
|
|
Assert.False(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_DefaultInternal_True()
|
|
{
|
|
DatHeader self = new DatHeader();
|
|
DatHeader? other = new DatHeader();
|
|
|
|
bool actual = self.Equals(other);
|
|
Assert.True(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_MismatchedInternal_False()
|
|
{
|
|
DatHeader self = new DatHeader();
|
|
self.Name = "self";
|
|
|
|
DatHeader? other = new DatHeader();
|
|
other.Name = "other";
|
|
|
|
bool actual = self.Equals(other);
|
|
Assert.False(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_EqualInternal_True()
|
|
{
|
|
DatHeader self = new DatHeader();
|
|
self.Name = "name";
|
|
|
|
DatHeader? other = new DatHeader();
|
|
other.Name = "name";
|
|
|
|
bool actual = self.Equals(other);
|
|
Assert.True(actual);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|