mirror of
https://github.com/SabreTools/SabreTools.RedumpLib.git
synced 2026-02-04 05:36:11 +00:00
183 lines
7.2 KiB
C#
183 lines
7.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Newtonsoft.Json;
|
|
using SabreTools.RedumpLib.Data;
|
|
using SabreTools.RedumpLib.Data.Sections;
|
|
using Xunit;
|
|
|
|
namespace SabreTools.RedumpLib.Test
|
|
{
|
|
public class SubmissionInfoTests
|
|
{
|
|
[Fact]
|
|
public void EmptySerializationTest()
|
|
{
|
|
var submissionInfo = new SubmissionInfo();
|
|
string json = JsonConvert.SerializeObject(submissionInfo, Formatting.Indented);
|
|
Assert.NotNull(json);
|
|
}
|
|
|
|
[Fact]
|
|
public void PartialSerializationTest()
|
|
{
|
|
var submissionInfo = new SubmissionInfo()
|
|
{
|
|
CommonDiscInfo = new CommonDiscInfoSection(),
|
|
VersionAndEditions = new VersionAndEditionsSection(),
|
|
EDC = new EDCSection(),
|
|
ParentCloneRelationship = new ParentCloneRelationshipSection(),
|
|
Extras = new ExtrasSection(),
|
|
CopyProtection = new CopyProtectionSection(),
|
|
DumpersAndStatus = new DumpersAndStatusSection(),
|
|
TracksAndWriteOffsets = new TracksAndWriteOffsetsSection(),
|
|
SizeAndChecksums = new SizeAndChecksumsSection(),
|
|
};
|
|
|
|
string json = JsonConvert.SerializeObject(submissionInfo, Formatting.Indented);
|
|
Assert.NotNull(json);
|
|
}
|
|
|
|
[Fact]
|
|
public void FullSerializationTest()
|
|
{
|
|
var submissionInfo = new SubmissionInfo()
|
|
{
|
|
SchemaVersion = 1,
|
|
FullyMatchedID = 3,
|
|
PartiallyMatchedIDs = [0, 1, 2, 3],
|
|
Added = DateTime.UtcNow,
|
|
LastModified = DateTime.UtcNow,
|
|
|
|
CommonDiscInfo = new CommonDiscInfoSection()
|
|
{
|
|
System = RedumpSystem.IBMPCcompatible,
|
|
Media = DiscType.CD,
|
|
Title = "Game Title",
|
|
ForeignTitleNonLatin = "Foreign Game Title",
|
|
DiscNumberLetter = "1",
|
|
DiscTitle = "Install Disc",
|
|
Category = DiscCategory.Games,
|
|
Region = Region.World,
|
|
Languages = [Language.English, Language.Spanish, Language.French],
|
|
LanguageSelection = [LanguageSelection.BiosSettings],
|
|
Serial = "Disc Serial",
|
|
Layer0MasteringRing = "L0 Mastering Ring",
|
|
Layer0MasteringSID = "L0 Mastering SID",
|
|
Layer0ToolstampMasteringCode = "L0 Toolstamp",
|
|
Layer0MouldSID = "L0 Mould SID",
|
|
Layer0AdditionalMould = "L0 Additional Mould",
|
|
Layer1MasteringRing = "L1 Mastering Ring",
|
|
Layer1MasteringSID = "L1 Mastering SID",
|
|
Layer1ToolstampMasteringCode = "L1 Toolstamp",
|
|
Layer1MouldSID = "L1 Mould SID",
|
|
Layer1AdditionalMould = "L1 Additional Mould",
|
|
Layer2MasteringRing = "L2 Mastering Ring",
|
|
Layer2MasteringSID = "L2 Mastering SID",
|
|
Layer2ToolstampMasteringCode = "L2 Toolstamp",
|
|
Layer3MasteringRing = "L3 Mastering Ring",
|
|
Layer3MasteringSID = "L3 Mastering SID",
|
|
Layer3ToolstampMasteringCode = "L3 Toolstamp",
|
|
RingWriteOffset = "+12",
|
|
Barcode = "UPC Barcode",
|
|
EXEDateBuildDate = "19xx-xx-xx",
|
|
ErrorsCount = "0",
|
|
Comments = "Comment data line 1\r\nComment data line 2",
|
|
CommentsSpecialFields = new Dictionary<SiteCode, string>()
|
|
{
|
|
[SiteCode.ISBN] = "ISBN",
|
|
},
|
|
Contents = "Special contents 1\r\nSpecial contents 2",
|
|
ContentsSpecialFields = new Dictionary<SiteCode, string>()
|
|
{
|
|
[SiteCode.PlayableDemos] = "Game Demo 1",
|
|
},
|
|
},
|
|
|
|
VersionAndEditions = new VersionAndEditionsSection()
|
|
{
|
|
Version = "Original",
|
|
VersionDatfile = "Alt",
|
|
CommonEditions = ["Taikenban"],
|
|
OtherEditions = "Rerelease",
|
|
},
|
|
|
|
EDC = new EDCSection()
|
|
{
|
|
EDC = YesNo.Yes,
|
|
},
|
|
|
|
ParentCloneRelationship = new ParentCloneRelationshipSection()
|
|
{
|
|
ParentID = "12345",
|
|
RegionalParent = false,
|
|
},
|
|
|
|
Extras = new ExtrasSection()
|
|
{
|
|
PVD = "PVD",
|
|
DiscKey = "Disc key",
|
|
DiscID = "Disc ID",
|
|
PIC = "PIC",
|
|
Header = "Header",
|
|
BCA = "BCA",
|
|
SecuritySectorRanges = "SSv1 Ranges",
|
|
},
|
|
|
|
CopyProtection = new CopyProtectionSection()
|
|
{
|
|
AntiModchip = YesNo.Yes,
|
|
LibCrypt = YesNo.No,
|
|
LibCryptData = "LibCrypt data",
|
|
Protection = "List of protections",
|
|
SecuROMData = "SecuROM data",
|
|
},
|
|
|
|
DumpersAndStatus = new DumpersAndStatusSection()
|
|
{
|
|
Status = DumpStatus.TwoOrMoreGreen,
|
|
Dumpers = ["Dumper1", "Dumper2"],
|
|
OtherDumpers = "Dumper3",
|
|
},
|
|
|
|
TracksAndWriteOffsets = new TracksAndWriteOffsetsSection()
|
|
{
|
|
ClrMameProData = "Datfile",
|
|
Cuesheet = "Cuesheet",
|
|
CommonWriteOffsets = [0, 12, -12],
|
|
OtherWriteOffsets = "-2",
|
|
},
|
|
|
|
SizeAndChecksums = new SizeAndChecksumsSection()
|
|
{
|
|
Layerbreak = 0,
|
|
Layerbreak2 = 1,
|
|
Layerbreak3 = 2,
|
|
Size = 12345,
|
|
CRC32 = "CRC32",
|
|
MD5 = "MD5",
|
|
SHA1 = "SHA1",
|
|
},
|
|
|
|
DumpingInfo = new DumpingInfoSection()
|
|
{
|
|
DumpingProgram = "DiscImageCreator 20500101",
|
|
DumpingDate = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"),
|
|
DumpingParameters = "cd dvd bd sacd fd hdd",
|
|
Manufacturer = "ATAPI",
|
|
Model = "Optical Drive",
|
|
Firmware = "1.23",
|
|
ReportedDiscType = "CD-R",
|
|
},
|
|
|
|
Artifacts = new Dictionary<string, string>()
|
|
{
|
|
["Sample Artifact"] = "Sample Data",
|
|
},
|
|
};
|
|
|
|
string json = JsonConvert.SerializeObject(submissionInfo, Formatting.Indented);
|
|
Assert.NotNull(json);
|
|
}
|
|
}
|
|
}
|