Compare commits

...

239 Commits
1.9.0 ... 2.0.2

Author SHA1 Message Date
Matt Nadareski
1d9e12183f Bump version 2025-10-07 12:42:06 -04:00
Matt Nadareski
aaa8bbe709 This was inconsistent too 2025-10-07 11:25:35 -04:00
Matt Nadareski
805d1b9ad8 Not sure why this part was inconsistent 2025-10-07 11:21:39 -04:00
Matt Nadareski
d24d3e5adb Remove now-unused constants 2025-10-07 10:48:31 -04:00
Matt Nadareski
d3a7d552c3 Use main feature pattern with InfoPrint 2025-10-07 10:20:57 -04:00
Matt Nadareski
9f1c5e2bd2 Use main feature pattern with ExtractionTool 2025-10-07 10:04:19 -04:00
Matt Nadareski
1ec4ea8354 Update packages 2025-10-07 09:37:42 -04:00
Matt Nadareski
e4fab52489 Use CommandLine library for executables 2025-10-06 09:32:01 -04:00
Matt Nadareski
e029fa4833 Skip warning around GC.SharpCompress inclusion 2025-10-05 17:02:44 -04:00
Matt Nadareski
2c3f229a6a Bump version 2025-10-05 16:59:33 -04:00
Matt Nadareski
3558d3532c Do not update offset on name offset 2025-10-02 13:33:51 -04:00
Matt Nadareski
ad5314dc22 Minor tweak 2025-10-01 20:08:33 -04:00
Matt Nadareski
eaa5bb5662 Sections can't be null 2025-10-01 20:06:05 -04:00
Matt Nadareski
fcdc703595 Update readme to be accurate again 2025-09-30 20:58:52 -04:00
Matt Nadareski
ef9fa562ab More BZip documenting 2025-09-30 20:35:40 -04:00
Matt Nadareski
ac285c48fe Start documenting BZip in code 2025-09-30 20:25:18 -04:00
Matt Nadareski
e57ad65210 Migrate to GrindCore fork of SharpCompress 2025-09-30 19:52:14 -04:00
Matt Nadareski
0fc3a30422 Print a couple more XZ fields 2025-09-30 14:09:40 -04:00
Matt Nadareski
49f6704694 Add initial XZ printer 2025-09-30 14:05:34 -04:00
Matt Nadareski
6df712c538 Add XZ parsing to wrapper 2025-09-30 13:56:21 -04:00
Matt Nadareski
bda3076a30 Further XZ parsing fixes 2025-09-30 13:56:11 -04:00
Matt Nadareski
89e8e7c706 Fix more XZ parsing; use read-from-end 2025-09-30 13:22:26 -04:00
Matt Nadareski
c10835d221 Start fixing XZ parsing 2025-09-30 13:08:53 -04:00
Matt Nadareski
a6801350ea Fix issue with XZ enum 2025-09-30 12:48:12 -04:00
Matt Nadareski
c7a5a62041 Require exact versions for build 2025-09-30 11:09:37 -04:00
Matt Nadareski
749b35e5cb Slight tweak to CHD v5 model 2025-09-30 10:59:44 -04:00
Matt Nadareski
3c520d33eb Add XZ reader, fix some minor issues 2025-09-30 09:47:19 -04:00
Matt Nadareski
635170a051 Add reference for BZ2 2025-09-29 23:38:40 -04:00
Matt Nadareski
9619311d11 Store variable-length numbers as ulong 2025-09-29 23:32:58 -04:00
Matt Nadareski
4bee14835c Fix last couple of commits 2025-09-29 23:12:23 -04:00
Matt Nadareski
f44059e16a Add XZ variable length helper methods 2025-09-29 23:07:05 -04:00
Matt Nadareski
bfb206a06d Add XZ models 2025-09-29 22:56:53 -04:00
Matt Nadareski
6b7b05eb31 Port some extensions for GZip from ST 2025-09-29 22:04:10 -04:00
Matt Nadareski
a9a2a04332 Store raw extras field for odd formatting 2025-09-29 21:49:20 -04:00
Matt Nadareski
50459645dd Add a couple GZ constants 2025-09-29 21:39:37 -04:00
Matt Nadareski
564386038f Try using Environment instead of compiler flags 2025-09-29 12:29:14 -04:00
Matt Nadareski
9f229aad47 Bump version 2025-09-29 07:27:50 -04:00
Matt Nadareski
f6f6ea21b4 Sync README with help text 2025-09-28 21:47:37 -04:00
Matt Nadareski
ec416d5631 Document all local samples 2025-09-27 22:47:43 -04:00
Matt Nadareski
335cbca8fb Add clarification 2025-09-27 22:04:20 -04:00
Matt Nadareski
ab8d5ec475 Split unknown AddD field, fix TODO 2025-09-27 22:02:10 -04:00
Matt Nadareski
ef9f050fbf Signature is clearly a string 2025-09-27 21:47:55 -04:00
Matt Nadareski
46b1838d72 Clean up some things around AddD 2025-09-27 21:46:03 -04:00
HeroponRikiBestest
2b9a527743 Small fix just in case. (#25) 2025-09-27 12:59:02 -04:00
HeroponRikiBestest
cb41f8a8a6 Temporary fix for solid archive detection until SharpCompress makes another release. (#24) 2025-09-27 12:32:10 -04:00
Matt Nadareski
fcf003af7d Split Wise extraction to be smarter 2025-09-27 08:26:57 -04:00
Matt Nadareski
350924545c Fix bzip constants 2025-09-26 23:49:35 -04:00
Matt Nadareski
ae6bf0f2da Fix issues from manual testing 2025-09-26 22:52:09 -04:00
Matt Nadareski
7395d9842c Complete Spoon Installer extraction 2025-09-26 22:30:59 -04:00
Matt Nadareski
741a1e13d0 Add framework for Spoon Installer extraction 2025-09-26 22:27:27 -04:00
Matt Nadareski
447064afc1 Add Spoon Installer reader 2025-09-26 22:23:20 -04:00
Matt Nadareski
a443a6833a Add integer values for better research 2025-09-26 22:18:41 -04:00
Matt Nadareski
160239eba7 Add Spoon Installer models and notes 2025-09-26 22:12:27 -04:00
Matt Nadareski
04fb3fd363 Fix documentation issue 2025-09-26 22:02:35 -04:00
Matt Nadareski
ba60c9b516 Add extraction for Advanced Installer 2025-09-26 19:56:51 -04:00
Matt Nadareski
f8ddfcf5ae Add framework for Advanced Installer extraction 2025-09-26 19:43:39 -04:00
Matt Nadareski
c379bdcadc Fix description 2025-09-26 16:49:21 -04:00
Matt Nadareski
575caeda92 Make fixes from manual testing 2025-09-26 16:38:56 -04:00
Matt Nadareski
0d4dcf4a60 Start implementing Advanced Installer reader 2025-09-26 16:30:38 -04:00
Matt Nadareski
ddb14a69d0 Forgot to rename Writers folder 2025-09-26 16:29:16 -04:00
Matt Nadareski
f1ace61076 Introduce and use BaseMetadataSerializer 2025-09-26 16:00:33 -04:00
Matt Nadareski
0f5f866cd2 Rename IModelSerializer to ICrossModel 2025-09-26 15:48:36 -04:00
Matt Nadareski
bd866c5b05 Update package tags 2025-09-26 15:36:22 -04:00
Matt Nadareski
07ea1abbf8 Use correct block format for readme 2025-09-26 15:33:38 -04:00
Matt Nadareski
6853376f60 Unify type parameter naming 2025-09-26 15:28:53 -04:00
Matt Nadareski
0e67f0bff4 Move wrapper interfaces to better namespace 2025-09-26 15:20:49 -04:00
Matt Nadareski
6035c19f47 Move IPrinter interface to better namespace 2025-09-26 15:13:43 -04:00
Matt Nadareski
592a3d3505 Rename *Serializer interfaces to *Writer 2025-09-26 15:10:59 -04:00
Matt Nadareski
2c092ed665 Rename *Deserializer interfaces to *Reader 2025-09-26 15:02:43 -04:00
Matt Nadareski
2bd4a00df4 Rename Serializers to Writers 2025-09-26 14:59:45 -04:00
Matt Nadareski
f0639b28b9 Rename Deserializers to Readers 2025-09-26 14:57:20 -04:00
Matt Nadareski
775bab6656 Add AACS extension 2025-09-26 14:27:49 -04:00
Matt Nadareski
c82d865cd5 Move Extensions to Data path 2025-09-26 13:15:55 -04:00
Matt Nadareski
0b95b9509a Move Printers to Data path 2025-09-26 13:11:57 -04:00
Matt Nadareski
d8185e3970 Move Models to Data path 2025-09-26 13:06:18 -04:00
Matt Nadareski
b3a3766d77 Create and use Attributes namespace 2025-09-26 12:44:16 -04:00
Matt Nadareski
3681682fe8 Internal rename of OID namespace to have Data prefix 2025-09-26 12:29:52 -04:00
Matt Nadareski
12c292d038 Namespace reference cleanup 2025-09-26 12:27:10 -04:00
Matt Nadareski
5af4de2878 Migrate remaining models from Models 2025-09-26 12:09:34 -04:00
Matt Nadareski
2e7f18c407 Migrate non-executable models from Models 2025-09-26 11:57:18 -04:00
Matt Nadareski
48248b2832 Add namespace to the readme 2025-09-26 11:43:49 -04:00
Matt Nadareski
c6082fa7c7 Migrate support file models from Models 2025-09-26 11:42:28 -04:00
Matt Nadareski
3af19510a8 Migrate archive models from Models 2025-09-26 10:57:15 -04:00
Matt Nadareski
2a12b8132f Add README for Models namespace 2025-09-26 10:24:36 -04:00
Matt Nadareski
3daec985ba Migrate metadata models from Models 2025-09-26 10:20:48 -04:00
Matt Nadareski
4b79ee103c Simplify overlay address finding slightly 2025-09-25 21:34:41 -04:00
Matt Nadareski
077abd590a Use constants, add CFB detection to overlays and resources 2025-09-25 21:13:07 -04:00
Matt Nadareski
cab890b1d9 Remove erroneous duplicate code 2025-09-25 20:29:51 -04:00
Matt Nadareski
d3f0858ec4 Forgot the second adjustment 2025-09-25 20:28:25 -04:00
Matt Nadareski
97896b91d7 Cap overlay at 0x10000 bytes 2025-09-25 20:14:41 -04:00
Matt Nadareski
ca354b3b7f Comment about entry point data caching 2025-09-25 16:24:20 -04:00
Matt Nadareski
d035211a64 Off by one? 2025-09-25 16:20:15 -04:00
Matt Nadareski
75728a4d1d Handle large overlays in extraction 2025-09-25 14:07:01 -04:00
Matt Nadareski
265789ea84 Overlay address in PE should be long, fix caching 2025-09-25 13:55:44 -04:00
Matt Nadareski
4577311432 Adjust overlay address for PE using certificate table 2025-09-25 13:53:56 -04:00
Matt Nadareski
963c333c2e Cache the overlay length 2025-09-25 13:50:51 -04:00
Matt Nadareski
6eff6cf3b6 Add TODOs to handle large overlays 2025-09-25 13:41:51 -04:00
Matt Nadareski
c9794691bb Limit overlay caching to int.MaxValue 2025-09-25 13:40:29 -04:00
Matt Nadareski
9574232719 Bump version 2025-09-24 11:06:47 -04:00
Matt Nadareski
676bf584d6 Clean up some console writes 2025-09-24 10:55:39 -04:00
Matt Nadareski
0a4fd01ede Gate MS-CAB warning behind debug to avoid confusion 2025-09-24 10:51:27 -04:00
Matt Nadareski
6cb4023498 Update namespaces in README 2025-09-24 10:50:12 -04:00
Matt Nadareski
8f775dbb3b This should be ObjectIdentifier not strictly ASN.1 2025-09-24 10:47:00 -04:00
Matt Nadareski
91785eab1f Fix tests 2025-09-24 10:40:39 -04:00
Matt Nadareski
4f8751667a Namespace ASN models until Models is updated 2025-09-24 10:40:30 -04:00
Matt Nadareski
ad7508c464 Add some more OIDs 2025-09-24 10:11:21 -04:00
Matt Nadareski
97a9e141ae Add some more OIDs 2025-09-24 09:54:18 -04:00
Matt Nadareski
842a0c3daf Remove useless PathProcessor helper class 2025-09-24 09:43:27 -04:00
Matt Nadareski
b6acde9145 Make consistent with other deserializers 2025-09-24 09:27:24 -04:00
Matt Nadareski
b97dbc2ac5 Simplify extension code slightly 2025-09-24 09:22:23 -04:00
Matt Nadareski
e03852bd7e Simplify ASN.1 integration 2025-09-24 09:19:46 -04:00
Matt Nadareski
0db5de204e Rename TLV deserializer to be more consistent 2025-09-24 09:06:26 -04:00
Matt Nadareski
5fe3f14419 Make TypeLengthValue more model-like 2025-09-24 09:00:48 -04:00
Matt Nadareski
ffe1d9a82d Create and use TypeLengthValue deserializer 2025-09-24 08:54:25 -04:00
Matt Nadareski
11d6560290 Update IO to 1.7.5 2025-09-24 08:30:24 -04:00
Matt Nadareski
e29d8e6728 Integrate ASN.1 code from separate library 2025-09-24 08:25:11 -04:00
Matt Nadareski
918e81a4cb Move extensions to new namespace for cleanliness 2025-09-23 09:58:44 -04:00
Matt Nadareski
ad0ddede38 Fix reference issue 2025-09-22 21:21:43 -04:00
Matt Nadareski
e969b12884 Move wrapper factory up a level 2025-09-22 21:14:33 -04:00
Matt Nadareski
7a5475255f Fix the fake wrapper tests 2025-09-22 20:14:01 -04:00
Matt Nadareski
0ffd436de8 Update packages 2025-09-22 20:07:18 -04:00
Matt Nadareski
4f685187e9 COFF naming doesn't need to continue 2025-09-22 12:56:19 -04:00
Matt Nadareski
2b356b37b1 Sync NE overlay handling with PE 2025-09-22 10:08:46 -04:00
Matt Nadareski
7c56268eb1 Add PFF version 0 detection 2025-09-22 09:35:46 -04:00
Matt Nadareski
970a54e6e3 Add placeholder SFFS wrapper 2025-09-22 09:13:27 -04:00
Matt Nadareski
e35ddf0780 Always overwrite on output, ensure flushed streams 2025-09-21 21:10:40 -04:00
Matt Nadareski
bf35b7c10b Bump version 2025-09-21 12:35:37 -04:00
Matt Nadareski
4026b8ca09 Handle differently-encoded XMLs as textfiles 2025-09-21 12:10:58 -04:00
Matt Nadareski
6d2e2d8c3b Handle some invalid parsing cases that were missed previously 2025-09-21 11:44:58 -04:00
Matt Nadareski
a2b08157cc Fix issue with split resource tables 2025-09-21 11:23:53 -04:00
Matt Nadareski
0108ecf4c1 Bump version 2025-09-21 09:33:55 -04:00
Matt Nadareski
4921da0bb5 Fix issues from porting MPQ from BOS 2025-09-21 00:04:16 -04:00
Matt Nadareski
0c836bb3b1 Try one more thing? 2025-09-20 23:39:49 -04:00
Matt Nadareski
a8e41c1505 Try this 2025-09-20 23:24:12 -04:00
Matt Nadareski
f67e1c9d2b Bump version 2025-09-20 22:38:08 -04:00
Matt Nadareski
f0ce58a79e Move two things out of the lock 2025-09-20 22:32:54 -04:00
Matt Nadareski
b7f782c1b7 Update packages 2025-09-20 22:31:58 -04:00
Matt Nadareski
5e39e169b2 Clean up PE printing a bit 2025-09-20 20:17:38 -04:00
Matt Nadareski
104c5ccad4 XML resources and overlay 2025-09-20 19:48:45 -04:00
Matt Nadareski
d15b4d7d23 Bump version 2025-09-20 10:47:38 -04:00
Matt Nadareski
60e6a75d5e Make public again 2025-09-20 10:40:19 -04:00
Matt Nadareski
484415d0e5 Ensure the resource table has been parsed for version info 2025-09-20 10:36:09 -04:00
Matt Nadareski
0ef9b447c4 Remove extraneous semicolon 2025-09-20 10:34:08 -04:00
Matt Nadareski
8f64e2defd Minor cleanup to previous commit 2025-09-20 10:32:53 -04:00
HeroponRikiBestest
fbdadce129 Add Matroschka processing. (#23)
* Made changes

* Temporary hack to not rely on models without significantly changing current code. Revert all of this with offset-based reading later.

Also added unnecessary casting in wrapperfactory so serialization will build locally. Revert this, since I assume it somehow builds fine for GA/sabre/etc.

* small fixes

* Store matroschka section as PE extension

* Move extractor out of deserializer, remove weird hack

* Potential GA fix

* More potential GA fixes.

* I have no idea why GA hits that error but not me

* Giving up on GA for now

* fix locking issues

* Fix GA building; thank you sabre

* Minor improvements all around

* Catch some braced single-line if statements

* Use var more

* Seperate deserializer into helper methods

* Make file path reading much more sane

* Removed MatroschkaHeaderType enum

* Removed MatroschkaGapType enum, further simplify matgaphelper.

* Remove MatroschkaHasUnknown enum, further simplify Unknown value reading.

* Cache initial offset.

* Remove TryCreate patterns.

* Rename matroschka variable to package

* Newline after object

* Rename to obj

* Remove a few unecessary TODOs

* Seperate hexstring byte read to another line.

* Fix documentation.

* More private static

* Changed data.position setting to seeking. NTS: check if this broke anything later

* rename entries to obj

* MatroschkaEntry to var

* Newline

* Alphabetical

* More alphabetical.

* section to package

* Move private variables.

* Move to extension properties.

* Revert section finding.

* Remove uneeded _dataSource lock and access.

* combine lines and make var

* Combine two null checks.

* Packaged files, some past commits I think I forgot to push.

* Missed two

* newline

* space

* newline

* Combine two lines

* Removed comment

* Return false explicitly

* Change hashing string implementation

* Fix order.

* Use offset reading instead of filedataarray

* Change file reading around a little preemptively for BOS

---------

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>
2025-09-20 10:00:54 -04:00
Matt Nadareski
d3e7abfaa3 Normalize ReadRangeFromSource use 2025-09-20 09:49:42 -04:00
Matt Nadareski
b2279e97b2 CHD is all big-endian 2025-09-18 21:18:43 -04:00
Matt Nadareski
7cf969336f Fix this bumble 2025-09-18 20:54:30 -04:00
Matt Nadareski
f73d48166a Source isn't needed here anymore 2025-09-18 09:46:01 -04:00
Matt Nadareski
53af618fe4 Proof-of-concept Wise section caching 2025-09-18 09:40:15 -04:00
Matt Nadareski
5d2cf58477 Fix this being finicky 2025-09-17 12:56:32 -04:00
Matt Nadareski
664e7dce28 Greater than but not equal 2025-09-17 10:30:35 -04:00
Matt Nadareski
14a8f00864 Clean up nonstandard deserializers 2025-09-16 23:24:49 -04:00
Matt Nadareski
0b889fdc06 Remove weird holdover property 2025-09-16 23:11:14 -04:00
Matt Nadareski
e336efc149 Do the same for serializers 2025-09-16 22:29:52 -04:00
Matt Nadareski
4cd52162eb Static implementations using reflection go away 2025-09-16 22:25:40 -04:00
Matt Nadareski
eab9fff711 One slipped through the cracks 2025-09-16 22:22:32 -04:00
Matt Nadareski
d4f3511060 These don't need to call the reflection one 2025-09-16 22:21:22 -04:00
Matt Nadareski
ed12bbb35c Avoid hidden reflection call for most cases 2025-09-16 22:20:13 -04:00
Matt Nadareski
aa4629fe99 MPQ needs a distinction 2025-09-16 22:12:18 -04:00
Matt Nadareski
1950f23cf4 This should actually be a different exception type 2025-09-16 22:08:50 -04:00
Matt Nadareski
ca7c88cef6 Add better summaries for things 2025-09-16 22:07:05 -04:00
Matt Nadareski
10848e6c51 Fix issue with seeking by introducing more constructors 2025-09-16 21:54:26 -04:00
Matt Nadareski
f5d0f065c1 Handle unknown AACS records a bit better for now 2025-09-16 20:11:41 -04:00
Matt Nadareski
17b0573b0b Handle memory-padded resources tables and non-local resources 2025-09-12 10:50:22 -04:00
Matt Nadareski
7f1d843d96 Minor bugfix in name retrieval 2025-09-12 09:28:27 -04:00
Matt Nadareski
cc4837c1d1 More partial classes for reasonable things 2025-09-12 09:09:40 -04:00
Matt Nadareski
588ee5bfe4 Make partial classes for extraction 2025-09-12 09:02:03 -04:00
Matt Nadareski
e9b1b2750f Fill out the placeholder 2025-09-11 12:32:44 -04:00
Matt Nadareski
1d6fa06e97 Placeholder for section table trailer data 2025-09-11 12:24:56 -04:00
Matt Nadareski
2c22924239 Seek to section table to match docs 2025-09-11 12:17:48 -04:00
Matt Nadareski
eb01dd1e25 Add note for later 2025-09-11 12:14:07 -04:00
Matt Nadareski
0a3cb79b1c Fix issue found in encrypted and obfuscated PE 2025-09-11 12:07:22 -04:00
Matt Nadareski
da9eace8cc Slight tweak to printing again 2025-09-11 11:47:07 -04:00
Matt Nadareski
526a02b8b6 Slight tweak to printing again 2025-09-11 11:44:58 -04:00
Matt Nadareski
658c7a1c3b Add another safeguard? 2025-09-11 11:10:11 -04:00
Matt Nadareski
af84474795 Fix invalid base relocation table parsing 2025-09-11 10:58:15 -04:00
Matt Nadareski
42913c6732 Invalid export should be null, not empty 2025-09-11 10:49:01 -04:00
Matt Nadareski
2cdf544518 Fix an oddly-reading format 2025-09-11 10:45:17 -04:00
Matt Nadareski
652ec58238 Fix certificate table info printing 2025-09-11 10:41:09 -04:00
Matt Nadareski
f8531daa5c Ensure overlay accounts for certificates properly 2025-09-11 10:40:09 -04:00
Matt Nadareski
e9e89b0b43 This has been consistently wrong 2025-09-11 10:33:10 -04:00
Matt Nadareski
55e788a894 Ignore invalid certificate entries 2025-09-11 10:21:51 -04:00
Matt Nadareski
b28bb93ccb Handle non-section data with valid RVA 2025-09-11 10:11:05 -04:00
Matt Nadareski
367aab0f83 Add placeholder for figuring something out later 2025-09-11 09:59:42 -04:00
Matt Nadareski
9dcf3b9e0a The offset needs to be passed all the way 2025-09-11 09:42:48 -04:00
Matt Nadareski
3c514110ce The offset needs to be passed fully 2025-09-11 09:29:46 -04:00
Matt Nadareski
c9b0c2dace Deliberately don't retain position 2025-09-11 09:27:56 -04:00
Matt Nadareski
d575b6977e Correctly parse resource data 2025-09-11 09:21:31 -04:00
Matt Nadareski
a00e6a5e2d Start cleaning up resource parsing more 2025-09-11 09:09:56 -04:00
Matt Nadareski
1b9ae83e8c Don't pad most tables to aligned size 2025-09-11 08:35:49 -04:00
Matt Nadareski
8b91eb1caf Bound the import and export tables 2025-09-11 08:33:59 -04:00
Matt Nadareski
2a6a7b5e9a Pass in the correct data 2025-09-11 08:14:24 -04:00
Matt Nadareski
a85943866e Start using table data only in already-bounded tables 2025-09-11 08:12:27 -04:00
Matt Nadareski
797fb519c1 Pass table data in, mostly unused 2025-09-11 07:49:17 -04:00
Matt Nadareski
3ba9d56363 Read table data directly 2025-09-11 07:44:28 -04:00
Matt Nadareski
04cd4e4056 Start wiring through size bounding on table reads 2025-09-11 07:41:17 -04:00
Matt Nadareski
348e170654 There 2025-09-10 21:54:10 -04:00
Matt Nadareski
f5a4ca6276 Finally figure out what I was doing 2025-09-10 21:37:05 -04:00
Matt Nadareski
672c010aa7 Fix a stupid issue 2025-09-10 21:04:09 -04:00
Matt Nadareski
2459d88951 Found the real issue 2025-09-10 20:46:32 -04:00
Matt Nadareski
350d1c8d31 I guess this can be null? 2025-09-10 20:29:26 -04:00
Matt Nadareski
98a3842a3e Fixx off-by-one error 2025-09-10 20:26:17 -04:00
Matt Nadareski
b52a4469ee Remove alignment, add TODO and comments 2025-09-10 11:21:34 -04:00
Matt Nadareski
e3143e21ba Fix comment to be more accurate 2025-09-10 11:18:53 -04:00
Matt Nadareski
1bf2181fd3 Make check a little nicer 2025-09-09 18:56:50 -04:00
Matt Nadareski
1460635aab Move hidden resources parsing to make method nicer 2025-09-09 18:52:35 -04:00
Matt Nadareski
935ec00c86 Notes about hidden resources 2025-09-09 17:15:25 -04:00
Matt Nadareski
473b6de09b Slight cleanup 2025-09-09 16:42:50 -04:00
Matt Nadareski
ba75f2ac2c Try to fix weird resource parsing 2025-09-09 14:54:54 -04:00
Matt Nadareski
a230b39fbc Make relocation block parsing safer 2025-09-09 13:51:40 -04:00
Matt Nadareski
8e963ac62a Fix a couple of potential logic bugs 2025-09-09 13:42:36 -04:00
Matt Nadareski
eaaa89847d Rename to pex and nex for readability 2025-09-09 13:11:27 -04:00
Matt Nadareski
ef76166978 Clean up a few more PE things 2025-09-09 13:11:09 -04:00
Matt Nadareski
72912586a1 Clean up COFF symbol table parsing 2025-09-09 12:18:46 -04:00
Matt Nadareski
fb241a4036 Make things easier to read, add some helpers 2025-09-09 09:57:53 -04:00
Matt Nadareski
368c8b0533 Add section table note 2025-09-09 09:37:03 -04:00
Matt Nadareski
4010325e65 Make note from Models 2025-09-09 09:31:53 -04:00
Matt Nadareski
11dd75ad95 Make import table easier to read 2025-09-08 23:21:45 -04:00
Matt Nadareski
d0480a1311 Make export table easier to read 2025-09-08 22:51:46 -04:00
Matt Nadareski
2be33b845d Be even more careful 2025-09-08 22:09:12 -04:00
Matt Nadareski
2ad42e3a0f Seek and ye shall find 2025-09-08 21:41:46 -04:00
Matt Nadareski
5d1f83800b Add SecuROM AddD deserializer 2025-09-08 21:20:47 -04:00
Matt Nadareski
30e89a7943 Clean this up 2025-09-08 21:13:34 -04:00
Matt Nadareski
61f5dc4cf2 Extract even more types of embedded data 2025-09-08 20:08:43 -04:00
Matt Nadareski
d056c179ed Add embedded UHA support 2025-09-08 08:51:40 -04:00
Matt Nadareski
b9c4bfc67e Expand the search window again 2025-09-08 08:17:01 -04:00
Matt Nadareski
6ab5ee0ae0 Add regions here for maybe future work 2025-09-08 08:03:07 -04:00
Matt Nadareski
94c1a86702 Add AssemblyName extension property to PE 2025-09-08 07:56:40 -04:00
Matt Nadareski
af6dd6a7fc Check for BZip2 and XZ in hidden places too 2025-09-08 07:52:41 -04:00
Matt Nadareski
45d4926d4c Toss the filename at the top of the infoprint output 2025-09-07 20:52:02 -04:00
Matt Nadareski
ce016c5eb0 Bump version 2025-09-06 08:18:43 -04:00
Matt Nadareski
2225c1f2d8 Update Nuget packages 2025-09-05 10:57:14 -04:00
Matt Nadareski
2d0c0d5845 Make a bunch of things cache more safer 2025-09-05 08:32:40 -04:00
Matt Nadareski
60f1756cbb Wrap places where ReadFrom was not being used but still could be parallel 2025-09-05 07:45:55 -04:00
Matt Nadareski
738a1d250a Add inherent locking the the data source in wrappers 2025-09-05 07:36:15 -04:00
Matt Nadareski
c8e65e1e30 Add section string lock 2025-09-03 13:46:12 -04:00
Matt Nadareski
ecb09ce6f2 Make sure source data isn't locked unnecessarily 2025-09-02 23:56:29 -04:00
Matt Nadareski
72a1484a71 More granular locks 2025-09-02 23:51:02 -04:00
1344 changed files with 86394 additions and 14398 deletions

View File

@@ -10,7 +10,7 @@
<Nullable>enable</Nullable>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>1.9.0</Version>
<Version>2.0.2</Version>
</PropertyGroup>
<!-- Support All Frameworks -->
@@ -27,14 +27,6 @@
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
</PropertyGroup>
<!-- Set a build flag for Windows specifically -->
<PropertyGroup Condition="'$(RuntimeIdentifier)'=='win-x86'">
<DefineConstants>$(DefineConstants);WINX86</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(RuntimeIdentifier)'=='win-x64'">
<DefineConstants>$(DefineConstants);WINX64</DefineConstants>
</PropertyGroup>
<!-- These are needed for dealing with native Windows DLLs -->
<ItemGroup Condition="'$(RuntimeIdentifier)'=='win-x86'">
<ContentWithTargetPath Include="..\SabreTools.Serialization\runtimes\win-x86\native\CascLib.dll">
@@ -66,8 +58,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.7.1" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.8" Condition="!$(TargetFramework.StartsWith(`net2`)) AND !$(TargetFramework.StartsWith(`net3`)) AND !$(TargetFramework.StartsWith(`net40`)) AND !$(TargetFramework.StartsWith(`net452`))" />
<PackageReference Include="SabreTools.CommandLine" Version="[1.3.2]" />
<PackageReference Include="SabreTools.IO" Version="[1.7.6]" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="9.0.9" Condition="!$(TargetFramework.StartsWith(`net2`)) AND !$(TargetFramework.StartsWith(`net3`)) AND !$(TargetFramework.StartsWith(`net40`)) AND !$(TargetFramework.StartsWith(`net452`))" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,325 @@
using System;
using System.IO;
using SabreTools.CommandLine;
using SabreTools.CommandLine.Inputs;
using SabreTools.IO.Extensions;
using SabreTools.Serialization;
using SabreTools.Serialization.Wrappers;
namespace ExtractionTool.Features
{
internal sealed class MainFeature : Feature
{
#region Feature Definition
public const string DisplayName = "main";
/// <remarks>Flags are unused</remarks>
private static readonly string[] _flags = [];
/// <remarks>Description is unused</remarks>
private const string _description = "";
#endregion
#region Inputs
private const string _debugName = "debug";
internal readonly FlagInput DebugInput = new(_debugName, ["-d", "--debug"], "Enable debug mode");
private const string _outputPathName = "output-path";
internal readonly StringInput OutputPathInput = new(_outputPathName, ["-o", "--outdir"], "Set output path for extraction (required)");
#endregion
#region Properties
/// <summary>
/// Enable debug output for relevant operations
/// </summary>
public bool Debug { get; private set; }
/// <summary>
/// Output path for archive extraction
/// </summary>
public string OutputPath { get; private set; } = string.Empty;
#endregion
public MainFeature()
: base(DisplayName, _flags, _description)
{
RequiresInputs = true;
Add(DebugInput);
Add(OutputPathInput);
}
/// <inheritdoc/>
public override bool Execute()
{
// Get the options from the arguments
Debug = GetBoolean(_debugName);
OutputPath = GetString(_outputPathName) ?? string.Empty;
// Validate the output path
if (!ValidateExtractionPath())
return false;
// Loop through the input paths
for (int i = 0; i < Inputs.Count; i++)
{
string arg = Inputs[i];
ExtractPath(arg);
}
return true;
}
/// <inheritdoc/>
public override bool VerifyInputs() => Inputs.Count > 0;
/// <summary>
/// Wrapper to extract data for a single path
/// </summary>
/// <param name="path">File or directory path</param>
private void ExtractPath(string path)
{
// Normalize by getting the full path
path = Path.GetFullPath(path);
Console.WriteLine($"Checking possible path: {path}");
// Check if the file or directory exists
if (File.Exists(path))
{
ExtractFile(path);
}
else if (Directory.Exists(path))
{
foreach (string file in path.SafeEnumerateFiles("*", SearchOption.AllDirectories))
{
ExtractFile(file);
}
}
else
{
Console.WriteLine($"{path} does not exist, skipping...");
}
}
/// <summary>
/// Print information for a single file, if possible
/// </summary>
/// <param name="path">File path</param>
private void ExtractFile(string file)
{
Console.WriteLine($"Attempting to extract all files from {file}");
using Stream stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
// Get the extension for certain checks
string extension = Path.GetExtension(file).ToLower().TrimStart('.');
// Get the first 16 bytes for matching
byte[] magic = new byte[16];
try
{
int read = stream.Read(magic, 0, 16);
stream.Seek(0, SeekOrigin.Begin);
}
catch (Exception ex)
{
if (Debug) Console.Error.WriteLine(ex);
return;
}
// Get the file type
WrapperType ft = WrapperFactory.GetFileType(magic, extension);
var wrapper = WrapperFactory.CreateWrapper(ft, stream);
// Create the output directory
Directory.CreateDirectory(OutputPath);
// Print the preamble
Console.WriteLine($"Attempting to extract from '{wrapper?.Description() ?? "UNKNOWN"}'");
Console.WriteLine();
switch (wrapper)
{
// 7-zip
case SevenZip sz:
sz.Extract(OutputPath, Debug);
break;
// BFPK archive
case BFPK bfpk:
bfpk.Extract(OutputPath, Debug);
break;
// BSP
case BSP bsp:
bsp.Extract(OutputPath, Debug);
break;
// bzip2
case BZip2 bzip2:
bzip2.Extract(OutputPath, Debug);
break;
// CFB
case CFB cfb:
cfb.Extract(OutputPath, Debug);
break;
// GCF
case GCF gcf:
gcf.Extract(OutputPath, Debug);
break;
// gzip
case GZip gzip:
gzip.Extract(OutputPath, Debug);
break;
// InstallShield Archive V3 (Z)
case InstallShieldArchiveV3 isv3:
isv3.Extract(OutputPath, Debug);
break;
// IS-CAB archive
case InstallShieldCabinet iscab:
iscab.Extract(OutputPath, Debug);
break;
// LZ-compressed file, KWAJ variant
case LZKWAJ kwaj:
kwaj.Extract(OutputPath, Debug);
break;
// LZ-compressed file, QBasic variant
case LZQBasic qbasic:
qbasic.Extract(OutputPath, Debug);
break;
// LZ-compressed file, SZDD variant
case LZSZDD szdd:
szdd.Extract(OutputPath, Debug);
break;
// Microsoft Cabinet archive
case MicrosoftCabinet mscab:
mscab.Extract(OutputPath, Debug);
break;
// MoPaQ (MPQ) archive
case MoPaQ mpq:
mpq.Extract(OutputPath, Debug);
break;
// New Executable
case NewExecutable nex:
nex.Extract(OutputPath, Debug);
break;
// PAK
case PAK pak:
pak.Extract(OutputPath, Debug);
break;
// PFF
case PFF pff:
pff.Extract(OutputPath, Debug);
break;
// PKZIP
case PKZIP pkzip:
pkzip.Extract(OutputPath, Debug);
break;
// Portable Executable
case PortableExecutable pex:
pex.Extract(OutputPath, Debug);
break;
// Quantum
case Quantum quantum:
quantum.Extract(OutputPath, Debug);
break;
// RAR
case RAR rar:
rar.Extract(OutputPath, Debug);
break;
// SGA
case SGA sga:
sga.Extract(OutputPath, Debug);
break;
// Tape Archive
case TapeArchive tar:
tar.Extract(OutputPath, Debug);
break;
// VBSP
case VBSP vbsp:
vbsp.Extract(OutputPath, Debug);
break;
// VPK
case VPK vpk:
vpk.Extract(OutputPath, Debug);
break;
// WAD3
case WAD3 wad:
wad.Extract(OutputPath, Debug);
break;
// xz
case XZ xz:
xz.Extract(OutputPath, Debug);
break;
// XZP
case XZP xzp:
xzp.Extract(OutputPath, Debug);
break;
// Everything else
default:
Console.WriteLine("Not a supported extractable file format, skipping...");
Console.WriteLine();
break;
}
}
/// <summary>
/// Validate the extraction path
/// </summary>
private bool ValidateExtractionPath()
{
// Null or empty output path
if (string.IsNullOrEmpty(OutputPath))
{
Console.WriteLine("Output directory required for extraction!");
Console.WriteLine();
return false;
}
// Malformed output path or invalid location
try
{
OutputPath = Path.GetFullPath(OutputPath);
Directory.CreateDirectory(OutputPath);
}
catch
{
Console.WriteLine("Output directory could not be created!");
Console.WriteLine();
return false;
}
return true;
}
}
}

View File

@@ -1,129 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
namespace ExtractionTool
{
/// <summary>
/// Set of options for the test executable
/// </summary>
internal sealed class Options
{
#region Properties
/// <summary>
/// Enable debug output for relevant operations
/// </summary>
public bool Debug { get; private set; } = false;
/// <summary>
/// Set of input paths to use for operations
/// </summary>
public List<string> InputPaths { get; private set; } = [];
/// <summary>
/// Output path for archive extraction
/// </summary>
public string OutputPath { get; private set; } = string.Empty;
#endregion
/// <summary>
/// Parse commandline arguments into an Options object
/// </summary>
public static Options? ParseOptions(string[] args)
{
// If we have invalid arguments
if (args == null || args.Length == 0)
return null;
// Create an Options object
var options = new Options();
// Parse the options and paths
for (int index = 0; index < args.Length; index++)
{
string arg = args[index];
switch (arg)
{
case "-?":
case "-h":
case "--help":
return null;
case "-d":
case "--debug":
options.Debug = true;
break;
case "-o":
case "--outdir":
options.OutputPath = index + 1 < args.Length ? args[++index] : string.Empty;
break;
default:
options.InputPaths.Add(arg);
break;
}
}
// Validate we have any input paths to work on
if (options.InputPaths.Count == 0)
{
Console.WriteLine("At least one path is required!");
return null;
}
// Validate the output path
bool validPath = ValidateExtractionPath(options);
if (!validPath)
return null;
return options;
}
/// <summary>
/// Display help text
/// </summary>
public static void DisplayHelp()
{
Console.WriteLine("Extraction Tool");
Console.WriteLine();
Console.WriteLine("ExtractionTool.exe <options> file|directory ...");
Console.WriteLine();
Console.WriteLine("Options:");
Console.WriteLine("-?, -h, --help Display this help text and quit");
Console.WriteLine("-d, --debug Enable debug mode");
Console.WriteLine("-o, --outdir [PATH] Set output path for extraction (required)");
}
/// <summary>
/// Validate the extraction path
/// </summary>
private static bool ValidateExtractionPath(Options options)
{
// Null or empty output path
if (string.IsNullOrEmpty(options.OutputPath))
{
Console.WriteLine("Output directory required for extraction!");
Console.WriteLine();
return false;
}
// Malformed output path or invalid location
try
{
options.OutputPath = Path.GetFullPath(options.OutputPath);
Directory.CreateDirectory(options.OutputPath);
}
catch
{
Console.WriteLine("Output directory could not be created!");
Console.WriteLine();
return false;
}
return true;
}
}
}

View File

@@ -1,249 +1,79 @@
using System;
using System.IO;
using SabreTools.IO.Extensions;
using SabreTools.Serialization.Wrappers;
using System.Collections.Generic;
using ExtractionTool.Features;
using SabreTools.CommandLine;
using SabreTools.CommandLine.Features;
namespace ExtractionTool
{
class Program
public static class Program
{
static void Main(string[] args)
public static void Main(string[] args)
{
#if NET462_OR_GREATER || NETCOREAPP
// Register the codepages
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
#endif
// Get the options from the arguments
var options = Options.ParseOptions(args);
// Create the command set
var mainFeature = new MainFeature();
var commandSet = CreateCommands(mainFeature);
// If we have an invalid state
if (options == null)
// If we have no args, show the help and quit
if (args == null || args.Length == 0)
{
Options.DisplayHelp();
commandSet.OutputAllHelp();
return;
}
// Loop through the input paths
foreach (string inputPath in options.InputPaths)
// Cache the first argument and starting index
string featureName = args[0];
// Try processing the standalone arguments
var topLevel = commandSet.GetTopLevel(featureName);
switch (topLevel)
{
ExtractPath(inputPath, options.OutputPath, options.Debug);
}
}
// Standalone Options
case Help help: help.ProcessArgs(args, 0, commandSet); return;
/// <summary>
/// Wrapper to extract data for a single path
/// </summary>
/// <param name="path">File or directory path</param>
/// <param name="outputDirectory">Output directory path</param>
/// <param name="includeDebug">Enable including debug information</param>
private static void ExtractPath(string path, string outputDirectory, bool includeDebug)
{
// Normalize by getting the full path
path = Path.GetFullPath(path);
Console.WriteLine($"Checking possible path: {path}");
// Check if the file or directory exists
if (File.Exists(path))
{
ExtractFile(path, outputDirectory, includeDebug);
}
else if (Directory.Exists(path))
{
foreach (string file in IOExtensions.SafeEnumerateFiles(path, "*", SearchOption.AllDirectories))
{
ExtractFile(file, outputDirectory, includeDebug);
}
}
else
{
Console.WriteLine($"{path} does not exist, skipping...");
}
}
/// <summary>
/// Print information for a single file, if possible
/// </summary>
private static void ExtractFile(string file, string outputDirectory, bool includeDebug)
{
Console.WriteLine($"Attempting to extract all files from {file}");
using Stream stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
// Get the extension for certain checks
string extension = Path.GetExtension(file).ToLower().TrimStart('.');
// Get the first 16 bytes for matching
byte[] magic = new byte[16];
try
{
int read = stream.Read(magic, 0, 16);
stream.Seek(0, SeekOrigin.Begin);
}
catch (Exception ex)
{
if (includeDebug) Console.Error.WriteLine(ex);
return;
}
// Get the file type
WrapperType ft = WrapperFactory.GetFileType(magic, extension);
var wrapper = WrapperFactory.CreateWrapper(ft, stream);
// Create the output directory
Directory.CreateDirectory(outputDirectory);
// Print the preamble
Console.WriteLine($"Attempting to extract from '{wrapper?.Description() ?? "UNKNOWN"}'");
Console.WriteLine();
switch (wrapper)
{
// 7-zip
case SevenZip sz:
sz.Extract(outputDirectory, includeDebug);
break;
// BFPK archive
case BFPK bfpk:
bfpk.Extract(outputDirectory, includeDebug);
break;
// BSP
case BSP bsp:
bsp.Extract(outputDirectory, includeDebug);
break;
// bzip2
case BZip2 bzip2:
bzip2.Extract(outputDirectory, includeDebug);
break;
// CFB
case CFB cfb:
cfb.Extract(outputDirectory, includeDebug);
break;
// GCF
case GCF gcf:
gcf.Extract(outputDirectory, includeDebug);
break;
// gzip
case GZip gzip:
gzip.Extract(outputDirectory, includeDebug);
break;
// InstallShield Archive V3 (Z)
case InstallShieldArchiveV3 isv3:
isv3.Extract(outputDirectory, includeDebug);
break;
// IS-CAB archive
case InstallShieldCabinet iscab:
iscab.Extract(outputDirectory, includeDebug);
break;
// LZ-compressed file, KWAJ variant
case LZKWAJ kwaj:
kwaj.Extract(outputDirectory, includeDebug);
break;
// LZ-compressed file, QBasic variant
case LZQBasic qbasic:
qbasic.Extract(outputDirectory, includeDebug);
break;
// LZ-compressed file, SZDD variant
case LZSZDD szdd:
szdd.Extract(outputDirectory, includeDebug);
break;
// Microsoft Cabinet archive
case MicrosoftCabinet mscab:
mscab.Extract(outputDirectory, includeDebug);
break;
// MoPaQ (MPQ) archive
case MoPaQ mpq:
mpq.Extract(outputDirectory, includeDebug);
break;
// New Executable
case NewExecutable nex:
nex.Extract(outputDirectory, includeDebug);
break;
// PAK
case PAK pak:
pak.Extract(outputDirectory, includeDebug);
break;
// PFF
case PFF pff:
pff.Extract(outputDirectory, includeDebug);
break;
// PKZIP
case PKZIP pkzip:
pkzip.Extract(outputDirectory, includeDebug);
break;
// Portable Executable
case PortableExecutable pex:
pex.Extract(outputDirectory, includeDebug);
break;
// Quantum
case Quantum quantum:
quantum.Extract(outputDirectory, includeDebug);
break;
// RAR
case RAR rar:
rar.Extract(outputDirectory, includeDebug);
break;
// SGA
case SGA sga:
sga.Extract(outputDirectory, includeDebug);
break;
// Tape Archive
case TapeArchive tar:
tar.Extract(outputDirectory, includeDebug);
break;
// VBSP
case VBSP vbsp:
vbsp.Extract(outputDirectory, includeDebug);
break;
// VPK
case VPK vpk:
vpk.Extract(outputDirectory, includeDebug);
break;
// WAD3
case WAD3 wad:
wad.Extract(outputDirectory, includeDebug);
break;
// xz
case XZ xz:
xz.Extract(outputDirectory, includeDebug);
break;
// XZP
case XZP xzp:
xzp.Extract(outputDirectory, includeDebug);
break;
// Everything else
// Default Behavior
default:
Console.WriteLine("Not a supported extractable file format, skipping...");
Console.WriteLine();
if (!mainFeature.ProcessArgs(args, 0))
{
commandSet.OutputAllHelp();
return;
}
else if (!mainFeature.VerifyInputs())
{
Console.Error.WriteLine("At least one input is required");
commandSet.OutputAllHelp();
return;
}
mainFeature.Execute();
break;
}
}
/// <summary>
/// Create the command set for the program
/// </summary>
private static CommandSet CreateCommands(MainFeature mainFeature)
{
List<string> header = [
"Extraction Tool",
string.Empty,
"ExtractionTool <options> file|directory ...",
string.Empty,
];
var commandSet = new CommandSet(header);
commandSet.Add(new Help(["-?", "-h", "--help"]));
commandSet.Add(mainFeature.DebugInput);
commandSet.Add(mainFeature.OutputPathInput);
return commandSet;
}
}
}

View File

@@ -0,0 +1,279 @@
using System;
using System.IO;
using System.Text;
using SabreTools.CommandLine;
using SabreTools.CommandLine.Inputs;
using SabreTools.Hashing;
using SabreTools.IO.Extensions;
using SabreTools.Serialization;
using SabreTools.Serialization.Wrappers;
namespace InfoPrint.Features
{
internal sealed class MainFeature : Feature
{
#region Feature Definition
public const string DisplayName = "main";
/// <remarks>Flags are unused</remarks>
private static readonly string[] _flags = [];
/// <remarks>Description is unused</remarks>
private const string _description = "";
#endregion
#region Inputs
private const string _debugName = "debug";
internal readonly FlagInput DebugInput = new(_debugName, ["-d", "--debug"], "Enable debug mode");
private const string _fileOnlyName = "file-only";
internal readonly FlagInput FileOnlyInput = new(_fileOnlyName, ["-f", "--file"], "Print to file only");
private const string _hashName = "hash";
internal readonly FlagInput HashInput = new(_hashName, ["-c", "--hash"], "Output file hashes");
#if NETCOREAPP
private const string _jsonName = "json";
internal readonly FlagInput JsonInput = new(_jsonName, ["-j", "--json"], "Print info as JSON");
#endif
#endregion
/// <summary>
/// Enable debug output for relevant operations
/// </summary>
public bool Debug { get; private set; }
/// <summary>
/// Output information to file only, skip printing to console
/// </summary>
public bool FileOnly { get; private set; }
/// <summary>
/// Print external file hashes
/// </summary>
public bool Hash { get; private set; }
#if NETCOREAPP
/// <summary>
/// Enable JSON output
/// </summary>
public bool Json { get; private set; }
#endif
public MainFeature()
: base(DisplayName, _flags, _description)
{
RequiresInputs = true;
Add(DebugInput);
Add(HashInput);
Add(FileOnlyInput);
#if NETCOREAPP
Add(JsonInput);
#endif
}
/// <inheritdoc/>
public override bool Execute()
{
// Get the options from the arguments
Debug = GetBoolean(_debugName);
Hash = GetBoolean(_hashName);
FileOnly = GetBoolean(_fileOnlyName);
#if NETCOREAPP
Json = GetBoolean(_jsonName);
#endif
// Loop through the input paths
for (int i = 0; i < Inputs.Count; i++)
{
string arg = Inputs[i];
PrintPathInfo(arg);
}
return true;
}
/// <inheritdoc/>
public override bool VerifyInputs() => Inputs.Count > 0;
/// <summary>
/// Wrapper to print information for a single path
/// </summary>
/// <param name="path">File or directory path</param>
private void PrintPathInfo(string path)
{
Console.WriteLine($"Checking possible path: {path}");
// Check if the file or directory exists
if (File.Exists(path))
{
PrintFileInfo(path);
}
else if (Directory.Exists(path))
{
foreach (string file in path.SafeEnumerateFiles("*", SearchOption.AllDirectories))
{
PrintFileInfo(file);
}
}
else
{
Console.WriteLine($"{path} does not exist, skipping...");
}
}
/// <summary>
/// Print information for a single file, if possible
/// </summary>
/// <param name="file">File path</param>
private void PrintFileInfo(string file)
{
Console.WriteLine($"Attempting to print info for {file}");
// Get the base info output name
string filenameBase = $"info-{DateTime.Now:yyyy-MM-dd_HHmmss.ffff}";
// If we have the hash flag
if (Hash)
{
var hashBuilder = PrintHashInfo(file);
if (hashBuilder != null)
{
// Create the output data
string hashData = hashBuilder.ToString();
// Write the output data
using var hsw = new StreamWriter(File.OpenWrite($"{filenameBase}.hashes"));
hsw.WriteLine(hashData);
hsw.Flush();
}
}
try
{
using Stream stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
// Read the first 8 bytes
byte[]? magic = stream.ReadBytes(8);
stream.Seek(0, SeekOrigin.Begin);
// Get the file type
string extension = Path.GetExtension(file).TrimStart('.');
WrapperType ft = WrapperFactory.GetFileType(magic ?? [], extension);
// Print out the file format
Console.WriteLine($"File format found: {ft}");
// Setup the wrapper to print
var wrapper = WrapperFactory.CreateWrapper(ft, stream);
// If we don't have a wrapper
if (wrapper == null)
{
Console.WriteLine($"Either {ft} is not supported or something went wrong during parsing!");
Console.WriteLine();
return;
}
#if NETCOREAPP
// If we have the JSON flag
if (Json)
{
// Create the output data
string serializedData = wrapper.ExportJSON();
// Write the output data
using var jsw = new StreamWriter(File.OpenWrite($"{filenameBase}.json"));
jsw.WriteLine(serializedData);
jsw.Flush();
}
#endif
// Create the output data
var builder = wrapper.ExportStringBuilder();
if (builder == null)
{
Console.WriteLine("No item information could be generated");
return;
}
// Only print to console if enabled
if (FileOnly)
Console.WriteLine(builder);
using var sw = new StreamWriter(File.OpenWrite($"{filenameBase}.txt"));
sw.WriteLine(file);
sw.WriteLine();
sw.WriteLine(builder.ToString());
sw.Flush();
}
catch (Exception ex)
{
Console.WriteLine(Debug ? ex : "[Exception opening file, please try again]");
Console.WriteLine();
}
}
/// <summary>
/// Print hash information for a single file, if possible
/// </summary>
/// <param name="file">File path</param>
/// <returns>StringBuilder representing the hash information, if possible</returns>
private StringBuilder? PrintHashInfo(string file)
{
// Ignore missing files
if (!File.Exists(file))
return null;
Console.WriteLine($"Attempting to hash {file}, this may take a while...");
try
{
// Get all file hashes for flexibility
var hashes = HashTool.GetFileHashes(file);
if (hashes == null)
{
if (Debug) Console.WriteLine($"Hashes for {file} could not be retrieved");
return null;
}
// Output subset of available hashes
var builder = new StringBuilder();
if (hashes.TryGetValue(HashType.CRC16, out string? crc16) && crc16 != null)
builder.AppendLine($"CRC-16 checksum: {crc16}");
if (hashes.TryGetValue(HashType.CRC32, out string? crc32) && crc32 != null)
builder.AppendLine($"CRC-32 checksum: {crc32}");
if (hashes.TryGetValue(HashType.MD2, out string? md2) && md2 != null)
builder.AppendLine($"MD2 hash: {md2}");
if (hashes.TryGetValue(HashType.MD4, out string? md4) && md4 != null)
builder.AppendLine($"MD4 hash: {md4}");
if (hashes.TryGetValue(HashType.MD5, out string? md5) && md5 != null)
builder.AppendLine($"MD5 hash: {md5}");
if (hashes.TryGetValue(HashType.RIPEMD128, out string? ripemd128) && ripemd128 != null)
builder.AppendLine($"RIPEMD-128 hash: {ripemd128}");
if (hashes.TryGetValue(HashType.RIPEMD160, out string? ripemd160) && ripemd160 != null)
builder.AppendLine($"RIPEMD-160 hash: {ripemd160}");
if (hashes.TryGetValue(HashType.SHA1, out string? sha1) && sha1 != null)
builder.AppendLine($"SHA-1 hash: {sha1}");
if (hashes.TryGetValue(HashType.SHA256, out string? sha256) && sha256 != null)
builder.AppendLine($"SHA-256 hash: {sha256}");
if (hashes.TryGetValue(HashType.SHA384, out string? sha384) && sha384 != null)
builder.AppendLine($"SHA-384 hash: {sha384}");
if (hashes.TryGetValue(HashType.SHA512, out string? sha512) && sha512 != null)
builder.AppendLine($"SHA-512 hash: {sha512}");
return builder;
}
catch (Exception ex)
{
Console.WriteLine(Debug ? ex : "[Exception opening file, please try again]");
return null;
}
}
}
}

View File

@@ -10,7 +10,7 @@
<Nullable>enable</Nullable>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>1.9.0</Version>
<Version>2.0.2</Version>
</PropertyGroup>
<!-- Support All Frameworks -->
@@ -32,8 +32,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.7.1" />
<PackageReference Include="SabreTools.Hashing" Version="1.5.0" />
<PackageReference Include="SabreTools.CommandLine" Version="[1.3.2]" />
<PackageReference Include="SabreTools.Hashing" Version="[1.5.1]" />
<PackageReference Include="SabreTools.IO" Version="[1.7.6]" />
</ItemGroup>
</Project>

View File

@@ -1,141 +0,0 @@
using System;
using System.Collections.Generic;
namespace InfoPrint
{
/// <summary>
/// Set of options for the test executable
/// </summary>
internal sealed class Options
{
#region Properties
/// <summary>
/// Enable debug output for relevant operations
/// </summary>
public bool Debug { get; private set; } = false;
/// <summary>
/// Output information to file only, skip printing to console
/// </summary>
public bool FileOnly { get; private set; } = false;
/// <summary>
/// Print external file hashes
/// </summary>
public bool Hash { get; private set; } = false;
/// <summary>
/// Set of input paths to use for operations
/// </summary>
public List<string> InputPaths { get; private set; } = [];
#if NETCOREAPP
/// <summary>
/// Enable JSON output
/// </summary>
public bool Json { get; private set; } = false;
#endif
#endregion
/// <summary>
/// Parse commandline arguments into an Options object
/// </summary>
public static Options? ParseOptions(string[] args)
{
// If we have invalid arguments
if (args == null || args.Length == 0)
return null;
// Create an Options object
var options = new Options();
// Parse the features
int index = 0;
for (; index < args.Length; index++)
{
string arg = args[index];
bool featureFound = false;
switch (arg)
{
case "-?":
case "-h":
case "--help":
return null;
default:
break;
}
// If the flag wasn't a feature
if (!featureFound)
break;
}
// Parse the options and paths
for (; index < args.Length; index++)
{
string arg = args[index];
switch (arg)
{
case "-d":
case "--debug":
options.Debug = true;
break;
case "-c":
case "--hash":
options.Hash = true;
break;
case "-f":
case "--file":
options.FileOnly = true;
break;
case "-j":
case "--json":
#if NETCOREAPP
options.Json = true;
#else
Console.WriteLine("JSON output not available in .NET Framework");
#endif
break;
default:
options.InputPaths.Add(arg);
break;
}
}
// Validate we have any input paths to work on
if (options.InputPaths.Count == 0)
{
Console.WriteLine("At least one path is required!");
return null;
}
return options;
}
/// <summary>
/// Display help text
/// </summary>
public static void DisplayHelp()
{
Console.WriteLine("Information Printing Program");
Console.WriteLine();
Console.WriteLine("InfoPrint <options> file|directory ...");
Console.WriteLine();
Console.WriteLine("Options:");
Console.WriteLine("-?, -h, --help Display this help text and quit");
Console.WriteLine("-d, --debug Enable debug mode");
Console.WriteLine("-c, --hash Output file hashes");
Console.WriteLine("-f, --file Print to file only");
#if NETCOREAPP
Console.WriteLine("-j, --json Print info as JSON");
#endif
}
}
}

View File

@@ -1,10 +1,8 @@
using System;
using System.IO;
using System.Text;
using SabreTools.Hashing;
using SabreTools.IO.Extensions;
using SabreTools.Serialization;
using SabreTools.Serialization.Wrappers;
using System.Collections.Generic;
using InfoPrint.Features;
using SabreTools.CommandLine;
using SabreTools.CommandLine.Features;
namespace InfoPrint
{
@@ -12,197 +10,69 @@ namespace InfoPrint
{
public static void Main(string[] args)
{
// Get the options from the arguments
var options = Options.ParseOptions(args);
// Create the command set
var mainFeature = new MainFeature();
var commandSet = CreateCommands(mainFeature);
// If we have an invalid state
if (options == null)
// If we have no args, show the help and quit
if (args == null || args.Length == 0)
{
Options.DisplayHelp();
commandSet.OutputAllHelp();
return;
}
// Loop through the input paths
foreach (string inputPath in options.InputPaths)
// Cache the first argument and starting index
string featureName = args[0];
// Try processing the standalone arguments
var topLevel = commandSet.GetTopLevel(featureName);
switch (topLevel)
{
PrintPathInfo(inputPath, options);
// Standalone Options
case Help help: help.ProcessArgs(args, 0, commandSet); return;
// Default Behavior
default:
if (!mainFeature.ProcessArgs(args, 0))
{
commandSet.OutputAllHelp();
return;
}
else if (!mainFeature.VerifyInputs())
{
Console.Error.WriteLine("At least one input is required");
commandSet.OutputAllHelp();
return;
}
mainFeature.Execute();
break;
}
}
/// <summary>
/// Wrapper to print information for a single path
/// Create the command set for the program
/// </summary>
/// <param name="path">File or directory path</param>
/// <param name="options">User-defined options</param>
private static void PrintPathInfo(string path, Options options)
private static CommandSet CreateCommands(MainFeature mainFeature)
{
Console.WriteLine($"Checking possible path: {path}");
List<string> header = [
"Information Printing Program",
string.Empty,
"InfoPrint <options> file|directory ...",
string.Empty,
];
// Check if the file or directory exists
if (File.Exists(path))
{
PrintFileInfo(path, options);
}
else if (Directory.Exists(path))
{
foreach (string file in IOExtensions.SafeEnumerateFiles(path, "*", SearchOption.AllDirectories))
{
PrintFileInfo(file, options);
}
}
else
{
Console.WriteLine($"{path} does not exist, skipping...");
}
}
/// <summary>
/// Print information for a single file, if possible
/// </summary>
/// <param name="file">File path</param>
/// <param name="options">User-defined options</param>
private static void PrintFileInfo(string file, Options options)
{
Console.WriteLine($"Attempting to print info for {file}");
// Get the base info output name
string filenameBase = $"info-{DateTime.Now:yyyy-MM-dd_HHmmss.ffff}";
// If we have the hash flag
if (options.Hash)
{
var hashBuilder = PrintHashInfo(file, options.Debug);
if (hashBuilder != null)
{
// Create the output data
string hashData = hashBuilder.ToString();
// Write the output data
using var hsw = new StreamWriter(File.OpenWrite($"{filenameBase}.hashes"));
hsw.WriteLine(hashData);
hsw.Flush();
}
}
try
{
using Stream stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
// Read the first 8 bytes
byte[]? magic = stream.ReadBytes(8);
stream.Seek(0, SeekOrigin.Begin);
// Get the file type
string extension = Path.GetExtension(file).TrimStart('.');
WrapperType ft = WrapperFactory.GetFileType(magic ?? [], extension);
// Print out the file format
Console.WriteLine($"File format found: {ft}");
// Setup the wrapper to print
var wrapper = WrapperFactory.CreateWrapper(ft, stream);
// If we don't have a wrapper
if (wrapper == null)
{
Console.WriteLine($"Either {ft} is not supported or something went wrong during parsing!");
Console.WriteLine();
return;
}
var commandSet = new CommandSet(header);
commandSet.Add(new Help(["-?", "-h", "--help"]));
commandSet.Add(mainFeature.DebugInput);
commandSet.Add(mainFeature.HashInput);
commandSet.Add(mainFeature.FileOnlyInput);
#if NETCOREAPP
// If we have the JSON flag
if (options.Json)
{
// Create the output data
string serializedData = wrapper.ExportJSON();
// Write the output data
using var jsw = new StreamWriter(File.OpenWrite($"{filenameBase}.json"));
jsw.WriteLine(serializedData);
jsw.Flush();
}
commandSet.Add(mainFeature.JsonInput);
#endif
// Create the output data
var builder = wrapper.ExportStringBuilder();
if (builder == null)
{
Console.WriteLine("No item information could be generated");
return;
}
// Only print to console if enabled
if (!options.FileOnly)
Console.WriteLine(builder);
using var sw = new StreamWriter(File.OpenWrite($"{filenameBase}.txt"));
sw.WriteLine(builder.ToString());
sw.Flush();
}
catch (Exception ex)
{
Console.WriteLine(options.Debug ? ex : "[Exception opening file, please try again]");
Console.WriteLine();
}
}
/// <summary>
/// Print hash information for a single file, if possible
/// </summary>
/// <param name="file">File path</param>
/// <param name="debug">Enable debug output</param>
/// <returns>StringBuilder representing the hash information, if possible</returns>
private static StringBuilder? PrintHashInfo(string file, bool debug)
{
// Ignore missing files
if (!File.Exists(file))
return null;
Console.WriteLine($"Attempting to hash {file}, this may take a while...");
try
{
// Get all file hashes for flexibility
var hashes = HashTool.GetFileHashes(file);
if (hashes == null)
{
if (debug) Console.WriteLine($"Hashes for {file} could not be retrieved");
return null;
}
// Output subset of available hashes
var builder = new StringBuilder();
if (hashes.TryGetValue(HashType.CRC16, out string? crc16) && crc16 != null)
builder.AppendLine($"CRC-16 checksum: {crc16}");
if (hashes.TryGetValue(HashType.CRC32, out string? crc32) && crc32 != null)
builder.AppendLine($"CRC-32 checksum: {crc32}");
if (hashes.TryGetValue(HashType.MD2, out string? md2) && md2 != null)
builder.AppendLine($"MD2 hash: {md2}");
if (hashes.TryGetValue(HashType.MD4, out string? md4) && md4 != null)
builder.AppendLine($"MD4 hash: {md4}");
if (hashes.TryGetValue(HashType.MD5, out string? md5) && md5 != null)
builder.AppendLine($"MD5 hash: {md5}");
if (hashes.TryGetValue(HashType.RIPEMD128, out string? ripemd128) && ripemd128 != null)
builder.AppendLine($"RIPEMD-128 hash: {ripemd128}");
if (hashes.TryGetValue(HashType.RIPEMD160, out string? ripemd160) && ripemd160 != null)
builder.AppendLine($"RIPEMD-160 hash: {ripemd160}");
if (hashes.TryGetValue(HashType.SHA1, out string? sha1) && sha1 != null)
builder.AppendLine($"SHA-1 hash: {sha1}");
if (hashes.TryGetValue(HashType.SHA256, out string? sha256) && sha256 != null)
builder.AppendLine($"SHA-256 hash: {sha256}");
if (hashes.TryGetValue(HashType.SHA384, out string? sha384) && sha384 != null)
builder.AppendLine($"SHA-384 hash: {sha384}");
if (hashes.TryGetValue(HashType.SHA512, out string? sha512) && sha512 != null)
builder.AppendLine($"SHA-512 hash: {sha512}");
return builder;
}
catch (Exception ex)
{
Console.WriteLine(debug ? ex : "[Exception opening file, please try again]");
return null;
}
return commandSet;
}
}
}

7
LICENSE Normal file
View File

@@ -0,0 +1,7 @@
Copyright (c) 2018-2025 Matt Nadareski
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -8,8 +8,8 @@ Find the link to the Nuget package [here](https://www.nuget.org/packages/SabreTo
The following non-project libraries (or ports thereof) are used for file handling:
- [SharpCompress](https://github.com/adamhathcock/sharpcompress) - Common archive format extraction
- [StormLibSharp](https://github.com/robpaveza/stormlibsharp) - MoPaQ extraction [Unused in .NET Framework 2.0/3.5/4.0, non-Windows, and non-x86 builds due to Windows-specific libraries]
- [GrindCore.SharpCompress](https://github.com/Nanook/GrindCore.SharpCompress) - Common archive format extraction
- [StormLibSharp](https://github.com/robpaveza/stormlibsharp) - MoPaQ extraction [Unused in .NET Framework 2.0/3.5/4.0 and non-Windows builds due to Windows-specific libraries]
The following projects have influenced this library:
@@ -26,13 +26,14 @@ For the latest WIP build here: [Rolling Release](https://github.com/SabreTools/S
**InfoPrint** is a reference implementation for the deserialization and printing features of the library, packaged as a standalone executable for all supported platforms. It will attempt to detect and display information about many supported file types, optionally both hashing the file and outputting the information to a JSON file (.NET Core 3.1 and above only).
```
```text
InfoPrint <options> file|directory ...
Options:
-?, -h, --help Display this help text and quit
-?, -h, --help Display this help text
-d, --debug Enable debug mode
-c, --hash Output file hashes
-f, --file Print to file only
-j, --json Print info as JSON
```
@@ -40,11 +41,11 @@ Options:
**ExtractionTool** is a reference implementation for the extraction features of the library, packaged as a standalone executable for all supported platforms. It will attempt to detect and extract many supported file types. See the table below for supported extraction functionality.
```
ExtractionTool.exe <options> file|directory ...
```text
ExtractionTool <options> file|directory ...
Options:
-?, -h, --help Display this help text and quit
-?, -h, --help Display this help text
-d, --debug Enable debug mode
-o, --outdir [PATH] Set output path for extraction (required)
```
@@ -65,7 +66,7 @@ Options:
| InstallShield CAB | |
| Microsoft cabinet file | Does not support LZX or Quantum compression |
| Microsoft LZ-compressed files | KWAJ, QBasic, and SZDD variants |
| MoPaQ game data archive (MPQ) | Currently not working. Windows only. .NET Framework 4.5.2 and above |
| MoPaQ game data archive (MPQ) | Windows only. .NET Framework 4.5.2 and above |
| New Exectuable | Embedded archives and executables in the overlay and Wise installer |
| NovaLogic Game Archive Format (PFF) | |
| PKZIP and derived files (ZIP, etc.) | .NET Framework 4.6.2 and greater |
@@ -84,23 +85,24 @@ Below is a table representing the various conversion interfaces that are impleme
| Interface Name | Source Type | Destination Type |
| --- | --- | --- |
| `IByteDeserializer` | `byte[]?` | Model |
| `IByteSerializer` | Model | `byte[]?` |
| `IFileDeserializer` | `string?` path | Model |
| `IFileSerializer` | Model | `string?` path |
| `IModelSerializer` | Model | Model |
| `IStreamDeserializer` | `Stream?` | Model |
| `IStreamSerializer` | Model | `Stream?` |
| `IStringDeserializer` | `string?` representation | Model |
| `IStringSerializer` | Model | `string?` representation |
| `SabreTools.Serialization.Interfaces.IByteReader<TModel>` | `byte[]?` | `TModel` |
| `SabreTools.Serialization.Interfaces.IByteWriter<TModel>` | `TModel` | `byte[]?` |
| `SabreTools.Serialization.Interfaces.ICrossModel<TSource, TDest>` | `TSource`/`TDest` | `TDest`/`TSource` |
| `SabreTools.Serialization.Interfaces.IFileReader<TModel>` | `string?` path | `TModel` |
| `SabreTools.Serialization.Interfaces.IFileWriter<TModel>` | `TModel` | `string?` path |
| `SabreTools.Serialization.Interfaces.IStreamReader<TModel>` | `Stream?` | `TModel` |
| `SabreTools.Serialization.Interfaces.IStreamWriter<TModel>` | `TModel` | `Stream?` |
| `SabreTools.Serialization.Interfaces.IStringReader<TModel>` | `string?` representation | `TModel` |
| `SabreTools.Serialization.Interfaces.IStringWriter<TModel>` | `TModel` | `string?` representation |
Below is a table representing the various non-conversion interfaces that are implemented within this library.
| Interface Name | Purpose |
| --- | --- |
| `IExtractable` | Marks a wrapper as able to be extracted |
| `IPrinter` | Provides a formatted output for a model |
| `IWrapper` / `IWrapper<T>` | Wraps a model or set of models to provide additional functionality |
| `SabreTools.Data.Printers.IPrinter<TModel>` | Provides a formatted output for a `TModel` |
| `SabreTools.Serialization.Wrappers.IExtractable` | Marks a wrapper as able to be extracted |
| `SabreTools.Serialization.Wrappers.IWrapper` | Represents an item with a description and JSON serializable state, allowing for extensions |
| `SabreTools.Serialization.Wrappers.IWrapper<TModel>` | Wraps a model with source data, allowing for extensions |
## Namespaces
@@ -108,8 +110,13 @@ Below is a table of all namespaces within the library and what they represent
| Namespace | Description |
| --- | --- |
| `SabreTools.Data.Attributes` | Common attributes for data marking and manipulation |
| `SabreTools.Data.Extensions` | Extension methods related to models |
| `SabreTools.Data.Models` | Models representing different file and structure types |
| `SabreTools.Data.ObjectIdentifier` | Object Identifier (OID) parsing |
| `SabreTools.Data.Printers` | Export model information in a formatted manner |
| `SabreTools.Serialization.CrossModel` | Convert between models; mainly used for metadata files converting to and from a common, `Dictionary`-based model |
| `SabreTools.Serialization.Deserializers` | Convert from external sources to models |
| `SabreTools.Serialization.Printers` | Export model information in a formatted manner |
| `SabreTools.Serialization.Serializers` | Convert from models to external sources |
| `SabreTools.Serialization.Interfaces` | Interfaces used commonly throughout the library |
| `SabreTools.Serialization.Readers` | Convert from external sources to models |
| `SabreTools.Serialization.Wrappers` | Classes that wrap serialization and models to allow for including extension properties |
| `SabreTools.Serialization.Writers` | Convert from models to external sources |

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.ArchiveDotOrg();
var serializer = new ArchiveDotOrg();
// Build the data
Models.ArchiveDotOrg.Files files = Build();
Data.Models.ArchiveDotOrg.Files files = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(files);
SabreTools.Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(files);
Assert.NotNull(metadata);
// Serialize back to original model
Models.ArchiveDotOrg.Files? newFiles = serializer.Deserialize(metadata);
Data.Models.ArchiveDotOrg.Files? newFiles = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newFiles);
@@ -30,9 +31,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.ArchiveDotOrg.Files Build()
private static Data.Models.ArchiveDotOrg.Files Build()
{
var file = new Models.ArchiveDotOrg.File
var file = new Data.Models.ArchiveDotOrg.File
{
Name = "XXXXXX",
Source = "XXXXXX",
@@ -96,7 +97,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Width = "XXXXXX",
};
return new Models.ArchiveDotOrg.Files
return new Data.Models.ArchiveDotOrg.Files
{
File = [file]
};
@@ -105,7 +106,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a File
/// </summary>
private static void Validate(Models.ArchiveDotOrg.File? file)
private static void Validate(Data.Models.ArchiveDotOrg.File? file)
{
Assert.NotNull(file);
Assert.Equal("XXXXXX", file.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.AttractMode();
var serializer = new AttractMode();
// Build the data
Models.AttractMode.MetadataFile mf = Build();
Data.Models.AttractMode.MetadataFile mf = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.AttractMode.MetadataFile? newMf = serializer.Deserialize(metadata);
Data.Models.AttractMode.MetadataFile? newMf = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -31,11 +32,11 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.AttractMode.MetadataFile Build()
private static Data.Models.AttractMode.MetadataFile Build()
{
string[] header = ["header"];
var row = new Models.AttractMode.Row
var row = new Data.Models.AttractMode.Row
{
Name = "XXXXXX",
Title = "XXXXXX",
@@ -61,7 +62,7 @@ namespace SabreTools.Serialization.Test.CrossModel
FileIsAvailable = "XXXXXX",
};
return new Models.AttractMode.MetadataFile
return new Data.Models.AttractMode.MetadataFile
{
Header = header,
Row = [row],
@@ -81,7 +82,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void Validate(Models.AttractMode.Row? row)
private static void Validate(Data.Models.AttractMode.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripGameTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.ClrMamePro();
var serializer = new ClrMamePro();
// Build the data
Models.ClrMamePro.MetadataFile mf = Build(game: true);
Data.Models.ClrMamePro.MetadataFile mf = Build(game: true);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.ClrMamePro.MetadataFile? newMf = serializer.Deserialize(metadata, game: true);
Data.Models.ClrMamePro.MetadataFile? newMf = serializer.Deserialize(metadata, game: true);
// Validate the data
Assert.NotNull(newMf);
@@ -32,17 +33,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMachineTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.ClrMamePro();
var serializer = new ClrMamePro();
// Build the data
Models.ClrMamePro.MetadataFile mf = Build(game: false);
Data.Models.ClrMamePro.MetadataFile mf = Build(game: false);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.ClrMamePro.MetadataFile? newMf = serializer.Deserialize(metadata, game: false);
Data.Models.ClrMamePro.MetadataFile? newMf = serializer.Deserialize(metadata, game: false);
// Validate the data
Assert.NotNull(newMf);
@@ -55,9 +56,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.ClrMamePro.MetadataFile Build(bool game)
private static Data.Models.ClrMamePro.MetadataFile Build(bool game)
{
var cmp = new Models.ClrMamePro.ClrMamePro
var cmp = new Data.Models.ClrMamePro.ClrMamePro
{
Name = "XXXXXX",
Description = "XXXXXX",
@@ -76,7 +77,7 @@ namespace SabreTools.Serialization.Test.CrossModel
ForcePacking = "XXXXXX",
};
var release = new Models.ClrMamePro.Release
var release = new Data.Models.ClrMamePro.Release
{
Name = "XXXXXX",
Region = "XXXXXX",
@@ -85,19 +86,23 @@ namespace SabreTools.Serialization.Test.CrossModel
Default = "XXXXXX",
};
var biosset = new Models.ClrMamePro.BiosSet
var biosset = new Data.Models.ClrMamePro.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.ClrMamePro.Rom
var rom = new Data.Models.ClrMamePro.Rom
{
Name = "XXXXXX",
Size = "XXXXXX",
CRC = "XXXXXX",
MD2 = "XXXXXX",
MD4 = "XXXXXX",
MD5 = "XXXXXX",
RIPEMD128 = "XXXXXX",
RIPEMD160 = "XXXXXX",
SHA1 = "XXXXXX",
Merge = "XXXXXX",
Status = "XXXXXX",
@@ -117,7 +122,7 @@ namespace SabreTools.Serialization.Test.CrossModel
MIA = "XXXXXX",
};
var disk = new Models.ClrMamePro.Disk
var disk = new Data.Models.ClrMamePro.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -127,17 +132,17 @@ namespace SabreTools.Serialization.Test.CrossModel
Flags = "XXXXXX",
};
var sample = new Models.ClrMamePro.Sample
var sample = new Data.Models.ClrMamePro.Sample
{
Name = "XXXXXX",
};
var archive = new Models.ClrMamePro.Archive
var archive = new Data.Models.ClrMamePro.Archive
{
Name = "XXXXXX",
};
var media = new Models.ClrMamePro.Media
var media = new Data.Models.ClrMamePro.Media
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -146,7 +151,7 @@ namespace SabreTools.Serialization.Test.CrossModel
SpamSum = "XXXXXX",
};
var chip = new Models.ClrMamePro.Chip
var chip = new Data.Models.ClrMamePro.Chip
{
Type = "XXXXXX",
Name = "XXXXXX",
@@ -154,7 +159,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Clock = "XXXXXX",
};
var video = new Models.ClrMamePro.Video
var video = new Data.Models.ClrMamePro.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -165,12 +170,12 @@ namespace SabreTools.Serialization.Test.CrossModel
Freq = "XXXXXX",
};
var sound = new Models.ClrMamePro.Sound
var sound = new Data.Models.ClrMamePro.Sound
{
Channels = "XXXXXX",
};
var input = new Models.ClrMamePro.Input
var input = new Data.Models.ClrMamePro.Input
{
Players = "XXXXXX",
Control = "XXXXXX",
@@ -180,14 +185,14 @@ namespace SabreTools.Serialization.Test.CrossModel
Service = "XXXXXX",
};
var dipswitch = new Models.ClrMamePro.DipSwitch
var dipswitch = new Data.Models.ClrMamePro.DipSwitch
{
Name = "XXXXXX",
Entry = ["XXXXXX"],
Default = "XXXXXX",
};
var driver = new Models.ClrMamePro.Driver
var driver = new Data.Models.ClrMamePro.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -197,9 +202,9 @@ namespace SabreTools.Serialization.Test.CrossModel
};
// TODO: This omits Set, should that have a separate case?
Models.ClrMamePro.GameBase gameBase = game
? new Models.ClrMamePro.Game()
: new Models.ClrMamePro.Machine();
Data.Models.ClrMamePro.GameBase gameBase = game
? new Data.Models.ClrMamePro.Game()
: new Data.Models.ClrMamePro.Machine();
gameBase.Name = "XXXXXX";
gameBase.Description = "XXXXXX";
gameBase.Year = "XXXXXX";
@@ -222,7 +227,7 @@ namespace SabreTools.Serialization.Test.CrossModel
gameBase.DipSwitch = [dipswitch];
gameBase.Driver = driver;
return new Models.ClrMamePro.MetadataFile
return new Data.Models.ClrMamePro.MetadataFile
{
ClrMamePro = cmp,
Game = [gameBase],
@@ -232,7 +237,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ClrMamePro
/// </summary>
private static void Validate(Models.ClrMamePro.ClrMamePro? cmp)
private static void Validate(Data.Models.ClrMamePro.ClrMamePro? cmp)
{
Assert.NotNull(cmp);
Assert.Equal("XXXXXX", cmp.Name);
@@ -255,7 +260,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.ClrMamePro.GameBase? gb)
private static void Validate(Data.Models.ClrMamePro.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -316,7 +321,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Release
/// </summary>
private static void Validate(Models.ClrMamePro.Release? release)
private static void Validate(Data.Models.ClrMamePro.Release? release)
{
Assert.NotNull(release);
Assert.Equal("XXXXXX", release.Name);
@@ -329,7 +334,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.ClrMamePro.BiosSet? biosset)
private static void Validate(Data.Models.ClrMamePro.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -340,13 +345,17 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.ClrMamePro.Rom? rom)
private static void Validate(Data.Models.ClrMamePro.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
Assert.Equal("XXXXXX", rom.Size);
Assert.Equal("XXXXXX", rom.CRC);
Assert.Equal("XXXXXX", rom.MD2);
Assert.Equal("XXXXXX", rom.MD4);
Assert.Equal("XXXXXX", rom.MD5);
Assert.Equal("XXXXXX", rom.RIPEMD128);
Assert.Equal("XXXXXX", rom.RIPEMD160);
Assert.Equal("XXXXXX", rom.SHA1);
Assert.Equal("XXXXXX", rom.Merge);
Assert.Equal("XXXXXX", rom.Status);
@@ -369,7 +378,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.ClrMamePro.Disk? disk)
private static void Validate(Data.Models.ClrMamePro.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -383,7 +392,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.ClrMamePro.Sample? sample)
private static void Validate(Data.Models.ClrMamePro.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -392,7 +401,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Archive
/// </summary>
private static void Validate(Models.ClrMamePro.Archive? archive)
private static void Validate(Data.Models.ClrMamePro.Archive? archive)
{
Assert.NotNull(archive);
Assert.Equal("XXXXXX", archive.Name);
@@ -401,7 +410,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Media
/// </summary>
private static void Validate(Models.ClrMamePro.Media? media)
private static void Validate(Data.Models.ClrMamePro.Media? media)
{
Assert.NotNull(media);
Assert.Equal("XXXXXX", media.Name);
@@ -414,7 +423,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.ClrMamePro.Chip? chip)
private static void Validate(Data.Models.ClrMamePro.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Type);
@@ -426,7 +435,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.ClrMamePro.Video? video)
private static void Validate(Data.Models.ClrMamePro.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -441,7 +450,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.ClrMamePro.Sound? sound)
private static void Validate(Data.Models.ClrMamePro.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -450,7 +459,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.ClrMamePro.Input? input)
private static void Validate(Data.Models.ClrMamePro.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Players);
@@ -464,7 +473,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.ClrMamePro.DipSwitch? dipswitch)
private static void Validate(Data.Models.ClrMamePro.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -479,7 +488,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.ClrMamePro.Driver? driver)
private static void Validate(Data.Models.ClrMamePro.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.DosCenter();
var serializer = new DosCenter();
// Build the data
Models.DosCenter.MetadataFile mf = Build();
Data.Models.DosCenter.MetadataFile mf = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.DosCenter.MetadataFile? newMf = serializer.Deserialize(metadata);
Data.Models.DosCenter.MetadataFile? newMf = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -31,9 +32,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.DosCenter.MetadataFile Build()
private static Data.Models.DosCenter.MetadataFile Build()
{
var dc = new Models.DosCenter.DosCenter
var dc = new Data.Models.DosCenter.DosCenter
{
Name = "XXXXXX",
Description = "XXXXXX",
@@ -44,7 +45,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Comment = "XXXXXX",
};
var file = new Models.DosCenter.File
var file = new Data.Models.DosCenter.File
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -53,13 +54,13 @@ namespace SabreTools.Serialization.Test.CrossModel
Date = "XXXXXX",
};
var game = new Models.DosCenter.Game
var game = new Data.Models.DosCenter.Game
{
Name = "XXXXXX",
File = [file],
};
return new Models.DosCenter.MetadataFile
return new Data.Models.DosCenter.MetadataFile
{
DosCenter = dc,
Game = [game],
@@ -69,7 +70,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DosCenter
/// </summary>
private static void Validate(Models.DosCenter.DosCenter? cmp)
private static void Validate(Data.Models.DosCenter.DosCenter? cmp)
{
Assert.NotNull(cmp);
Assert.Equal("XXXXXX", cmp.Name);
@@ -84,7 +85,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Game
/// </summary>
private static void Validate(Models.DosCenter.Game? game)
private static void Validate(Data.Models.DosCenter.Game? game)
{
Assert.NotNull(game);
Assert.Equal("XXXXXX", game.Name);
@@ -97,7 +98,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a File
/// </summary>
private static void Validate(Models.DosCenter.File? rom)
private static void Validate(Data.Models.DosCenter.File? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.EverdriveSMDB();
var serializer = new EverdriveSMDB();
// Build the data
Models.EverdriveSMDB.MetadataFile mf = Build();
Data.Models.EverdriveSMDB.MetadataFile mf = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.EverdriveSMDB.MetadataFile? newMf = serializer.Deserialize(metadata);
Data.Models.EverdriveSMDB.MetadataFile? newMf = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -30,9 +31,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.EverdriveSMDB.MetadataFile Build()
private static Data.Models.EverdriveSMDB.MetadataFile Build()
{
var row = new Models.EverdriveSMDB.Row
var row = new Data.Models.EverdriveSMDB.Row
{
SHA256 = "XXXXXX",
Name = "XXXXXX",
@@ -42,7 +43,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Size = "XXXXXX",
};
return new Models.EverdriveSMDB.MetadataFile
return new Data.Models.EverdriveSMDB.MetadataFile
{
Row = [row],
};
@@ -51,7 +52,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void Validate(Models.EverdriveSMDB.Row? row)
private static void Validate(Data.Models.EverdriveSMDB.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.SHA256);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using System;
using SabreTools.Hashing;
using Xunit;
@@ -10,17 +11,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripSFVTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.CRC32);
Data.Models.Hashfile.Hashfile hf = Build(HashType.CRC32);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.CRC32);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.CRC32);
// Validate the data
Assert.NotNull(newHf);
@@ -33,17 +34,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMD2Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.MD2);
Data.Models.Hashfile.Hashfile hf = Build(HashType.MD2);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.MD2);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.MD2);
// Validate the data
Assert.NotNull(newHf);
@@ -56,17 +57,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMD4Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.MD4);
Data.Models.Hashfile.Hashfile hf = Build(HashType.MD4);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.MD4);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.MD4);
// Validate the data
Assert.NotNull(newHf);
@@ -79,17 +80,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMD5Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.MD5);
Data.Models.Hashfile.Hashfile hf = Build(HashType.MD5);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.MD5);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.MD5);
// Validate the data
Assert.NotNull(newHf);
@@ -102,17 +103,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripSHA1Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA1);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA1);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA1);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA1);
// Validate the data
Assert.NotNull(newHf);
@@ -125,17 +126,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripSHA256Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA256);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA256);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA256);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA256);
// Validate the data
Assert.NotNull(newHf);
@@ -148,17 +149,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripSHA384Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA384);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA384);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA384);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA384);
// Validate the data
Assert.NotNull(newHf);
@@ -171,17 +172,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripSHA512Test()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA512);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA512);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA512);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SHA512);
// Validate the data
Assert.NotNull(newHf);
@@ -194,17 +195,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripSpamSumTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Hashfile();
var serializer = new Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SpamSum);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SpamSum);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(hf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SpamSum);
Data.Models.Hashfile.Hashfile? newHf = serializer.Deserialize(metadata, HashType.SpamSum);
// Validate the data
Assert.NotNull(newHf);
@@ -216,19 +217,19 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Hashfile.Hashfile Build(HashType hashType)
private static Data.Models.Hashfile.Hashfile Build(HashType hashType)
{
return hashType switch
{
HashType.CRC32 => new Models.Hashfile.Hashfile { SFV = [new Models.Hashfile.SFV { File = "XXXXXX", Hash = "XXXXXX" }] },
HashType.MD2 => new Models.Hashfile.Hashfile { MD2 = [new Models.Hashfile.MD2 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD4 => new Models.Hashfile.Hashfile { MD4 = [new Models.Hashfile.MD4 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD5 => new Models.Hashfile.Hashfile { MD5 = [new Models.Hashfile.MD5 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA1 => new Models.Hashfile.Hashfile { SHA1 = [new Models.Hashfile.SHA1 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA256 => new Models.Hashfile.Hashfile { SHA256 = [new Models.Hashfile.SHA256 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA384 => new Models.Hashfile.Hashfile { SHA384 = [new Models.Hashfile.SHA384 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA512 => new Models.Hashfile.Hashfile { SHA512 = [new Models.Hashfile.SHA512 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SpamSum => new Models.Hashfile.Hashfile { SpamSum = [new Models.Hashfile.SpamSum { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.CRC32 => new Data.Models.Hashfile.Hashfile { SFV = [new Data.Models.Hashfile.SFV { File = "XXXXXX", Hash = "XXXXXX" }] },
HashType.MD2 => new Data.Models.Hashfile.Hashfile { MD2 = [new Data.Models.Hashfile.MD2 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD4 => new Data.Models.Hashfile.Hashfile { MD4 = [new Data.Models.Hashfile.MD4 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD5 => new Data.Models.Hashfile.Hashfile { MD5 = [new Data.Models.Hashfile.MD5 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA1 => new Data.Models.Hashfile.Hashfile { SHA1 = [new Data.Models.Hashfile.SHA1 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA256 => new Data.Models.Hashfile.Hashfile { SHA256 = [new Data.Models.Hashfile.SHA256 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA384 => new Data.Models.Hashfile.Hashfile { SHA384 = [new Data.Models.Hashfile.SHA384 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA512 => new Data.Models.Hashfile.Hashfile { SHA512 = [new Data.Models.Hashfile.SHA512 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SpamSum => new Data.Models.Hashfile.Hashfile { SpamSum = [new Data.Models.Hashfile.SpamSum { Hash = "XXXXXX", File = "XXXXXX" }] },
_ => throw new ArgumentOutOfRangeException(),
};
}
@@ -236,7 +237,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SFV
/// </summary>
private static void Validate(Models.Hashfile.SFV? sfv)
private static void Validate(Data.Models.Hashfile.SFV? sfv)
{
Assert.NotNull(sfv);
Assert.Equal("XXXXXX", sfv.File);
@@ -246,7 +247,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a MD2
/// </summary>
private static void Validate(Models.Hashfile.MD2? md2)
private static void Validate(Data.Models.Hashfile.MD2? md2)
{
Assert.NotNull(md2);
Assert.Equal("XXXXXX", md2.Hash);
@@ -256,7 +257,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a MD4
/// </summary>
private static void Validate(Models.Hashfile.MD4? md4)
private static void Validate(Data.Models.Hashfile.MD4? md4)
{
Assert.NotNull(md4);
Assert.Equal("XXXXXX", md4.Hash);
@@ -266,7 +267,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a MD5
/// </summary>
private static void Validate(Models.Hashfile.MD5? md5)
private static void Validate(Data.Models.Hashfile.MD5? md5)
{
Assert.NotNull(md5);
Assert.Equal("XXXXXX", md5.Hash);
@@ -276,7 +277,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SHA1
/// </summary>
private static void Validate(Models.Hashfile.SHA1? sha1)
private static void Validate(Data.Models.Hashfile.SHA1? sha1)
{
Assert.NotNull(sha1);
Assert.Equal("XXXXXX", sha1.Hash);
@@ -286,7 +287,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SHA256
/// </summary>
private static void Validate(Models.Hashfile.SHA256? sha256)
private static void Validate(Data.Models.Hashfile.SHA256? sha256)
{
Assert.NotNull(sha256);
Assert.Equal("XXXXXX", sha256.Hash);
@@ -296,7 +297,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SHA384
/// </summary>
private static void Validate(Models.Hashfile.SHA384? sha384)
private static void Validate(Data.Models.Hashfile.SHA384? sha384)
{
Assert.NotNull(sha384);
Assert.Equal("XXXXXX", sha384.Hash);
@@ -306,7 +307,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SHA512
/// </summary>
private static void Validate(Models.Hashfile.SHA512? sha512)
private static void Validate(Data.Models.Hashfile.SHA512? sha512)
{
Assert.NotNull(sha512);
Assert.Equal("XXXXXX", sha512.Hash);
@@ -316,7 +317,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SpamSum
/// </summary>
private static void Validate(Models.Hashfile.SpamSum? spamsum)
private static void Validate(Data.Models.Hashfile.SpamSum? spamsum)
{
Assert.NotNull(spamsum);
Assert.Equal("XXXXXX", spamsum.Hash);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Listrom();
var serializer = new Listrom();
// Build the data
Models.Listrom.MetadataFile mf = Build();
Data.Models.Listrom.MetadataFile mf = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listrom.MetadataFile? newMf = serializer.Deserialize(metadata);
Data.Models.Listrom.MetadataFile? newMf = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -32,9 +33,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listrom.MetadataFile Build()
private static Data.Models.Listrom.MetadataFile Build()
{
var rom = new Models.Listrom.Row
var rom = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -44,7 +45,7 @@ namespace SabreTools.Serialization.Test.CrossModel
NoGoodDumpKnown = false,
};
var disk = new Models.Listrom.Row
var disk = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Bad = false,
@@ -53,19 +54,19 @@ namespace SabreTools.Serialization.Test.CrossModel
NoGoodDumpKnown = true,
};
var device = new Models.Listrom.Set()
var device = new Data.Models.Listrom.Set()
{
Device = "XXXXXX",
Row = [rom],
};
var driver = new Models.Listrom.Set()
var driver = new Data.Models.Listrom.Set()
{
Driver = "XXXXXX",
Row = [disk],
};
return new Models.Listrom.MetadataFile
return new Data.Models.Listrom.MetadataFile
{
Set = [device, driver],
};
@@ -74,7 +75,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Set
/// </summary>
private static void ValidateDevice(Models.Listrom.Set? set)
private static void ValidateDevice(Data.Models.Listrom.Set? set)
{
Assert.NotNull(set);
Assert.Equal("XXXXXX", set.Device);
@@ -87,7 +88,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Set
/// </summary>
private static void ValidateDriver(Models.Listrom.Set? set)
private static void ValidateDriver(Data.Models.Listrom.Set? set)
{
Assert.NotNull(set);
Assert.Equal("XXXXXX", set.Driver);
@@ -100,7 +101,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateRom(Models.Listrom.Row? row)
private static void ValidateRom(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);
@@ -114,7 +115,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateDisk(Models.Listrom.Row? row)
private static void ValidateDisk(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripGameTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Listxml();
var serializer = new Listxml();
// Build the data
Models.Listxml.Mame mame = Build(game: true);
Data.Models.Listxml.Mame mame = Build(game: true);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mame);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mame);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listxml.Mame? newMame = serializer.Deserialize(metadata);
Data.Models.Listxml.Mame? newMame = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMame);
@@ -35,17 +36,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMachineTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Listxml();
var serializer = new Listxml();
// Build the data
Models.Listxml.Mame mame = Build(game: false);
Data.Models.Listxml.Mame mame = Build(game: false);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mame);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mame);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listxml.Mame? newMame = serializer.Deserialize(metadata);
Data.Models.Listxml.Mame? newMame = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMame);
@@ -61,16 +62,16 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listxml.Mame Build(bool game)
private static Data.Models.Listxml.Mame Build(bool game)
{
var biosset = new Models.Listxml.BiosSet
var biosset = new Data.Models.Listxml.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Listxml.Rom
var rom = new Data.Models.Listxml.Rom
{
Name = "XXXXXX",
Bios = "XXXXXX",
@@ -86,7 +87,7 @@ namespace SabreTools.Serialization.Test.CrossModel
SoundOnly = "XXXXXX",
};
var disk = new Models.Listxml.Disk
var disk = new Data.Models.Listxml.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -99,17 +100,17 @@ namespace SabreTools.Serialization.Test.CrossModel
Optional = "XXXXXX",
};
var deviceref = new Models.Listxml.DeviceRef
var deviceref = new Data.Models.Listxml.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Listxml.Sample
var sample = new Data.Models.Listxml.Sample
{
Name = "XXXXXX",
};
var chip = new Models.Listxml.Chip
var chip = new Data.Models.Listxml.Chip
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -118,7 +119,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Clock = "XXXXXX",
};
var display = new Models.Listxml.Display
var display = new Data.Models.Listxml.Display
{
Tag = "XXXXXX",
Type = "XXXXXX",
@@ -136,7 +137,7 @@ namespace SabreTools.Serialization.Test.CrossModel
VBStart = "XXXXXX",
};
var video = new Models.Listxml.Video
var video = new Data.Models.Listxml.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -147,12 +148,12 @@ namespace SabreTools.Serialization.Test.CrossModel
Refresh = "XXXXXX",
};
var sound = new Models.Listxml.Sound
var sound = new Data.Models.Listxml.Sound
{
Channels = "XXXXXX",
};
var control = new Models.Listxml.Control
var control = new Data.Models.Listxml.Control
{
Type = "XXXXXX",
Player = "XXXXXX",
@@ -168,7 +169,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Ways3 = "XXXXXX",
};
var input = new Models.Listxml.Input
var input = new Data.Models.Listxml.Input
{
Service = "XXXXXX",
Tilt = "XXXXXX",
@@ -179,7 +180,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Control = [control],
};
var condition = new Models.Listxml.Condition
var condition = new Data.Models.Listxml.Condition
{
Tag = "XXXXXX",
Mask = "XXXXXX",
@@ -187,14 +188,14 @@ namespace SabreTools.Serialization.Test.CrossModel
Value = "XXXXXX",
};
var diplocation = new Models.Listxml.DipLocation
var diplocation = new Data.Models.Listxml.DipLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var dipvalue = new Models.Listxml.DipValue
var dipvalue = new Data.Models.Listxml.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -202,7 +203,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Condition = condition,
};
var dipswitch = new Models.Listxml.DipSwitch
var dipswitch = new Data.Models.Listxml.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -212,14 +213,14 @@ namespace SabreTools.Serialization.Test.CrossModel
DipValue = [dipvalue],
};
var conflocation = new Models.Listxml.ConfLocation
var conflocation = new Data.Models.Listxml.ConfLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var confsetting = new Models.Listxml.ConfSetting
var confsetting = new Data.Models.Listxml.ConfSetting
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -227,7 +228,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Condition = condition,
};
var configuration = new Models.Listxml.Configuration
var configuration = new Data.Models.Listxml.Configuration
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -237,25 +238,25 @@ namespace SabreTools.Serialization.Test.CrossModel
ConfSetting = [confsetting],
};
var analog = new Models.Listxml.Analog
var analog = new Data.Models.Listxml.Analog
{
Mask = "XXXXXX",
};
var port = new Models.Listxml.Port
var port = new Data.Models.Listxml.Port
{
Tag = "XXXXXX",
Analog = [analog],
};
var adjuster = new Models.Listxml.Adjuster
var adjuster = new Data.Models.Listxml.Adjuster
{
Name = "XXXXXX",
Default = "XXXXXX",
Condition = condition,
};
var driver = new Models.Listxml.Driver
var driver = new Data.Models.Listxml.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -270,25 +271,25 @@ namespace SabreTools.Serialization.Test.CrossModel
Incomplete = "XXXXXX",
};
var feature = new Models.Listxml.Feature
var feature = new Data.Models.Listxml.Feature
{
Type = "XXXXXX",
Status = "XXXXXX",
Overall = "XXXXXX",
};
var instance = new Models.Listxml.Instance
var instance = new Data.Models.Listxml.Instance
{
Name = "XXXXXX",
BriefName = "XXXXXX",
};
var extension = new Models.Listxml.Extension
var extension = new Data.Models.Listxml.Extension
{
Name = "XXXXXX",
};
var device = new Models.Listxml.Device
var device = new Data.Models.Listxml.Device
{
Type = "XXXXXX",
Tag = "XXXXXX",
@@ -299,20 +300,20 @@ namespace SabreTools.Serialization.Test.CrossModel
Extension = [extension],
};
var slotOption = new Models.Listxml.SlotOption
var slotOption = new Data.Models.Listxml.SlotOption
{
Name = "XXXXXX",
DevName = "XXXXXX",
Default = "XXXXXX",
};
var slot = new Models.Listxml.Slot
var slot = new Data.Models.Listxml.Slot
{
Name = "XXXXXX",
SlotOption = [slotOption],
};
var softwarelist = new Models.Listxml.SoftwareList
var softwarelist = new Data.Models.Listxml.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -320,16 +321,16 @@ namespace SabreTools.Serialization.Test.CrossModel
Filter = "XXXXXX",
};
var ramoption = new Models.Listxml.RamOption
var ramoption = new Data.Models.Listxml.RamOption
{
Name = "XXXXXX",
Default = "XXXXXX",
Content = "XXXXXX",
};
Models.Listxml.GameBase gameBase = game
? new Models.Listxml.Game()
: new Models.Listxml.Machine();
Data.Models.Listxml.GameBase gameBase = game
? new Data.Models.Listxml.Game()
: new Data.Models.Listxml.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -364,7 +365,7 @@ namespace SabreTools.Serialization.Test.CrossModel
gameBase.SoftwareList = [softwarelist];
gameBase.RamOption = [ramoption];
return new Models.Listxml.Mame
return new Data.Models.Listxml.Mame
{
Build = "XXXXXX",
Debug = "XXXXXX",
@@ -376,7 +377,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Listxml.GameBase? gb)
private static void Validate(Data.Models.Listxml.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -470,7 +471,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Listxml.BiosSet? biosset)
private static void Validate(Data.Models.Listxml.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -481,7 +482,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Listxml.Rom? rom)
private static void Validate(Data.Models.Listxml.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -501,7 +502,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Listxml.Disk? disk)
private static void Validate(Data.Models.Listxml.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -518,7 +519,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Listxml.DeviceRef? deviceref)
private static void Validate(Data.Models.Listxml.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -527,7 +528,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Listxml.Sample? sample)
private static void Validate(Data.Models.Listxml.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -536,7 +537,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.Listxml.Chip? chip)
private static void Validate(Data.Models.Listxml.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Name);
@@ -549,7 +550,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Display
/// </summary>
private static void Validate(Models.Listxml.Display? display)
private static void Validate(Data.Models.Listxml.Display? display)
{
Assert.NotNull(display);
Assert.Equal("XXXXXX", display.Tag);
@@ -571,7 +572,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.Listxml.Video? video)
private static void Validate(Data.Models.Listxml.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -586,7 +587,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.Listxml.Sound? sound)
private static void Validate(Data.Models.Listxml.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -595,7 +596,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.Listxml.Input? input)
private static void Validate(Data.Models.Listxml.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Service);
@@ -613,7 +614,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Control
/// </summary>
private static void Validate(Models.Listxml.Control? control)
private static void Validate(Data.Models.Listxml.Control? control)
{
Assert.NotNull(control);
Assert.Equal("XXXXXX", control.Type);
@@ -633,7 +634,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.Listxml.DipSwitch? dipswitch)
private static void Validate(Data.Models.Listxml.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -653,7 +654,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Condition
/// </summary>
private static void Validate(Models.Listxml.Condition? condition)
private static void Validate(Data.Models.Listxml.Condition? condition)
{
Assert.NotNull(condition);
Assert.Equal("XXXXXX", condition.Tag);
@@ -665,7 +666,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipLocation
/// </summary>
private static void Validate(Models.Listxml.DipLocation? diplocation)
private static void Validate(Data.Models.Listxml.DipLocation? diplocation)
{
Assert.NotNull(diplocation);
Assert.Equal("XXXXXX", diplocation.Name);
@@ -676,7 +677,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.Listxml.DipValue? dipvalue)
private static void Validate(Data.Models.Listxml.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);
@@ -688,7 +689,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.Listxml.Configuration? configuration)
private static void Validate(Data.Models.Listxml.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.Name);
@@ -708,7 +709,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ConfLocation
/// </summary>
private static void Validate(Models.Listxml.ConfLocation? conflocation)
private static void Validate(Data.Models.Listxml.ConfLocation? conflocation)
{
Assert.NotNull(conflocation);
Assert.Equal("XXXXXX", conflocation.Name);
@@ -719,7 +720,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ConfSetting
/// </summary>
private static void Validate(Models.Listxml.ConfSetting? confsetting)
private static void Validate(Data.Models.Listxml.ConfSetting? confsetting)
{
Assert.NotNull(confsetting);
Assert.Equal("XXXXXX", confsetting.Name);
@@ -731,7 +732,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Port
/// </summary>
private static void Validate(Models.Listxml.Port? port)
private static void Validate(Data.Models.Listxml.Port? port)
{
Assert.NotNull(port);
Assert.Equal("XXXXXX", port.Tag);
@@ -744,7 +745,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Analog
/// </summary>
private static void Validate(Models.Listxml.Analog? analog)
private static void Validate(Data.Models.Listxml.Analog? analog)
{
Assert.NotNull(analog);
Assert.Equal("XXXXXX", analog.Mask);
@@ -753,7 +754,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Adjuster
/// </summary>
private static void Validate(Models.Listxml.Adjuster? adjuster)
private static void Validate(Data.Models.Listxml.Adjuster? adjuster)
{
Assert.NotNull(adjuster);
Assert.Equal("XXXXXX", adjuster.Name);
@@ -764,7 +765,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Listxml.Driver? driver)
private static void Validate(Data.Models.Listxml.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -783,7 +784,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.Listxml.Feature? feature)
private static void Validate(Data.Models.Listxml.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Type);
@@ -794,7 +795,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Device
/// </summary>
private static void Validate(Models.Listxml.Device? device)
private static void Validate(Data.Models.Listxml.Device? device)
{
Assert.NotNull(device);
Assert.Equal("XXXXXX", device.Type);
@@ -812,7 +813,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Instance
/// </summary>
private static void Validate(Models.Listxml.Instance? instance)
private static void Validate(Data.Models.Listxml.Instance? instance)
{
Assert.NotNull(instance);
Assert.Equal("XXXXXX", instance.Name);
@@ -822,7 +823,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Extension
/// </summary>
private static void Validate(Models.Listxml.Extension? extension)
private static void Validate(Data.Models.Listxml.Extension? extension)
{
Assert.NotNull(extension);
Assert.Equal("XXXXXX", extension.Name);
@@ -831,7 +832,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Slot
/// </summary>
private static void Validate(Models.Listxml.Slot? slot)
private static void Validate(Data.Models.Listxml.Slot? slot)
{
Assert.NotNull(slot);
Assert.Equal("XXXXXX", slot.Name);
@@ -844,7 +845,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SlotOption
/// </summary>
private static void Validate(Models.Listxml.SlotOption? slotoption)
private static void Validate(Data.Models.Listxml.SlotOption? slotoption)
{
Assert.NotNull(slotoption);
Assert.Equal("XXXXXX", slotoption.Name);
@@ -855,7 +856,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Listxml.SoftwareList? softwarelist)
private static void Validate(Data.Models.Listxml.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);
@@ -867,7 +868,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a RamOption
/// </summary>
private static void Validate(Models.Listxml.RamOption? ramoption)
private static void Validate(Data.Models.Listxml.RamOption? ramoption)
{
Assert.NotNull(ramoption);
Assert.Equal("XXXXXX", ramoption.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripGameTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Logiqx();
var serializer = new Logiqx();
// Build the data
Models.Logiqx.Datafile df = Build(game: true);
Data.Models.Logiqx.Datafile df = Build(game: true);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(df);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(df);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Logiqx.Datafile? newDf = serializer.Deserialize(metadata, game: true);
Data.Models.Logiqx.Datafile? newDf = serializer.Deserialize(metadata, game: true);
// Validate the data
Assert.NotNull(newDf);
@@ -40,17 +41,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMachineTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Logiqx();
var serializer = new Logiqx();
// Build the data
Models.Logiqx.Datafile df = Build(game: false);
Data.Models.Logiqx.Datafile df = Build(game: false);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(df);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(df);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Logiqx.Datafile? newDf = serializer.Deserialize(metadata, game: false);
Data.Models.Logiqx.Datafile? newDf = serializer.Deserialize(metadata, game: false);
// Validate the data
Assert.NotNull(newDf);
@@ -71,9 +72,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Logiqx.Datafile Build(bool game)
private static Data.Models.Logiqx.Datafile Build(bool game)
{
var clrmamepro = new Models.Logiqx.ClrMamePro
var clrmamepro = new Data.Models.Logiqx.ClrMamePro
{
Header = "XXXXXX",
ForceMerging = "XXXXXX",
@@ -81,7 +82,7 @@ namespace SabreTools.Serialization.Test.CrossModel
ForcePacking = "XXXXXX",
};
var romcenter = new Models.Logiqx.RomCenter
var romcenter = new Data.Models.Logiqx.RomCenter
{
Plugin = "XXXXXX",
RomMode = "XXXXXX",
@@ -92,7 +93,7 @@ namespace SabreTools.Serialization.Test.CrossModel
LockSampleMode = "XXXXXX",
};
var header = new Models.Logiqx.Header
var header = new Data.Models.Logiqx.Header
{
Id = "XXXXXX",
Name = "XXXXXX",
@@ -111,7 +112,7 @@ namespace SabreTools.Serialization.Test.CrossModel
RomCenter = romcenter,
};
var trurip = new Models.Logiqx.Trurip
var trurip = new Data.Models.Logiqx.Trurip
{
TitleID = "XXXXXX",
Publisher = "XXXXXX",
@@ -129,7 +130,7 @@ namespace SabreTools.Serialization.Test.CrossModel
RelatedTo = "XXXXXX",
};
var release = new Models.Logiqx.Release
var release = new Data.Models.Logiqx.Release
{
Name = "XXXXXX",
Region = "XXXXXX",
@@ -138,19 +139,23 @@ namespace SabreTools.Serialization.Test.CrossModel
Default = "XXXXXX",
};
var biosset = new Models.Logiqx.BiosSet
var biosset = new Data.Models.Logiqx.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Logiqx.Rom
var rom = new Data.Models.Logiqx.Rom
{
Name = "XXXXXX",
Size = "XXXXXX",
CRC = "XXXXXX",
MD2 = "XXXXXX",
MD4 = "XXXXXX",
MD5 = "XXXXXX",
RIPEMD128 = "XXXXXX",
RIPEMD160 = "XXXXXX",
SHA1 = "XXXXXX",
SHA256 = "XXXXXX",
SHA384 = "XXXXXX",
@@ -167,7 +172,7 @@ namespace SabreTools.Serialization.Test.CrossModel
MIA = "XXXXXX",
};
var disk = new Models.Logiqx.Disk
var disk = new Data.Models.Logiqx.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -177,7 +182,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Region = "XXXXXX",
};
var media = new Models.Logiqx.Media
var media = new Data.Models.Logiqx.Media
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -186,22 +191,22 @@ namespace SabreTools.Serialization.Test.CrossModel
SpamSum = "XXXXXX",
};
var deviceRef = new Models.Logiqx.DeviceRef
var deviceRef = new Data.Models.Logiqx.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Logiqx.Sample
var sample = new Data.Models.Logiqx.Sample
{
Name = "XXXXXX",
};
var archive = new Models.Logiqx.Archive
var archive = new Data.Models.Logiqx.Archive
{
Name = "XXXXXX",
};
var driver = new Models.Logiqx.Driver
var driver = new Data.Models.Logiqx.Driver
{
Status = "XXXXXX",
Emulation = "XXXXXX",
@@ -213,7 +218,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Incomplete = "XXXXXX",
};
var softwarelist = new Models.Logiqx.SoftwareList
var softwarelist = new Data.Models.Logiqx.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -221,9 +226,9 @@ namespace SabreTools.Serialization.Test.CrossModel
Filter = "XXXXXX",
};
Models.Logiqx.GameBase gameBase = game
? new Models.Logiqx.Game()
: new Models.Logiqx.Machine();
Data.Models.Logiqx.GameBase gameBase = game
? new Data.Models.Logiqx.Game()
: new Data.Models.Logiqx.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -255,19 +260,19 @@ namespace SabreTools.Serialization.Test.CrossModel
gameBase.Driver = driver;
gameBase.SoftwareList = [softwarelist];
var subdir = new Models.Logiqx.Dir
var subdir = new Data.Models.Logiqx.Dir
{
Name = "XXXXXX",
Game = [gameBase],
};
var dir = new Models.Logiqx.Dir
var dir = new Data.Models.Logiqx.Dir
{
Name = "XXXXXX",
Subdir = [subdir],
};
return new Models.Logiqx.Datafile
return new Data.Models.Logiqx.Datafile
{
Build = "XXXXXX",
Debug = "XXXXXX",
@@ -281,7 +286,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Header
/// </summary>
private static void Validate(Models.Logiqx.Header? header)
private static void Validate(Data.Models.Logiqx.Header? header)
{
Assert.NotNull(header);
Assert.Equal("XXXXXX", header.Id);
@@ -304,7 +309,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ClrMamePro
/// </summary>
private static void Validate(Models.Logiqx.ClrMamePro? cmp)
private static void Validate(Data.Models.Logiqx.ClrMamePro? cmp)
{
Assert.NotNull(cmp);
Assert.Equal("XXXXXX", cmp.Header);
@@ -316,7 +321,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a RomCenter
/// </summary>
private static void Validate(Models.Logiqx.RomCenter? rc)
private static void Validate(Data.Models.Logiqx.RomCenter? rc)
{
Assert.NotNull(rc);
Assert.Equal("XXXXXX", rc.Plugin);
@@ -331,7 +336,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Logiqx.GameBase? gb, bool nested)
private static void Validate(Data.Models.Logiqx.GameBase? gb, bool nested)
{
Assert.NotNull(gb);
if (nested)
@@ -408,7 +413,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Trurip
/// </summary>
private static void Validate(Models.Logiqx.Trurip? trurip)
private static void Validate(Data.Models.Logiqx.Trurip? trurip)
{
Assert.NotNull(trurip);
Assert.Equal("XXXXXX", trurip.TitleID);
@@ -430,7 +435,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Release
/// </summary>
private static void Validate(Models.Logiqx.Release? release)
private static void Validate(Data.Models.Logiqx.Release? release)
{
Assert.NotNull(release);
Assert.Equal("XXXXXX", release.Name);
@@ -443,7 +448,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Logiqx.BiosSet? biosset)
private static void Validate(Data.Models.Logiqx.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -454,13 +459,17 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Logiqx.Rom? rom)
private static void Validate(Data.Models.Logiqx.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
Assert.Equal("XXXXXX", rom.Size);
Assert.Equal("XXXXXX", rom.CRC);
Assert.Equal("XXXXXX", rom.MD2);
Assert.Equal("XXXXXX", rom.MD4);
Assert.Equal("XXXXXX", rom.MD5);
Assert.Equal("XXXXXX", rom.RIPEMD128);
Assert.Equal("XXXXXX", rom.RIPEMD160);
Assert.Equal("XXXXXX", rom.SHA1);
Assert.Equal("XXXXXX", rom.SHA256);
Assert.Equal("XXXXXX", rom.SHA384);
@@ -480,7 +489,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Logiqx.Disk? disk)
private static void Validate(Data.Models.Logiqx.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -494,7 +503,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Media
/// </summary>
private static void Validate(Models.Logiqx.Media? media)
private static void Validate(Data.Models.Logiqx.Media? media)
{
Assert.NotNull(media);
Assert.Equal("XXXXXX", media.Name);
@@ -507,7 +516,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Logiqx.DeviceRef? deviceref)
private static void Validate(Data.Models.Logiqx.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -516,7 +525,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Logiqx.Sample? sample)
private static void Validate(Data.Models.Logiqx.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -525,7 +534,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Archive
/// </summary>
private static void Validate(Models.Logiqx.Archive? archive)
private static void Validate(Data.Models.Logiqx.Archive? archive)
{
Assert.NotNull(archive);
Assert.Equal("XXXXXX", archive.Name);
@@ -534,7 +543,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Logiqx.Driver? driver)
private static void Validate(Data.Models.Logiqx.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -550,7 +559,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Logiqx.SoftwareList? softwarelist)
private static void Validate(Data.Models.Logiqx.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripGameTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.M1();
var serializer = new M1();
// Build the data
Models.Listxml.M1 m1 = Build(game: true);
Data.Models.Listxml.M1 m1 = Build(game: true);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listxml.M1? newM1 = serializer.Deserialize(metadata);
Data.Models.Listxml.M1? newM1 = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newM1);
@@ -33,17 +34,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMachineTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.M1();
var serializer = new M1();
// Build the data
Models.Listxml.M1 m1 = Build(game: false);
Data.Models.Listxml.M1 m1 = Build(game: false);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listxml.M1? newM1 = serializer.Deserialize(metadata);
Data.Models.Listxml.M1? newM1 = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newM1);
@@ -57,16 +58,16 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listxml.M1 Build(bool game)
private static Data.Models.Listxml.M1 Build(bool game)
{
var biosset = new Models.Listxml.BiosSet
var biosset = new Data.Models.Listxml.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Listxml.Rom
var rom = new Data.Models.Listxml.Rom
{
Name = "XXXXXX",
Bios = "XXXXXX",
@@ -82,7 +83,7 @@ namespace SabreTools.Serialization.Test.CrossModel
SoundOnly = "XXXXXX",
};
var disk = new Models.Listxml.Disk
var disk = new Data.Models.Listxml.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -95,17 +96,17 @@ namespace SabreTools.Serialization.Test.CrossModel
Optional = "XXXXXX",
};
var deviceref = new Models.Listxml.DeviceRef
var deviceref = new Data.Models.Listxml.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Listxml.Sample
var sample = new Data.Models.Listxml.Sample
{
Name = "XXXXXX",
};
var chip = new Models.Listxml.Chip
var chip = new Data.Models.Listxml.Chip
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -114,7 +115,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Clock = "XXXXXX",
};
var display = new Models.Listxml.Display
var display = new Data.Models.Listxml.Display
{
Tag = "XXXXXX",
Type = "XXXXXX",
@@ -132,7 +133,7 @@ namespace SabreTools.Serialization.Test.CrossModel
VBStart = "XXXXXX",
};
var video = new Models.Listxml.Video
var video = new Data.Models.Listxml.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -143,12 +144,12 @@ namespace SabreTools.Serialization.Test.CrossModel
Refresh = "XXXXXX",
};
var sound = new Models.Listxml.Sound
var sound = new Data.Models.Listxml.Sound
{
Channels = "XXXXXX",
};
var control = new Models.Listxml.Control
var control = new Data.Models.Listxml.Control
{
Type = "XXXXXX",
Player = "XXXXXX",
@@ -164,7 +165,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Ways3 = "XXXXXX",
};
var input = new Models.Listxml.Input
var input = new Data.Models.Listxml.Input
{
Service = "XXXXXX",
Tilt = "XXXXXX",
@@ -175,7 +176,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Control = [control],
};
var condition = new Models.Listxml.Condition
var condition = new Data.Models.Listxml.Condition
{
Tag = "XXXXXX",
Mask = "XXXXXX",
@@ -183,14 +184,14 @@ namespace SabreTools.Serialization.Test.CrossModel
Value = "XXXXXX",
};
var diplocation = new Models.Listxml.DipLocation
var diplocation = new Data.Models.Listxml.DipLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var dipvalue = new Models.Listxml.DipValue
var dipvalue = new Data.Models.Listxml.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -198,7 +199,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Condition = condition,
};
var dipswitch = new Models.Listxml.DipSwitch
var dipswitch = new Data.Models.Listxml.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -208,14 +209,14 @@ namespace SabreTools.Serialization.Test.CrossModel
DipValue = [dipvalue],
};
var conflocation = new Models.Listxml.ConfLocation
var conflocation = new Data.Models.Listxml.ConfLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var confsetting = new Models.Listxml.ConfSetting
var confsetting = new Data.Models.Listxml.ConfSetting
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -223,7 +224,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Condition = condition,
};
var configuration = new Models.Listxml.Configuration
var configuration = new Data.Models.Listxml.Configuration
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -233,25 +234,25 @@ namespace SabreTools.Serialization.Test.CrossModel
ConfSetting = [confsetting],
};
var analog = new Models.Listxml.Analog
var analog = new Data.Models.Listxml.Analog
{
Mask = "XXXXXX",
};
var port = new Models.Listxml.Port
var port = new Data.Models.Listxml.Port
{
Tag = "XXXXXX",
Analog = [analog],
};
var adjuster = new Models.Listxml.Adjuster
var adjuster = new Data.Models.Listxml.Adjuster
{
Name = "XXXXXX",
Default = "XXXXXX",
Condition = condition,
};
var driver = new Models.Listxml.Driver
var driver = new Data.Models.Listxml.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -266,25 +267,25 @@ namespace SabreTools.Serialization.Test.CrossModel
Incomplete = "XXXXXX",
};
var feature = new Models.Listxml.Feature
var feature = new Data.Models.Listxml.Feature
{
Type = "XXXXXX",
Status = "XXXXXX",
Overall = "XXXXXX",
};
var instance = new Models.Listxml.Instance
var instance = new Data.Models.Listxml.Instance
{
Name = "XXXXXX",
BriefName = "XXXXXX",
};
var extension = new Models.Listxml.Extension
var extension = new Data.Models.Listxml.Extension
{
Name = "XXXXXX",
};
var device = new Models.Listxml.Device
var device = new Data.Models.Listxml.Device
{
Type = "XXXXXX",
Tag = "XXXXXX",
@@ -295,20 +296,20 @@ namespace SabreTools.Serialization.Test.CrossModel
Extension = [extension],
};
var slotOption = new Models.Listxml.SlotOption
var slotOption = new Data.Models.Listxml.SlotOption
{
Name = "XXXXXX",
DevName = "XXXXXX",
Default = "XXXXXX",
};
var slot = new Models.Listxml.Slot
var slot = new Data.Models.Listxml.Slot
{
Name = "XXXXXX",
SlotOption = [slotOption],
};
var softwarelist = new Models.Listxml.SoftwareList
var softwarelist = new Data.Models.Listxml.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -316,16 +317,16 @@ namespace SabreTools.Serialization.Test.CrossModel
Filter = "XXXXXX",
};
var ramoption = new Models.Listxml.RamOption
var ramoption = new Data.Models.Listxml.RamOption
{
Name = "XXXXXX",
Default = "XXXXXX",
Content = "XXXXXX",
};
Models.Listxml.GameBase gameBase = game
? new Models.Listxml.Game()
: new Models.Listxml.Machine();
Data.Models.Listxml.GameBase gameBase = game
? new Data.Models.Listxml.Game()
: new Data.Models.Listxml.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -360,7 +361,7 @@ namespace SabreTools.Serialization.Test.CrossModel
gameBase.SoftwareList = [softwarelist];
gameBase.RamOption = [ramoption];
return new Models.Listxml.M1
return new Data.Models.Listxml.M1
{
Version = "XXXXXX",
Game = [gameBase],
@@ -370,7 +371,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Listxml.GameBase? gb)
private static void Validate(Data.Models.Listxml.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -464,7 +465,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Listxml.BiosSet? biosset)
private static void Validate(Data.Models.Listxml.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -475,7 +476,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Listxml.Rom? rom)
private static void Validate(Data.Models.Listxml.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -495,7 +496,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Listxml.Disk? disk)
private static void Validate(Data.Models.Listxml.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -512,7 +513,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Listxml.DeviceRef? deviceref)
private static void Validate(Data.Models.Listxml.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -521,7 +522,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Listxml.Sample? sample)
private static void Validate(Data.Models.Listxml.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -530,7 +531,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.Listxml.Chip? chip)
private static void Validate(Data.Models.Listxml.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Name);
@@ -543,7 +544,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Display
/// </summary>
private static void Validate(Models.Listxml.Display? display)
private static void Validate(Data.Models.Listxml.Display? display)
{
Assert.NotNull(display);
Assert.Equal("XXXXXX", display.Tag);
@@ -565,7 +566,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.Listxml.Video? video)
private static void Validate(Data.Models.Listxml.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -580,7 +581,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.Listxml.Sound? sound)
private static void Validate(Data.Models.Listxml.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -589,7 +590,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.Listxml.Input? input)
private static void Validate(Data.Models.Listxml.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Service);
@@ -607,7 +608,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Control
/// </summary>
private static void Validate(Models.Listxml.Control? control)
private static void Validate(Data.Models.Listxml.Control? control)
{
Assert.NotNull(control);
Assert.Equal("XXXXXX", control.Type);
@@ -627,7 +628,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.Listxml.DipSwitch? dipswitch)
private static void Validate(Data.Models.Listxml.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -647,7 +648,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Condition
/// </summary>
private static void Validate(Models.Listxml.Condition? condition)
private static void Validate(Data.Models.Listxml.Condition? condition)
{
Assert.NotNull(condition);
Assert.Equal("XXXXXX", condition.Tag);
@@ -659,7 +660,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipLocation
/// </summary>
private static void Validate(Models.Listxml.DipLocation? diplocation)
private static void Validate(Data.Models.Listxml.DipLocation? diplocation)
{
Assert.NotNull(diplocation);
Assert.Equal("XXXXXX", diplocation.Name);
@@ -670,7 +671,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.Listxml.DipValue? dipvalue)
private static void Validate(Data.Models.Listxml.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);
@@ -682,7 +683,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.Listxml.Configuration? configuration)
private static void Validate(Data.Models.Listxml.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.Name);
@@ -702,7 +703,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ConfLocation
/// </summary>
private static void Validate(Models.Listxml.ConfLocation? conflocation)
private static void Validate(Data.Models.Listxml.ConfLocation? conflocation)
{
Assert.NotNull(conflocation);
Assert.Equal("XXXXXX", conflocation.Name);
@@ -713,7 +714,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ConfSetting
/// </summary>
private static void Validate(Models.Listxml.ConfSetting? confsetting)
private static void Validate(Data.Models.Listxml.ConfSetting? confsetting)
{
Assert.NotNull(confsetting);
Assert.Equal("XXXXXX", confsetting.Name);
@@ -725,7 +726,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Port
/// </summary>
private static void Validate(Models.Listxml.Port? port)
private static void Validate(Data.Models.Listxml.Port? port)
{
Assert.NotNull(port);
Assert.Equal("XXXXXX", port.Tag);
@@ -738,7 +739,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Analog
/// </summary>
private static void Validate(Models.Listxml.Analog? analog)
private static void Validate(Data.Models.Listxml.Analog? analog)
{
Assert.NotNull(analog);
Assert.Equal("XXXXXX", analog.Mask);
@@ -747,7 +748,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Adjuster
/// </summary>
private static void Validate(Models.Listxml.Adjuster? adjuster)
private static void Validate(Data.Models.Listxml.Adjuster? adjuster)
{
Assert.NotNull(adjuster);
Assert.Equal("XXXXXX", adjuster.Name);
@@ -758,7 +759,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Listxml.Driver? driver)
private static void Validate(Data.Models.Listxml.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -777,7 +778,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.Listxml.Feature? feature)
private static void Validate(Data.Models.Listxml.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Type);
@@ -788,7 +789,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Device
/// </summary>
private static void Validate(Models.Listxml.Device? device)
private static void Validate(Data.Models.Listxml.Device? device)
{
Assert.NotNull(device);
Assert.Equal("XXXXXX", device.Type);
@@ -806,7 +807,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Instance
/// </summary>
private static void Validate(Models.Listxml.Instance? instance)
private static void Validate(Data.Models.Listxml.Instance? instance)
{
Assert.NotNull(instance);
Assert.Equal("XXXXXX", instance.Name);
@@ -816,7 +817,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Extension
/// </summary>
private static void Validate(Models.Listxml.Extension? extension)
private static void Validate(Data.Models.Listxml.Extension? extension)
{
Assert.NotNull(extension);
Assert.Equal("XXXXXX", extension.Name);
@@ -825,7 +826,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Slot
/// </summary>
private static void Validate(Models.Listxml.Slot? slot)
private static void Validate(Data.Models.Listxml.Slot? slot)
{
Assert.NotNull(slot);
Assert.Equal("XXXXXX", slot.Name);
@@ -838,7 +839,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SlotOption
/// </summary>
private static void Validate(Models.Listxml.SlotOption? slotoption)
private static void Validate(Data.Models.Listxml.SlotOption? slotoption)
{
Assert.NotNull(slotoption);
Assert.Equal("XXXXXX", slotoption.Name);
@@ -849,7 +850,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Listxml.SoftwareList? softwarelist)
private static void Validate(Data.Models.Listxml.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);
@@ -861,7 +862,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a RamOption
/// </summary>
private static void Validate(Models.Listxml.RamOption? ramoption)
private static void Validate(Data.Models.Listxml.RamOption? ramoption)
{
Assert.NotNull(ramoption);
Assert.Equal("XXXXXX", ramoption.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripGameTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Mess();
var serializer = new Mess();
// Build the data
Models.Listxml.Mess m1 = Build(game: true);
Data.Models.Listxml.Mess m1 = Build(game: true);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listxml.Mess? newMess = serializer.Deserialize(metadata);
Data.Models.Listxml.Mess? newMess = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMess);
@@ -33,17 +34,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripMachineTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.Mess();
var serializer = new Mess();
// Build the data
Models.Listxml.Mess m1 = Build(game: false);
Data.Models.Listxml.Mess m1 = Build(game: false);
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Listxml.Mess? newMess = serializer.Deserialize(metadata);
Data.Models.Listxml.Mess? newMess = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMess);
@@ -57,16 +58,16 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listxml.Mess Build(bool game)
private static Data.Models.Listxml.Mess Build(bool game)
{
var biosset = new Models.Listxml.BiosSet
var biosset = new Data.Models.Listxml.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Listxml.Rom
var rom = new Data.Models.Listxml.Rom
{
Name = "XXXXXX",
Bios = "XXXXXX",
@@ -82,7 +83,7 @@ namespace SabreTools.Serialization.Test.CrossModel
SoundOnly = "XXXXXX",
};
var disk = new Models.Listxml.Disk
var disk = new Data.Models.Listxml.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -95,17 +96,17 @@ namespace SabreTools.Serialization.Test.CrossModel
Optional = "XXXXXX",
};
var deviceref = new Models.Listxml.DeviceRef
var deviceref = new Data.Models.Listxml.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Listxml.Sample
var sample = new Data.Models.Listxml.Sample
{
Name = "XXXXXX",
};
var chip = new Models.Listxml.Chip
var chip = new Data.Models.Listxml.Chip
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -114,7 +115,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Clock = "XXXXXX",
};
var display = new Models.Listxml.Display
var display = new Data.Models.Listxml.Display
{
Tag = "XXXXXX",
Type = "XXXXXX",
@@ -132,7 +133,7 @@ namespace SabreTools.Serialization.Test.CrossModel
VBStart = "XXXXXX",
};
var video = new Models.Listxml.Video
var video = new Data.Models.Listxml.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -143,12 +144,12 @@ namespace SabreTools.Serialization.Test.CrossModel
Refresh = "XXXXXX",
};
var sound = new Models.Listxml.Sound
var sound = new Data.Models.Listxml.Sound
{
Channels = "XXXXXX",
};
var control = new Models.Listxml.Control
var control = new Data.Models.Listxml.Control
{
Type = "XXXXXX",
Player = "XXXXXX",
@@ -164,7 +165,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Ways3 = "XXXXXX",
};
var input = new Models.Listxml.Input
var input = new Data.Models.Listxml.Input
{
Service = "XXXXXX",
Tilt = "XXXXXX",
@@ -175,7 +176,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Control = [control],
};
var condition = new Models.Listxml.Condition
var condition = new Data.Models.Listxml.Condition
{
Tag = "XXXXXX",
Mask = "XXXXXX",
@@ -183,14 +184,14 @@ namespace SabreTools.Serialization.Test.CrossModel
Value = "XXXXXX",
};
var diplocation = new Models.Listxml.DipLocation
var diplocation = new Data.Models.Listxml.DipLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var dipvalue = new Models.Listxml.DipValue
var dipvalue = new Data.Models.Listxml.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -198,7 +199,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Condition = condition,
};
var dipswitch = new Models.Listxml.DipSwitch
var dipswitch = new Data.Models.Listxml.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -208,14 +209,14 @@ namespace SabreTools.Serialization.Test.CrossModel
DipValue = [dipvalue],
};
var conflocation = new Models.Listxml.ConfLocation
var conflocation = new Data.Models.Listxml.ConfLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var confsetting = new Models.Listxml.ConfSetting
var confsetting = new Data.Models.Listxml.ConfSetting
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -223,7 +224,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Condition = condition,
};
var configuration = new Models.Listxml.Configuration
var configuration = new Data.Models.Listxml.Configuration
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -233,25 +234,25 @@ namespace SabreTools.Serialization.Test.CrossModel
ConfSetting = [confsetting],
};
var analog = new Models.Listxml.Analog
var analog = new Data.Models.Listxml.Analog
{
Mask = "XXXXXX",
};
var port = new Models.Listxml.Port
var port = new Data.Models.Listxml.Port
{
Tag = "XXXXXX",
Analog = [analog],
};
var adjuster = new Models.Listxml.Adjuster
var adjuster = new Data.Models.Listxml.Adjuster
{
Name = "XXXXXX",
Default = "XXXXXX",
Condition = condition,
};
var driver = new Models.Listxml.Driver
var driver = new Data.Models.Listxml.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -266,25 +267,25 @@ namespace SabreTools.Serialization.Test.CrossModel
Incomplete = "XXXXXX",
};
var feature = new Models.Listxml.Feature
var feature = new Data.Models.Listxml.Feature
{
Type = "XXXXXX",
Status = "XXXXXX",
Overall = "XXXXXX",
};
var instance = new Models.Listxml.Instance
var instance = new Data.Models.Listxml.Instance
{
Name = "XXXXXX",
BriefName = "XXXXXX",
};
var extension = new Models.Listxml.Extension
var extension = new Data.Models.Listxml.Extension
{
Name = "XXXXXX",
};
var device = new Models.Listxml.Device
var device = new Data.Models.Listxml.Device
{
Type = "XXXXXX",
Tag = "XXXXXX",
@@ -295,20 +296,20 @@ namespace SabreTools.Serialization.Test.CrossModel
Extension = [extension],
};
var slotOption = new Models.Listxml.SlotOption
var slotOption = new Data.Models.Listxml.SlotOption
{
Name = "XXXXXX",
DevName = "XXXXXX",
Default = "XXXXXX",
};
var slot = new Models.Listxml.Slot
var slot = new Data.Models.Listxml.Slot
{
Name = "XXXXXX",
SlotOption = [slotOption],
};
var softwarelist = new Models.Listxml.SoftwareList
var softwarelist = new Data.Models.Listxml.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -316,16 +317,16 @@ namespace SabreTools.Serialization.Test.CrossModel
Filter = "XXXXXX",
};
var ramoption = new Models.Listxml.RamOption
var ramoption = new Data.Models.Listxml.RamOption
{
Name = "XXXXXX",
Default = "XXXXXX",
Content = "XXXXXX",
};
Models.Listxml.GameBase gameBase = game
? new Models.Listxml.Game()
: new Models.Listxml.Machine();
Data.Models.Listxml.GameBase gameBase = game
? new Data.Models.Listxml.Game()
: new Data.Models.Listxml.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -360,7 +361,7 @@ namespace SabreTools.Serialization.Test.CrossModel
gameBase.SoftwareList = [softwarelist];
gameBase.RamOption = [ramoption];
return new Models.Listxml.Mess
return new Data.Models.Listxml.Mess
{
Version = "XXXXXX",
Game = [gameBase],
@@ -370,7 +371,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Listxml.GameBase? gb)
private static void Validate(Data.Models.Listxml.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -464,7 +465,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Listxml.BiosSet? biosset)
private static void Validate(Data.Models.Listxml.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -475,7 +476,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Listxml.Rom? rom)
private static void Validate(Data.Models.Listxml.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -495,7 +496,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Listxml.Disk? disk)
private static void Validate(Data.Models.Listxml.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -512,7 +513,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Listxml.DeviceRef? deviceref)
private static void Validate(Data.Models.Listxml.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -521,7 +522,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Listxml.Sample? sample)
private static void Validate(Data.Models.Listxml.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -530,7 +531,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.Listxml.Chip? chip)
private static void Validate(Data.Models.Listxml.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Name);
@@ -543,7 +544,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Display
/// </summary>
private static void Validate(Models.Listxml.Display? display)
private static void Validate(Data.Models.Listxml.Display? display)
{
Assert.NotNull(display);
Assert.Equal("XXXXXX", display.Tag);
@@ -565,7 +566,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.Listxml.Video? video)
private static void Validate(Data.Models.Listxml.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -580,7 +581,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.Listxml.Sound? sound)
private static void Validate(Data.Models.Listxml.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -589,7 +590,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.Listxml.Input? input)
private static void Validate(Data.Models.Listxml.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Service);
@@ -607,7 +608,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Control
/// </summary>
private static void Validate(Models.Listxml.Control? control)
private static void Validate(Data.Models.Listxml.Control? control)
{
Assert.NotNull(control);
Assert.Equal("XXXXXX", control.Type);
@@ -627,7 +628,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.Listxml.DipSwitch? dipswitch)
private static void Validate(Data.Models.Listxml.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -647,7 +648,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Condition
/// </summary>
private static void Validate(Models.Listxml.Condition? condition)
private static void Validate(Data.Models.Listxml.Condition? condition)
{
Assert.NotNull(condition);
Assert.Equal("XXXXXX", condition.Tag);
@@ -659,7 +660,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipLocation
/// </summary>
private static void Validate(Models.Listxml.DipLocation? diplocation)
private static void Validate(Data.Models.Listxml.DipLocation? diplocation)
{
Assert.NotNull(diplocation);
Assert.Equal("XXXXXX", diplocation.Name);
@@ -670,7 +671,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.Listxml.DipValue? dipvalue)
private static void Validate(Data.Models.Listxml.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);
@@ -682,7 +683,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.Listxml.Configuration? configuration)
private static void Validate(Data.Models.Listxml.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.Name);
@@ -702,7 +703,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ConfLocation
/// </summary>
private static void Validate(Models.Listxml.ConfLocation? conflocation)
private static void Validate(Data.Models.Listxml.ConfLocation? conflocation)
{
Assert.NotNull(conflocation);
Assert.Equal("XXXXXX", conflocation.Name);
@@ -713,7 +714,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a ConfSetting
/// </summary>
private static void Validate(Models.Listxml.ConfSetting? confsetting)
private static void Validate(Data.Models.Listxml.ConfSetting? confsetting)
{
Assert.NotNull(confsetting);
Assert.Equal("XXXXXX", confsetting.Name);
@@ -725,7 +726,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Port
/// </summary>
private static void Validate(Models.Listxml.Port? port)
private static void Validate(Data.Models.Listxml.Port? port)
{
Assert.NotNull(port);
Assert.Equal("XXXXXX", port.Tag);
@@ -738,7 +739,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Analog
/// </summary>
private static void Validate(Models.Listxml.Analog? analog)
private static void Validate(Data.Models.Listxml.Analog? analog)
{
Assert.NotNull(analog);
Assert.Equal("XXXXXX", analog.Mask);
@@ -747,7 +748,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Adjuster
/// </summary>
private static void Validate(Models.Listxml.Adjuster? adjuster)
private static void Validate(Data.Models.Listxml.Adjuster? adjuster)
{
Assert.NotNull(adjuster);
Assert.Equal("XXXXXX", adjuster.Name);
@@ -758,7 +759,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Listxml.Driver? driver)
private static void Validate(Data.Models.Listxml.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -777,7 +778,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.Listxml.Feature? feature)
private static void Validate(Data.Models.Listxml.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Type);
@@ -788,7 +789,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Device
/// </summary>
private static void Validate(Models.Listxml.Device? device)
private static void Validate(Data.Models.Listxml.Device? device)
{
Assert.NotNull(device);
Assert.Equal("XXXXXX", device.Type);
@@ -806,7 +807,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Instance
/// </summary>
private static void Validate(Models.Listxml.Instance? instance)
private static void Validate(Data.Models.Listxml.Instance? instance)
{
Assert.NotNull(instance);
Assert.Equal("XXXXXX", instance.Name);
@@ -816,7 +817,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Extension
/// </summary>
private static void Validate(Models.Listxml.Extension? extension)
private static void Validate(Data.Models.Listxml.Extension? extension)
{
Assert.NotNull(extension);
Assert.Equal("XXXXXX", extension.Name);
@@ -825,7 +826,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Slot
/// </summary>
private static void Validate(Models.Listxml.Slot? slot)
private static void Validate(Data.Models.Listxml.Slot? slot)
{
Assert.NotNull(slot);
Assert.Equal("XXXXXX", slot.Name);
@@ -838,7 +839,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SlotOption
/// </summary>
private static void Validate(Models.Listxml.SlotOption? slotoption)
private static void Validate(Data.Models.Listxml.SlotOption? slotoption)
{
Assert.NotNull(slotoption);
Assert.Equal("XXXXXX", slotoption.Name);
@@ -849,7 +850,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Listxml.SoftwareList? softwarelist)
private static void Validate(Data.Models.Listxml.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);
@@ -861,7 +862,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a RamOption
/// </summary>
private static void Validate(Models.Listxml.RamOption? ramoption)
private static void Validate(Data.Models.Listxml.RamOption? ramoption)
{
Assert.NotNull(ramoption);
Assert.Equal("XXXXXX", ramoption.Name);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.OfflineList();
var serializer = new OfflineList();
// Build the data
Models.OfflineList.Dat dat = Build();
Data.Models.OfflineList.Dat dat = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(dat);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(dat);
Assert.NotNull(metadata);
// Serialize back to original model
Models.OfflineList.Dat? newDat = serializer.Deserialize(metadata);
Data.Models.OfflineList.Dat? newDat = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newDat);
@@ -31,89 +32,89 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.OfflineList.Dat Build()
private static Data.Models.OfflineList.Dat Build()
{
var infos = new Models.OfflineList.Infos
var infos = new Data.Models.OfflineList.Infos
{
Title = new Models.OfflineList.Title
Title = new Data.Models.OfflineList.Title
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Location = new Models.OfflineList.Location
Location = new Data.Models.OfflineList.Location
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Publisher = new Models.OfflineList.Publisher
Publisher = new Data.Models.OfflineList.Publisher
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
SourceRom = new Models.OfflineList.SourceRom
SourceRom = new Data.Models.OfflineList.SourceRom
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
SaveType = new Models.OfflineList.SaveType
SaveType = new Data.Models.OfflineList.SaveType
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
RomSize = new Models.OfflineList.RomSize
RomSize = new Data.Models.OfflineList.RomSize
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
ReleaseNumber = new Models.OfflineList.ReleaseNumber
ReleaseNumber = new Data.Models.OfflineList.ReleaseNumber
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
ImageNumber = new Models.OfflineList.ImageNumber
ImageNumber = new Data.Models.OfflineList.ImageNumber
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
LanguageNumber = new Models.OfflineList.LanguageNumber
LanguageNumber = new Data.Models.OfflineList.LanguageNumber
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Comment = new Models.OfflineList.Comment
Comment = new Data.Models.OfflineList.Comment
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
RomCRC = new Models.OfflineList.RomCRC
RomCRC = new Data.Models.OfflineList.RomCRC
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Im1CRC = new Models.OfflineList.Im1CRC
Im1CRC = new Data.Models.OfflineList.Im1CRC
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Im2CRC = new Models.OfflineList.Im2CRC
Im2CRC = new Data.Models.OfflineList.Im2CRC
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Languages = new Models.OfflineList.Languages
Languages = new Data.Models.OfflineList.Languages
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
@@ -121,32 +122,32 @@ namespace SabreTools.Serialization.Test.CrossModel
},
};
var canopen = new Models.OfflineList.CanOpen
var canopen = new Data.Models.OfflineList.CanOpen
{
Extension = ["XXXXXX"],
};
var daturl = new Models.OfflineList.DatUrl
var daturl = new Data.Models.OfflineList.DatUrl
{
FileName = "XXXXXX",
Content = "XXXXXX",
};
var newdat = new Models.OfflineList.NewDat
var newdat = new Data.Models.OfflineList.NewDat
{
DatVersionUrl = "XXXXXX",
DatUrl = daturl,
ImUrl = "XXXXXX",
};
var find = new Models.OfflineList.Find
var find = new Data.Models.OfflineList.Find
{
Operation = "XXXXXX",
Value = "XXXXXX",
Content = "XXXXXX",
};
var to = new Models.OfflineList.To
var to = new Data.Models.OfflineList.To
{
Value = "XXXXXX",
Default = "XXXXXX",
@@ -154,12 +155,12 @@ namespace SabreTools.Serialization.Test.CrossModel
Find = [find],
};
var search = new Models.OfflineList.Search
var search = new Data.Models.OfflineList.Search
{
To = [to],
};
var configuration = new Models.OfflineList.Configuration
var configuration = new Data.Models.OfflineList.Configuration
{
DatName = "XXXXXX",
ImFolder = "XXXXXX",
@@ -174,18 +175,18 @@ namespace SabreTools.Serialization.Test.CrossModel
RomTitle = "XXXXXX",
};
var fileromcrc = new Models.OfflineList.FileRomCRC
var fileromcrc = new Data.Models.OfflineList.FileRomCRC
{
Extension = "XXXXXX",
Content = "XXXXXX",
};
var files = new Models.OfflineList.Files
var files = new Data.Models.OfflineList.Files
{
RomCRC = [fileromcrc],
};
var game = new Models.OfflineList.Game
var game = new Data.Models.OfflineList.Game
{
ImageNumber = "XXXXXX",
ReleaseNumber = "XXXXXX",
@@ -203,12 +204,12 @@ namespace SabreTools.Serialization.Test.CrossModel
DuplicateID = "XXXXXX",
};
var games = new Models.OfflineList.Games
var games = new Data.Models.OfflineList.Games
{
Game = [game],
};
var image = new Models.OfflineList.Image
var image = new Data.Models.OfflineList.Image
{
X = "XXXXXX",
Y = "XXXXXX",
@@ -216,19 +217,19 @@ namespace SabreTools.Serialization.Test.CrossModel
Height = "XXXXXX",
};
var images = new Models.OfflineList.Images
var images = new Data.Models.OfflineList.Images
{
Width = "XXXXXX",
Height = "XXXXXX",
Image = [image],
};
var gui = new Models.OfflineList.GUI
var gui = new Data.Models.OfflineList.GUI
{
Images = images,
};
return new Models.OfflineList.Dat
return new Data.Models.OfflineList.Dat
{
NoNamespaceSchemaLocation = "XXXXXX",
Configuration = configuration,
@@ -240,7 +241,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.OfflineList.Configuration? configuration)
private static void Validate(Data.Models.OfflineList.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.DatName);
@@ -259,7 +260,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Infos
/// </summary>
private static void Validate(Models.OfflineList.Infos? infos)
private static void Validate(Data.Models.OfflineList.Infos? infos)
{
Assert.NotNull(infos);
Validate(infos.Title);
@@ -281,7 +282,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a InfoBase
/// </summary>
private static void Validate(Models.OfflineList.InfoBase? info)
private static void Validate(Data.Models.OfflineList.InfoBase? info)
{
Assert.NotNull(info);
Assert.Equal("XXXXXX", info.Visible);
@@ -292,7 +293,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a CanOpen
/// </summary>
private static void Validate(Models.OfflineList.CanOpen? canopen)
private static void Validate(Data.Models.OfflineList.CanOpen? canopen)
{
Assert.NotNull(canopen);
Assert.NotNull(canopen.Extension);
@@ -303,7 +304,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a NewDat
/// </summary>
private static void Validate(Models.OfflineList.NewDat? newdat)
private static void Validate(Data.Models.OfflineList.NewDat? newdat)
{
Assert.NotNull(newdat);
Assert.Equal("XXXXXX", newdat.DatVersionUrl);
@@ -314,7 +315,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DatUrl
/// </summary>
private static void Validate(Models.OfflineList.DatUrl? daturl)
private static void Validate(Data.Models.OfflineList.DatUrl? daturl)
{
Assert.NotNull(daturl);
Assert.Equal("XXXXXX", daturl.FileName);
@@ -324,7 +325,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Search
/// </summary>
private static void Validate(Models.OfflineList.Search? search)
private static void Validate(Data.Models.OfflineList.Search? search)
{
Assert.NotNull(search);
Assert.NotNull(search.To);
@@ -335,7 +336,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a To
/// </summary>
private static void Validate(Models.OfflineList.To? to)
private static void Validate(Data.Models.OfflineList.To? to)
{
Assert.NotNull(to);
Assert.Equal("XXXXXX", to.Value);
@@ -350,7 +351,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Find
/// </summary>
private static void Validate(Models.OfflineList.Find? find)
private static void Validate(Data.Models.OfflineList.Find? find)
{
Assert.NotNull(find);
Assert.Equal("XXXXXX", find.Operation);
@@ -361,7 +362,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Games
/// </summary>
private static void Validate(Models.OfflineList.Games? games)
private static void Validate(Data.Models.OfflineList.Games? games)
{
Assert.NotNull(games);
Assert.NotNull(games.Game);
@@ -372,7 +373,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Game
/// </summary>
private static void Validate(Models.OfflineList.Game? game)
private static void Validate(Data.Models.OfflineList.Game? game)
{
Assert.NotNull(game);
Assert.Equal("XXXXXX", game.ImageNumber);
@@ -394,7 +395,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Files
/// </summary>
private static void Validate(Models.OfflineList.Files? files)
private static void Validate(Data.Models.OfflineList.Files? files)
{
Assert.NotNull(files);
Assert.NotNull(files.RomCRC);
@@ -405,7 +406,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a FileRomCRC
/// </summary>
private static void Validate(Models.OfflineList.FileRomCRC? fileromcrc)
private static void Validate(Data.Models.OfflineList.FileRomCRC? fileromcrc)
{
Assert.NotNull(fileromcrc);
Assert.Equal("XXXXXX", fileromcrc.Extension);
@@ -415,7 +416,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a GUI
/// </summary>
private static void Validate(Models.OfflineList.GUI? gui)
private static void Validate(Data.Models.OfflineList.GUI? gui)
{
Assert.NotNull(gui);
Validate(gui.Images);
@@ -424,7 +425,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Images
/// </summary>
private static void Validate(Models.OfflineList.Images? images)
private static void Validate(Data.Models.OfflineList.Images? images)
{
Assert.NotNull(images);
Assert.Equal("XXXXXX", images.Width);
@@ -438,7 +439,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Image
/// </summary>
private static void Validate(Models.OfflineList.Image? image)
private static void Validate(Data.Models.OfflineList.Image? image)
{
Assert.NotNull(image);
Assert.Equal("XXXXXX", image.X);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.OpenMSX();
var serializer = new OpenMSX();
// Build the data
Models.OpenMSX.SoftwareDb sdb = Build();
Data.Models.OpenMSX.SoftwareDb sdb = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(sdb);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(sdb);
Assert.NotNull(metadata);
// Serialize back to original model
Models.OpenMSX.SoftwareDb? newSdb = serializer.Deserialize(metadata);
Data.Models.OpenMSX.SoftwareDb? newSdb = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newSdb);
@@ -32,15 +33,15 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.OpenMSX.SoftwareDb Build()
private static Data.Models.OpenMSX.SoftwareDb Build()
{
var original = new Models.OpenMSX.Original
var original = new Data.Models.OpenMSX.Original
{
Value = "XXXXXX",
Content = "XXXXXX",
};
var rom = new Models.OpenMSX.Rom
var rom = new Data.Models.OpenMSX.Rom
{
Start = "XXXXXX",
Type = "XXXXXX",
@@ -48,13 +49,13 @@ namespace SabreTools.Serialization.Test.CrossModel
Remark = "XXXXXX",
};
var dump_rom = new Models.OpenMSX.Dump
var dump_rom = new Data.Models.OpenMSX.Dump
{
Original = original,
Rom = rom,
};
var megarom = new Models.OpenMSX.MegaRom
var megarom = new Data.Models.OpenMSX.MegaRom
{
Start = "XXXXXX",
Type = "XXXXXX",
@@ -62,13 +63,13 @@ namespace SabreTools.Serialization.Test.CrossModel
Remark = "XXXXXX",
};
var dump_megarom = new Models.OpenMSX.Dump
var dump_megarom = new Data.Models.OpenMSX.Dump
{
Original = original,
Rom = megarom,
};
var sccpluscart = new Models.OpenMSX.SCCPlusCart
var sccpluscart = new Data.Models.OpenMSX.SCCPlusCart
{
Start = "XXXXXX",
Type = "XXXXXX",
@@ -76,13 +77,13 @@ namespace SabreTools.Serialization.Test.CrossModel
Remark = "XXXXXX",
};
var dump_sccpluscart = new Models.OpenMSX.Dump
var dump_sccpluscart = new Data.Models.OpenMSX.Dump
{
Original = original,
Rom = sccpluscart,
};
var software = new Models.OpenMSX.Software
var software = new Data.Models.OpenMSX.Software
{
Title = "XXXXXX",
GenMSXID = "XXXXXX",
@@ -93,7 +94,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Dump = [dump_rom, dump_megarom, dump_sccpluscart],
};
return new Models.OpenMSX.SoftwareDb
return new Data.Models.OpenMSX.SoftwareDb
{
Timestamp = "XXXXXX",
Software = [software],
@@ -103,7 +104,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Software
/// </summary>
private static void Validate(Models.OpenMSX.Software? software)
private static void Validate(Data.Models.OpenMSX.Software? software)
{
Assert.NotNull(software);
Assert.Equal("XXXXXX", software.Title);
@@ -124,7 +125,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Dump
/// </summary>
private static void Validate(Models.OpenMSX.Dump? dump)
private static void Validate(Data.Models.OpenMSX.Dump? dump)
{
Assert.NotNull(dump);
Validate(dump.Original);
@@ -134,7 +135,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Original
/// </summary>
private static void Validate(Models.OpenMSX.Original? original)
private static void Validate(Data.Models.OpenMSX.Original? original)
{
Assert.NotNull(original);
Assert.Equal("XXXXXX", original.Value);
@@ -144,7 +145,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a RomBase
/// </summary>
private static void Validate(Models.OpenMSX.RomBase? rombase)
private static void Validate(Data.Models.OpenMSX.RomBase? rombase)
{
Assert.NotNull(rombase);
Assert.Equal("XXXXXX", rombase.Start);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.RomCenter();
var serializer = new RomCenter();
// Build the data
Models.RomCenter.MetadataFile mf = Build();
Data.Models.RomCenter.MetadataFile mf = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.RomCenter.MetadataFile? newMf = serializer.Deserialize(metadata);
Data.Models.RomCenter.MetadataFile? newMf = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -31,9 +32,9 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.RomCenter.MetadataFile Build()
private static Data.Models.RomCenter.MetadataFile Build()
{
var credits = new Models.RomCenter.Credits
var credits = new Data.Models.RomCenter.Credits
{
Author = "XXXXXX",
Version = "XXXXXX",
@@ -44,7 +45,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Comment = "XXXXXX",
};
var dat = new Models.RomCenter.Dat
var dat = new Data.Models.RomCenter.Dat
{
Version = "XXXXXX",
Plugin = "XXXXXX",
@@ -52,13 +53,13 @@ namespace SabreTools.Serialization.Test.CrossModel
Merge = "XXXXXX",
};
var emulator = new Models.RomCenter.Emulator
var emulator = new Data.Models.RomCenter.Emulator
{
RefName = "XXXXXX",
Version = "XXXXXX",
};
var rom = new Models.RomCenter.Rom
var rom = new Data.Models.RomCenter.Rom
{
ParentName = "XXXXXX",
ParentDescription = "XXXXXX",
@@ -71,12 +72,12 @@ namespace SabreTools.Serialization.Test.CrossModel
MergeName = "XXXXXX",
};
var games = new Models.RomCenter.Games
var games = new Data.Models.RomCenter.Games
{
Rom = [rom],
};
return new Models.RomCenter.MetadataFile
return new Data.Models.RomCenter.MetadataFile
{
Credits = credits,
Dat = dat,
@@ -88,7 +89,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Credits
/// </summary>
private static void Validate(Models.RomCenter.Credits? credits)
private static void Validate(Data.Models.RomCenter.Credits? credits)
{
Assert.NotNull(credits);
Assert.Equal("XXXXXX", credits.Author);
@@ -103,7 +104,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Dat
/// </summary>
private static void Validate(Models.RomCenter.Dat? dat)
private static void Validate(Data.Models.RomCenter.Dat? dat)
{
Assert.NotNull(dat);
Assert.Equal("XXXXXX", dat.Version);
@@ -115,7 +116,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Emulator
/// </summary>
private static void Validate(Models.RomCenter.Emulator? emulator)
private static void Validate(Data.Models.RomCenter.Emulator? emulator)
{
Assert.NotNull(emulator);
Assert.Equal("XXXXXX", emulator.RefName);
@@ -125,7 +126,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Games
/// </summary>
private static void Validate(Models.RomCenter.Games? games)
private static void Validate(Data.Models.RomCenter.Games? games)
{
Assert.NotNull(games);
Assert.NotNull(games.Rom);
@@ -136,7 +137,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.RomCenter.Rom? rom)
private static void Validate(Data.Models.RomCenter.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.ParentName);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.SeparatedValue();
var serializer = new SeparatedValue();
// Build the data
Models.SeparatedValue.MetadataFile mf = Build();
Data.Models.SeparatedValue.MetadataFile mf = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.SeparatedValue.MetadataFile? newMf = serializer.Deserialize(metadata);
Data.Models.SeparatedValue.MetadataFile? newMf = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -34,11 +35,11 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.SeparatedValue.MetadataFile Build()
private static Data.Models.SeparatedValue.MetadataFile Build()
{
string[] header = ["header"];
var disk = new Models.SeparatedValue.Row
var disk = new Data.Models.SeparatedValue.Row
{
FileName = "XXXXXX",
InternalName = "XXXXXX",
@@ -52,7 +53,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Status = "XXXXXX",
};
var media = new Models.SeparatedValue.Row
var media = new Data.Models.SeparatedValue.Row
{
FileName = "XXXXXX",
InternalName = "XXXXXX",
@@ -67,7 +68,7 @@ namespace SabreTools.Serialization.Test.CrossModel
SpamSum = "XXXXXX",
};
var rom = new Models.SeparatedValue.Row
var rom = new Data.Models.SeparatedValue.Row
{
FileName = "XXXXXX",
InternalName = "XXXXXX",
@@ -87,7 +88,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Status = "XXXXXX",
};
return new Models.SeparatedValue.MetadataFile
return new Data.Models.SeparatedValue.MetadataFile
{
Header = header,
Row = [disk, media, rom],
@@ -107,7 +108,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateDisk(Models.SeparatedValue.Row? row)
private static void ValidateDisk(Data.Models.SeparatedValue.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.FileName);
@@ -132,7 +133,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateMedia(Models.SeparatedValue.Row? row)
private static void ValidateMedia(Data.Models.SeparatedValue.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.FileName);
@@ -157,7 +158,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateRom(Models.SeparatedValue.Row? row)
private static void ValidateRom(Data.Models.SeparatedValue.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.FileName);

View File

@@ -1,3 +1,4 @@
using SabreTools.Serialization.CrossModel;
using Xunit;
namespace SabreTools.Serialization.Test.CrossModel
@@ -8,17 +9,17 @@ namespace SabreTools.Serialization.Test.CrossModel
public void RoundTripTest()
{
// Get the cross-model serializer
var serializer = new Serialization.CrossModel.SoftwareList();
var serializer = new SoftwareList();
// Build the data
Models.SoftwareList.SoftwareList sl = Build();
Data.Models.SoftwareList.SoftwareList sl = Build();
// Serialize to generic model
Models.Metadata.MetadataFile? metadata = serializer.Serialize(sl);
Data.Models.Metadata.MetadataFile? metadata = serializer.Serialize(sl);
Assert.NotNull(metadata);
// Serialize back to original model
Models.SoftwareList.SoftwareList? newSl = serializer.Deserialize(metadata);
Data.Models.SoftwareList.SoftwareList? newSl = serializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newSl);
@@ -34,27 +35,27 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.SoftwareList.SoftwareList Build()
private static Data.Models.SoftwareList.SoftwareList Build()
{
var info = new Models.SoftwareList.Info
var info = new Data.Models.SoftwareList.Info
{
Name = "XXXXXX",
Value = "XXXXXX",
};
var sharedfeat = new Models.SoftwareList.SharedFeat
var sharedfeat = new Data.Models.SoftwareList.SharedFeat
{
Name = "XXXXXX",
Value = "XXXXXX",
};
var feature = new Models.SoftwareList.Feature
var feature = new Data.Models.SoftwareList.Feature
{
Name = "XXXXXX",
Value = "XXXXXX",
};
var rom = new Models.SoftwareList.Rom
var rom = new Data.Models.SoftwareList.Rom
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -67,7 +68,7 @@ namespace SabreTools.Serialization.Test.CrossModel
LoadFlag = "XXXXXX",
};
var dataarea = new Models.SoftwareList.DataArea
var dataarea = new Data.Models.SoftwareList.DataArea
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -76,7 +77,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Rom = [rom],
};
var disk = new Models.SoftwareList.Disk
var disk = new Data.Models.SoftwareList.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -85,20 +86,20 @@ namespace SabreTools.Serialization.Test.CrossModel
Writeable = "XXXXXX",
};
var diskarea = new Models.SoftwareList.DiskArea
var diskarea = new Data.Models.SoftwareList.DiskArea
{
Name = "XXXXXX",
Disk = [disk],
};
var dipvalue = new Models.SoftwareList.DipValue
var dipvalue = new Data.Models.SoftwareList.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
Default = "XXXXXX",
};
var dipswitch = new Models.SoftwareList.DipSwitch
var dipswitch = new Data.Models.SoftwareList.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -106,7 +107,7 @@ namespace SabreTools.Serialization.Test.CrossModel
DipValue = [dipvalue],
};
var part = new Models.SoftwareList.Part
var part = new Data.Models.SoftwareList.Part
{
Name = "XXXXXX",
Interface = "XXXXXX",
@@ -116,7 +117,7 @@ namespace SabreTools.Serialization.Test.CrossModel
DipSwitch = [dipswitch],
};
var software = new Models.SoftwareList.Software
var software = new Data.Models.SoftwareList.Software
{
Name = "XXXXXX",
CloneOf = "XXXXXX",
@@ -130,7 +131,7 @@ namespace SabreTools.Serialization.Test.CrossModel
Part = [part],
};
return new Models.SoftwareList.SoftwareList
return new Data.Models.SoftwareList.SoftwareList
{
Name = "XXXXXX",
Description = "XXXXXX",
@@ -142,7 +143,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Software
/// </summary>
private static void Validate(Models.SoftwareList.Software? software)
private static void Validate(Data.Models.SoftwareList.Software? software)
{
Assert.NotNull(software);
Assert.Equal("XXXXXX", software.Name);
@@ -169,7 +170,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Info
/// </summary>
private static void Validate(Models.SoftwareList.Info? info)
private static void Validate(Data.Models.SoftwareList.Info? info)
{
Assert.NotNull(info);
Assert.Equal("XXXXXX", info.Name);
@@ -179,7 +180,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a SharedFeat
/// </summary>
private static void Validate(Models.SoftwareList.SharedFeat? sharedfeat)
private static void Validate(Data.Models.SoftwareList.SharedFeat? sharedfeat)
{
Assert.NotNull(sharedfeat);
Assert.Equal("XXXXXX", sharedfeat.Name);
@@ -189,7 +190,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Part
/// </summary>
private static void Validate(Models.SoftwareList.Part? part)
private static void Validate(Data.Models.SoftwareList.Part? part)
{
Assert.NotNull(part);
Assert.Equal("XXXXXX", part.Name);
@@ -215,7 +216,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.SoftwareList.Feature? feature)
private static void Validate(Data.Models.SoftwareList.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Name);
@@ -225,7 +226,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DataArea
/// </summary>
private static void Validate(Models.SoftwareList.DataArea? dataarea)
private static void Validate(Data.Models.SoftwareList.DataArea? dataarea)
{
Assert.NotNull(dataarea);
Assert.Equal("XXXXXX", dataarea.Name);
@@ -241,7 +242,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.SoftwareList.Rom? rom)
private static void Validate(Data.Models.SoftwareList.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -258,7 +259,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DiskArea
/// </summary>
private static void Validate(Models.SoftwareList.DiskArea? diskarea)
private static void Validate(Data.Models.SoftwareList.DiskArea? diskarea)
{
Assert.NotNull(diskarea);
Assert.Equal("XXXXXX", diskarea.Name);
@@ -271,7 +272,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.SoftwareList.Disk? disk)
private static void Validate(Data.Models.SoftwareList.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -284,7 +285,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.SoftwareList.DipSwitch? dipswitch)
private static void Validate(Data.Models.SoftwareList.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -299,7 +300,7 @@ namespace SabreTools.Serialization.Test.CrossModel
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.SoftwareList.DipValue? dipvalue)
private static void Validate(Data.Models.SoftwareList.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);

View File

@@ -0,0 +1,213 @@
using System;
using SabreTools.Data.Extensions;
using SabreTools.Data.Models.ASN1;
using Xunit;
namespace SabreTools.Serialization.Test.Extensions
{
public class TypeLengthValueTests
{
#region Formatting
[Fact]
public void Format_EOC()
{
string expected = "Type: V_ASN1_EOC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_EOC, Length = 0, Value = null };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ZeroLength()
{
string expected = "Type: V_ASN1_NULL, Length: 0";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_NULL, Length = 0, Value = null };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_InvalidConstructed()
{
string expected = "Type: V_ASN1_OBJECT, V_ASN1_CONSTRUCTED, Length: 1, Value: [INVALID DATA TYPE]";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT | ASN1Type.V_ASN1_CONSTRUCTED, Length = 1, Value = (object?)false };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidConstructed()
{
string expected = "Type: V_ASN1_OBJECT, V_ASN1_CONSTRUCTED, Length: 3, Value:\n Type: V_ASN1_BOOLEAN, Length: 1, Value: True";
var boolTlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 1, Value = new byte[] { 0x01 } };
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT | ASN1Type.V_ASN1_CONSTRUCTED, Length = 3, Value = new Data.Models.ASN1.TypeLengthValue[] { boolTlv } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_InvalidDataType()
{
string expected = "Type: V_ASN1_OBJECT, Length: 1, Value: [INVALID DATA TYPE]";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT, Length = 1, Value = (object?)false };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_InvalidLength()
{
string expected = "Type: V_ASN1_NULL, Length: 1, Value: [NO DATA]";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_NULL, Length = 1, Value = Array.Empty<byte>() };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_InvalidBooleanLength()
{
string expected = "Type: V_ASN1_BOOLEAN, Length: 2 [Expected length of 1], Value: True";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 2, Value = new byte[] { 0x01 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_InvalidBooleanArrayLength()
{
string expected = "Type: V_ASN1_BOOLEAN, Length: 1 [Expected value length of 1], Value: True";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 1, Value = new byte[] { 0x01, 0x00 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidBoolean()
{
string expected = "Type: V_ASN1_BOOLEAN, Length: 1, Value: True";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 1, Value = new byte[] { 0x01 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidInteger()
{
string expected = "Type: V_ASN1_INTEGER, Length: 1, Value: 1";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_INTEGER, Length = 1, Value = new byte[] { 0x01 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidBitString_NoBits()
{
string expected = "Type: V_ASN1_BIT_STRING, Length: 1, Value with 0 unused bits";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BIT_STRING, Length = 1, Value = new byte[] { 0x00 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidBitString_Bits()
{
string expected = "Type: V_ASN1_BIT_STRING, Length: 1, Value with 1 unused bits: 01";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BIT_STRING, Length = 1, Value = new byte[] { 0x01, 0x01 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidOctetString()
{
string expected = "Type: V_ASN1_OCTET_STRING, Length: 1, Value: 01";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OCTET_STRING, Length = 1, Value = new byte[] { 0x01 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidObject()
{
string expected = "Type: V_ASN1_OBJECT, Length: 3, Value: 0.1.2.3 (/ITU-T/1/2/3)";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT, Length = 3, Value = new byte[] { 0x01, 0x02, 0x03 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidUTF8String()
{
string expected = "Type: V_ASN1_UTF8STRING, Length: 3, Value: ABC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_UTF8STRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidPrintableString()
{
string expected = "Type: V_ASN1_PRINTABLESTRING, Length: 3, Value: ABC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_PRINTABLESTRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidTeletexString()
{
string expected = "Type: V_ASN1_TELETEXSTRING, Length: 3, Value: ABC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_TELETEXSTRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidIA5String()
{
string expected = "Type: V_ASN1_IA5STRING, Length: 3, Value: ABC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_IA5STRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_InvalidUTCTime()
{
string expected = "Type: V_ASN1_UTCTIME, Length: 3, Value: ABC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_UTCTIME, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidUTCTime()
{
string expected = "Type: V_ASN1_UTCTIME, Length: 3, Value: 1980-01-01 00:00:00";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_UTCTIME, Length = 3, Value = new byte[] { 0x31, 0x39, 0x38, 0x30, 0x2D, 0x30, 0x31, 0x2D, 0x30, 0x31, 0x20, 0x30, 0x30, 0x3A, 0x30, 0x30, 0x3A, 0x30, 0x30 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidBmpString()
{
string expected = "Type: V_ASN1_BMPSTRING, Length: 6, Value: ABC";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BMPSTRING, Length = 6, Value = new byte[] { 0x41, 0x00, 0x42, 0x00, 0x43, 0x00 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
[Fact]
public void Format_ValidUnformatted()
{
string expected = "Type: V_ASN1_OBJECT_DESCRIPTOR, Length: 1, Value: 01";
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT_DESCRIPTOR, Length = 1, Value = new byte[] { 0x01 } };
string actual = tlv.Format();
Assert.Equal(expected, actual);
}
#endregion
}
}

View File

@@ -0,0 +1,111 @@
using SabreTools.Data.ObjectIdentifier;
using Xunit;
namespace SabreTools.Serialization.Test.ObjectIdentifier
{
// These tests are known to be incomplete due to the sheer number
// of possible OIDs that exist. The tests below are a minimal
// representation of functionality to guarantee proper behavior
// not necessarily absolute outputs
public class ParserTests
{
#region ASN.1
[Fact]
public void ASN1Notation_AlwaysNull()
{
ulong[]? values = null;
string? actual = Parser.ParseOIDToASN1Notation(values);
Assert.Null(actual);
}
#endregion
#region Dot Notation
[Fact]
public void DotNotation_NullValues_Null()
{
ulong[]? values = null;
string? actual = Parser.ParseOIDToDotNotation(values);
Assert.Null(actual);
}
[Fact]
public void DotNotation_EmptyValues_Null()
{
ulong[]? values = [];
string? actual = Parser.ParseOIDToDotNotation(values);
Assert.Null(actual);
}
[Fact]
public void DotNotation_Values_Formatted()
{
string expected = "0.1.2.3";
ulong[]? values = [0, 1, 2, 3];
string? actual = Parser.ParseOIDToDotNotation(values);
Assert.Equal(expected, actual);
}
#endregion
#region Modified OID-IRI
[Fact]
public void ModifiedOIDIRI_NullValues_Null()
{
ulong[]? values = null;
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
Assert.Null(actual);
}
[Fact]
public void ModifiedOIDIRI_EmptyValues_Null()
{
ulong[]? values = [];
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
Assert.Null(actual);
}
[Fact]
public void ModifiedOIDIRI_Values_Formatted()
{
string expected = "/ITU-T/[question]/2/3";
ulong[]? values = [0, 1, 2, 3];
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
Assert.Equal(expected, actual);
}
#endregion
#region OID-IRI
[Fact]
public void OIDIRI_NullValues_Null()
{
ulong[]? values = null;
string? actual = Parser.ParseOIDToOIDIRINotation(values);
Assert.Null(actual);
}
[Fact]
public void OIDIRI_EmptyValues_Null()
{
ulong[]? values = [];
string? actual = Parser.ParseOIDToOIDIRINotation(values);
Assert.Null(actual);
}
[Fact]
public void OIDIRI_Values_Formatted()
{
string expected = "/ITU-T/1/2/3";
ulong[]? values = [0, 1, 2, 3];
string? actual = Parser.ParseOIDToOIDIRINotation(values);
Assert.Equal(expected, actual);
}
#endregion
}
}

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class AACSTests
{

View File

@@ -0,0 +1,152 @@
using System.IO;
using System.Linq;
using SabreTools.Data.Models.ASN1;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Readers
{
public class AbstractSyntaxNotationOneTests
{
[Fact]
public void NullArray_Null()
{
byte[]? data = null;
int offset = 0;
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void EmptyArray_Null()
{
byte[]? data = [];
int offset = 0;
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void InvalidArray_Null()
{
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
int offset = 0;
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void NullStream_Null()
{
Stream? data = null;
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void EmptyStream_Null()
{
Stream? data = new MemoryStream([]);
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void InvalidStream_Null()
{
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void ValidMinimalStream_NotNull()
{
Stream data = new MemoryStream([0x00]);
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.NotNull(actual);
var actualSingle = Assert.Single(actual);
Assert.Equal(ASN1Type.V_ASN1_EOC, actualSingle.Type);
Assert.Equal(default, actualSingle.Length);
Assert.Null(actualSingle.Value);
}
[Fact]
public void ValidBoolean_NotNull()
{
Stream data = new MemoryStream([0x01, 0x01, 0x01]);
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.NotNull(actual);
var actualSingle = Assert.Single(actual);
Assert.Equal(ASN1Type.V_ASN1_BOOLEAN, actualSingle.Type);
Assert.Equal(1UL, actualSingle.Length);
Assert.NotNull(actualSingle.Value);
byte[]? valueAsArray = actualSingle.Value as byte[];
Assert.NotNull(valueAsArray);
byte actualValue = Assert.Single(valueAsArray);
Assert.Equal(0x01, actualValue);
}
[Theory]
[InlineData(new byte[] { 0x26, 0x81, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x82, 0x00, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x83, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x84, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x85, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01 })]
[InlineData(new byte[] { 0x26, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01 })]
public void ComplexValue_NotNull(byte[] arr)
{
Stream data = new MemoryStream(arr);
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.NotNull(actual);
var actualSingle = Assert.Single(actual);
Assert.Equal(ASN1Type.V_ASN1_CONSTRUCTED | ASN1Type.V_ASN1_OBJECT, actualSingle.Type);
Assert.Equal(3UL, actualSingle.Length);
Assert.NotNull(actualSingle.Value);
TypeLengthValue[]? valueAsArray = actualSingle.Value as TypeLengthValue[];
Assert.NotNull(valueAsArray);
TypeLengthValue actualSub = Assert.Single(valueAsArray);
Assert.Equal(ASN1Type.V_ASN1_BOOLEAN, actualSub.Type);
Assert.Equal(1UL, actualSub.Length);
Assert.NotNull(actualSub.Value);
}
[Theory]
[InlineData(new byte[] { 0x26, 0x80 })]
[InlineData(new byte[] { 0x26, 0x89 })]
public void ComplexValueInvalidLength_Null(byte[] arr)
{
Stream data = new MemoryStream(arr);
var deserializer = new AbstractSyntaxNotationOne();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,73 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Readers
{
public class AdvancedInstallerTests
{
[Fact]
public void NullArray_Null()
{
byte[]? data = null;
int offset = 0;
var deserializer = new AdvancedInstaller();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void EmptyArray_Null()
{
byte[]? data = [];
int offset = 0;
var deserializer = new AdvancedInstaller();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void InvalidArray_Null()
{
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
int offset = 0;
var deserializer = new AdvancedInstaller();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void NullStream_Null()
{
Stream? data = null;
var deserializer = new AdvancedInstaller();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void EmptyStream_Null()
{
Stream? data = new MemoryStream([]);
var deserializer = new AdvancedInstaller();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void InvalidStream_Null()
{
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
var deserializer = new AdvancedInstaller();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
}
}

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class AppPkgHeaderTests
{

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class ArchiveDotOrgTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.ArchiveDotOrg();
var serializer = new Serialization.Serializers.ArchiveDotOrg();
var deserializer = new ArchiveDotOrg();
var serializer = new SabreTools.Serialization.Writers.ArchiveDotOrg();
// Build the data
Models.ArchiveDotOrg.Files files = Build();
Data.Models.ArchiveDotOrg.Files files = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(files);
Assert.NotNull(actual);
// Serialize back to original model
Models.ArchiveDotOrg.Files? newFiles = deserializer.Deserialize(actual);
Data.Models.ArchiveDotOrg.Files? newFiles = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newFiles);
@@ -98,9 +97,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.ArchiveDotOrg.Files Build()
private static Data.Models.ArchiveDotOrg.Files Build()
{
var file = new Models.ArchiveDotOrg.File
var file = new Data.Models.ArchiveDotOrg.File
{
Name = "XXXXXX",
Source = "XXXXXX",
@@ -164,7 +163,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Width = "XXXXXX",
};
return new Models.ArchiveDotOrg.Files
return new Data.Models.ArchiveDotOrg.Files
{
File = [file]
};
@@ -173,7 +172,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a File
/// </summary>
private static void Validate(Models.ArchiveDotOrg.File? file)
private static void Validate(Data.Models.ArchiveDotOrg.File? file)
{
Assert.NotNull(file);
Assert.Equal("XXXXXX", file.Name);

View File

@@ -1,10 +1,10 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class AttractModeTests
{
@@ -75,18 +75,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripShortTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.AttractMode();
var serializer = new Serialization.Serializers.AttractMode();
var deserializer = new AttractMode();
var serializer = new SabreTools.Serialization.Writers.AttractMode();
// Build the data
Models.AttractMode.MetadataFile mf = Build();
Data.Models.AttractMode.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(mf, longHeader: false);
Stream? actual = serializer.SerializeStream(mf, longHeader: false);
Assert.NotNull(actual);
// Serialize back to original model
Models.AttractMode.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.AttractMode.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -100,18 +100,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripLongTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.AttractMode();
var serializer = new Serialization.Serializers.AttractMode();
var deserializer = new AttractMode();
var serializer = new SabreTools.Serialization.Writers.AttractMode();
// Build the data
Models.AttractMode.MetadataFile mf = Build();
Data.Models.AttractMode.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(mf, longHeader: true);
Stream? actual = serializer.SerializeStream(mf, longHeader: true);
Assert.NotNull(actual);
// Serialize back to original model
Models.AttractMode.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.AttractMode.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -124,11 +124,11 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.AttractMode.MetadataFile Build()
private static Data.Models.AttractMode.MetadataFile Build()
{
string[] header = ["header"];
var row = new Models.AttractMode.Row
var row = new Data.Models.AttractMode.Row
{
Name = "XXXXXX",
Title = "XXXXXX",
@@ -154,7 +154,7 @@ namespace SabreTools.Serialization.Test.Deserializers
FileIsAvailable = "XXXXXX",
};
return new Models.AttractMode.MetadataFile
return new Data.Models.AttractMode.MetadataFile
{
Header = header,
Row = [row],
@@ -168,15 +168,15 @@ namespace SabreTools.Serialization.Test.Deserializers
{
Assert.NotNull(header);
if (longHeader)
Assert.True(Serialization.Serializers.AttractMode.HeaderArrayWithRomname.SequenceEqual(header));
Assert.True(SabreTools.Serialization.Writers.AttractMode.HeaderArrayWithRomname.SequenceEqual(header));
else
Assert.True(Serialization.Serializers.AttractMode.HeaderArrayWithoutRomname.SequenceEqual(header));
Assert.True(SabreTools.Serialization.Writers.AttractMode.HeaderArrayWithoutRomname.SequenceEqual(header));
}
/// <summary>
/// Validate a Row
/// </summary>
private static void Validate(Models.AttractMode.Row? row, bool longHeader)
private static void Validate(Data.Models.AttractMode.Row? row, bool longHeader)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class BDPlusTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class BFPKTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class BSPTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class CFBTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class CHDTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class CIATests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class CatalogTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class ClrMameProTests
{
@@ -74,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripGameTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.ClrMamePro();
var serializer = new Serialization.Serializers.ClrMamePro();
var deserializer = new ClrMamePro();
var serializer = new SabreTools.Serialization.Writers.ClrMamePro();
// Build the data
Models.ClrMamePro.MetadataFile mf = Build(game: true);
Data.Models.ClrMamePro.MetadataFile mf = Build(game: true);
// Serialize to stream
Stream? actual = serializer.Serialize(mf);
Stream? actual = serializer.SerializeStream(mf);
Assert.NotNull(actual);
// Serialize back to original model
Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -99,18 +99,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripGameWithoutQuotesTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.ClrMamePro();
var serializer = new Serialization.Serializers.ClrMamePro();
var deserializer = new ClrMamePro();
var serializer = new SabreTools.Serialization.Writers.ClrMamePro();
// Build the data
Models.ClrMamePro.MetadataFile mf = Build(game: true);
Data.Models.ClrMamePro.MetadataFile mf = Build(game: true);
// Serialize to stream
Stream? actual = serializer.Serialize(mf, quotes: false);
Stream? actual = serializer.SerializeStream(mf, quotes: false);
Assert.NotNull(actual);
// Serialize back to original model
Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -124,18 +124,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMachineTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.ClrMamePro();
var serializer = new Serialization.Serializers.ClrMamePro();
var deserializer = new ClrMamePro();
var serializer = new SabreTools.Serialization.Writers.ClrMamePro();
// Build the data
Models.ClrMamePro.MetadataFile mf = Build(game: false);
Data.Models.ClrMamePro.MetadataFile mf = Build(game: false);
// Serialize to stream
Stream? actual = serializer.Serialize(mf);
Stream? actual = serializer.SerializeStream(mf);
Assert.NotNull(actual);
// Serialize back to original model
Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -149,18 +149,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMachineWithoutQuotesTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.ClrMamePro();
var serializer = new Serialization.Serializers.ClrMamePro();
var deserializer = new ClrMamePro();
var serializer = new SabreTools.Serialization.Writers.ClrMamePro();
// Build the data
Models.ClrMamePro.MetadataFile mf = Build(game: false);
Data.Models.ClrMamePro.MetadataFile mf = Build(game: false);
// Serialize to stream
Stream? actual = serializer.Serialize(mf, quotes: false);
Stream? actual = serializer.SerializeStream(mf, quotes: false);
Assert.NotNull(actual);
// Serialize back to original model
Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.ClrMamePro.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -173,9 +173,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.ClrMamePro.MetadataFile Build(bool game)
private static Data.Models.ClrMamePro.MetadataFile Build(bool game)
{
var cmp = new Models.ClrMamePro.ClrMamePro
var cmp = new Data.Models.ClrMamePro.ClrMamePro
{
Name = "XXXXXX",
Description = "XXXXXX",
@@ -194,7 +194,7 @@ namespace SabreTools.Serialization.Test.Deserializers
ForcePacking = "XXXXXX",
};
var release = new Models.ClrMamePro.Release
var release = new Data.Models.ClrMamePro.Release
{
Name = "XXXXXX",
Region = "XXXXXX",
@@ -203,19 +203,23 @@ namespace SabreTools.Serialization.Test.Deserializers
Default = "XXXXXX",
};
var biosset = new Models.ClrMamePro.BiosSet
var biosset = new Data.Models.ClrMamePro.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.ClrMamePro.Rom
var rom = new Data.Models.ClrMamePro.Rom
{
Name = "XXXXXX",
Size = "XXXXXX",
CRC = "XXXXXX",
MD2 = "XXXXXX",
MD4 = "XXXXXX",
MD5 = "XXXXXX",
RIPEMD128 = "XXXXXX",
RIPEMD160 = "XXXXXX",
SHA1 = "XXXXXX",
Merge = "XXXXXX",
Status = "XXXXXX",
@@ -235,7 +239,7 @@ namespace SabreTools.Serialization.Test.Deserializers
MIA = "XXXXXX",
};
var disk = new Models.ClrMamePro.Disk
var disk = new Data.Models.ClrMamePro.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -245,17 +249,17 @@ namespace SabreTools.Serialization.Test.Deserializers
Flags = "XXXXXX",
};
var sample = new Models.ClrMamePro.Sample
var sample = new Data.Models.ClrMamePro.Sample
{
Name = "XXXXXX",
};
var archive = new Models.ClrMamePro.Archive
var archive = new Data.Models.ClrMamePro.Archive
{
Name = "XXXXXX",
};
var media = new Models.ClrMamePro.Media
var media = new Data.Models.ClrMamePro.Media
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -264,7 +268,7 @@ namespace SabreTools.Serialization.Test.Deserializers
SpamSum = "XXXXXX",
};
var chip = new Models.ClrMamePro.Chip
var chip = new Data.Models.ClrMamePro.Chip
{
Type = "XXXXXX",
Name = "XXXXXX",
@@ -272,7 +276,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Clock = "XXXXXX",
};
var video = new Models.ClrMamePro.Video
var video = new Data.Models.ClrMamePro.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -283,12 +287,12 @@ namespace SabreTools.Serialization.Test.Deserializers
Freq = "XXXXXX",
};
var sound = new Models.ClrMamePro.Sound
var sound = new Data.Models.ClrMamePro.Sound
{
Channels = "XXXXXX",
};
var input = new Models.ClrMamePro.Input
var input = new Data.Models.ClrMamePro.Input
{
Players = "XXXXXX",
Control = "XXXXXX",
@@ -298,14 +302,14 @@ namespace SabreTools.Serialization.Test.Deserializers
Service = "XXXXXX",
};
var dipswitch = new Models.ClrMamePro.DipSwitch
var dipswitch = new Data.Models.ClrMamePro.DipSwitch
{
Name = "XXXXXX",
Entry = ["XXXXXX"],
Default = "XXXXXX",
};
var driver = new Models.ClrMamePro.Driver
var driver = new Data.Models.ClrMamePro.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -315,9 +319,9 @@ namespace SabreTools.Serialization.Test.Deserializers
};
// TODO: This omits Set, should that have a separate case?
Models.ClrMamePro.GameBase gameBase = game
? new Models.ClrMamePro.Game()
: new Models.ClrMamePro.Machine();
Data.Models.ClrMamePro.GameBase gameBase = game
? new Data.Models.ClrMamePro.Game()
: new Data.Models.ClrMamePro.Machine();
gameBase.Name = "XXXXXX";
gameBase.Description = "XXXXXX";
gameBase.Year = "XXXXXX";
@@ -340,7 +344,7 @@ namespace SabreTools.Serialization.Test.Deserializers
gameBase.DipSwitch = [dipswitch];
gameBase.Driver = driver;
return new Models.ClrMamePro.MetadataFile
return new Data.Models.ClrMamePro.MetadataFile
{
ClrMamePro = cmp,
Game = [gameBase],
@@ -350,7 +354,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ClrMamePro
/// </summary>
private static void Validate(Models.ClrMamePro.ClrMamePro? cmp)
private static void Validate(Data.Models.ClrMamePro.ClrMamePro? cmp)
{
Assert.NotNull(cmp);
Assert.Equal("XXXXXX", cmp.Name);
@@ -373,7 +377,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.ClrMamePro.GameBase? gb)
private static void Validate(Data.Models.ClrMamePro.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -434,7 +438,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Release
/// </summary>
private static void Validate(Models.ClrMamePro.Release? release)
private static void Validate(Data.Models.ClrMamePro.Release? release)
{
Assert.NotNull(release);
Assert.Equal("XXXXXX", release.Name);
@@ -447,7 +451,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.ClrMamePro.BiosSet? biosset)
private static void Validate(Data.Models.ClrMamePro.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -458,13 +462,17 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.ClrMamePro.Rom? rom)
private static void Validate(Data.Models.ClrMamePro.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
Assert.Equal("XXXXXX", rom.Size);
Assert.Equal("XXXXXX", rom.CRC);
Assert.Equal("XXXXXX", rom.MD2);
Assert.Equal("XXXXXX", rom.MD4);
Assert.Equal("XXXXXX", rom.MD5);
Assert.Equal("XXXXXX", rom.RIPEMD128);
Assert.Equal("XXXXXX", rom.RIPEMD160);
Assert.Equal("XXXXXX", rom.SHA1);
Assert.Equal("XXXXXX", rom.Merge);
Assert.Equal("XXXXXX", rom.Status);
@@ -487,7 +495,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.ClrMamePro.Disk? disk)
private static void Validate(Data.Models.ClrMamePro.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -501,7 +509,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.ClrMamePro.Sample? sample)
private static void Validate(Data.Models.ClrMamePro.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -510,7 +518,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Archive
/// </summary>
private static void Validate(Models.ClrMamePro.Archive? archive)
private static void Validate(Data.Models.ClrMamePro.Archive? archive)
{
Assert.NotNull(archive);
Assert.Equal("XXXXXX", archive.Name);
@@ -519,7 +527,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Media
/// </summary>
private static void Validate(Models.ClrMamePro.Media? media)
private static void Validate(Data.Models.ClrMamePro.Media? media)
{
Assert.NotNull(media);
Assert.Equal("XXXXXX", media.Name);
@@ -532,7 +540,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.ClrMamePro.Chip? chip)
private static void Validate(Data.Models.ClrMamePro.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Type);
@@ -544,7 +552,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.ClrMamePro.Video? video)
private static void Validate(Data.Models.ClrMamePro.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -559,7 +567,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.ClrMamePro.Sound? sound)
private static void Validate(Data.Models.ClrMamePro.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -568,7 +576,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.ClrMamePro.Input? input)
private static void Validate(Data.Models.ClrMamePro.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Players);
@@ -582,7 +590,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.ClrMamePro.DipSwitch? dipswitch)
private static void Validate(Data.Models.ClrMamePro.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -597,7 +605,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.ClrMamePro.Driver? driver)
private static void Validate(Data.Models.ClrMamePro.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);

View File

@@ -2,10 +2,10 @@ using System;
using System.IO;
using System.Linq;
using System.Text;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class CueSheetTests
{

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class DosCenterTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.DosCenter();
var serializer = new Serialization.Serializers.DosCenter();
var deserializer = new DosCenter();
var serializer = new SabreTools.Serialization.Writers.DosCenter();
// Build the data
Models.DosCenter.MetadataFile mf = Build();
Data.Models.DosCenter.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(mf);
Stream? actual = serializer.SerializeStream(mf);
Assert.NotNull(actual);
// Serialize back to original model
Models.DosCenter.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.DosCenter.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -99,9 +98,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.DosCenter.MetadataFile Build()
private static Data.Models.DosCenter.MetadataFile Build()
{
var dc = new Models.DosCenter.DosCenter
var dc = new Data.Models.DosCenter.DosCenter
{
Name = "XXXXXX",
Description = "XXXXXX",
@@ -112,7 +111,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Comment = "XXXXXX",
};
var file = new Models.DosCenter.File
var file = new Data.Models.DosCenter.File
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -121,13 +120,13 @@ namespace SabreTools.Serialization.Test.Deserializers
Date = "XXXXXX XXXXXX",
};
var game = new Models.DosCenter.Game
var game = new Data.Models.DosCenter.Game
{
Name = "XXXXXX",
File = [file],
};
return new Models.DosCenter.MetadataFile
return new Data.Models.DosCenter.MetadataFile
{
DosCenter = dc,
Game = [game],
@@ -137,7 +136,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DosCenter
/// </summary>
private static void Validate(Models.DosCenter.DosCenter? cmp)
private static void Validate(Data.Models.DosCenter.DosCenter? cmp)
{
Assert.NotNull(cmp);
Assert.Equal("XXXXXX", cmp.Name);
@@ -152,7 +151,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Game
/// </summary>
private static void Validate(Models.DosCenter.Game? game)
private static void Validate(Data.Models.DosCenter.Game? game)
{
Assert.NotNull(game);
Assert.Equal("XXXXXX", game.Name);
@@ -165,7 +164,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a File
/// </summary>
private static void Validate(Models.DosCenter.File? rom)
private static void Validate(Data.Models.DosCenter.File? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class EverdriveSMDBTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.EverdriveSMDB();
var serializer = new Serialization.Serializers.EverdriveSMDB();
var deserializer = new EverdriveSMDB();
var serializer = new SabreTools.Serialization.Writers.EverdriveSMDB();
// Build the data
Models.EverdriveSMDB.MetadataFile mf = Build();
Data.Models.EverdriveSMDB.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(mf);
Stream? actual = serializer.SerializeStream(mf);
Assert.NotNull(actual);
// Serialize back to original model
Models.EverdriveSMDB.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.EverdriveSMDB.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -98,9 +97,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.EverdriveSMDB.MetadataFile Build()
private static Data.Models.EverdriveSMDB.MetadataFile Build()
{
var row = new Models.EverdriveSMDB.Row
var row = new Data.Models.EverdriveSMDB.Row
{
SHA256 = "XXXXXX",
Name = "XXXXXX",
@@ -110,7 +109,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Size = "XXXXXX",
};
return new Models.EverdriveSMDB.MetadataFile
return new Data.Models.EverdriveSMDB.MetadataFile
{
Row = [row],
};
@@ -119,7 +118,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void Validate(Models.EverdriveSMDB.Row? row)
private static void Validate(Data.Models.EverdriveSMDB.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.SHA256);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class GCFTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class GZipTests
{

View File

@@ -2,10 +2,10 @@ using System;
using System.IO;
using System.Linq;
using SabreTools.Hashing;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class HashfileTests
{
@@ -76,18 +76,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripSFVTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.CRC32);
Data.Models.Hashfile.Hashfile hf = Build(HashType.CRC32);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.CRC32);
Stream? actual = serializer.SerializeStream(hf, HashType.CRC32);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.CRC32);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.CRC32);
// Validate the data
Assert.NotNull(newHf);
@@ -100,18 +100,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMD2Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.MD2);
Data.Models.Hashfile.Hashfile hf = Build(HashType.MD2);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.MD2);
Stream? actual = serializer.SerializeStream(hf, HashType.MD2);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.MD2);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.MD2);
// Validate the data
Assert.NotNull(newHf);
@@ -124,18 +124,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMD4Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.MD4);
Data.Models.Hashfile.Hashfile hf = Build(HashType.MD4);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.MD4);
Stream? actual = serializer.SerializeStream(hf, HashType.MD4);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.MD4);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.MD4);
// Validate the data
Assert.NotNull(newHf);
@@ -148,18 +148,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMD5Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.MD5);
Data.Models.Hashfile.Hashfile hf = Build(HashType.MD5);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.MD5);
Stream? actual = serializer.SerializeStream(hf, HashType.MD5);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.MD5);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.MD5);
// Validate the data
Assert.NotNull(newHf);
@@ -172,18 +172,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripSHA1Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA1);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA1);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.SHA1);
Stream? actual = serializer.SerializeStream(hf, HashType.SHA1);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA1);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA1);
// Validate the data
Assert.NotNull(newHf);
@@ -196,18 +196,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripSHA256Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA256);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA256);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.SHA256);
Stream? actual = serializer.SerializeStream(hf, HashType.SHA256);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA256);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA256);
// Validate the data
Assert.NotNull(newHf);
@@ -220,18 +220,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripSHA384Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA384);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA384);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.SHA384);
Stream? actual = serializer.SerializeStream(hf, HashType.SHA384);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA384);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA384);
// Validate the data
Assert.NotNull(newHf);
@@ -244,18 +244,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripSHA512Test()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SHA512);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SHA512);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.SHA512);
Stream? actual = serializer.SerializeStream(hf, HashType.SHA512);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA512);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SHA512);
// Validate the data
Assert.NotNull(newHf);
@@ -268,18 +268,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripSpamSumTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Hashfile();
var serializer = new Serialization.Serializers.Hashfile();
var deserializer = new Hashfile();
var serializer = new SabreTools.Serialization.Writers.Hashfile();
// Build the data
Models.Hashfile.Hashfile hf = Build(HashType.SpamSum);
Data.Models.Hashfile.Hashfile hf = Build(HashType.SpamSum);
// Serialize to stream
Stream? actual = serializer.Serialize(hf, HashType.SpamSum);
Stream? actual = serializer.SerializeStream(hf, HashType.SpamSum);
Assert.NotNull(actual);
// Serialize back to original model
Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SpamSum);
Data.Models.Hashfile.Hashfile? newHf = deserializer.Deserialize(actual, HashType.SpamSum);
// Validate the data
Assert.NotNull(newHf);
@@ -291,19 +291,19 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Hashfile.Hashfile Build(HashType hashType)
private static Data.Models.Hashfile.Hashfile Build(HashType hashType)
{
return hashType switch
{
HashType.CRC32 => new Models.Hashfile.Hashfile { SFV = [new Models.Hashfile.SFV { File = "XXXXXX", Hash = "XXXXXX" }] },
HashType.MD2 => new Models.Hashfile.Hashfile { MD2 = [new Models.Hashfile.MD2 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD4 => new Models.Hashfile.Hashfile { MD4 = [new Models.Hashfile.MD4 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD5 => new Models.Hashfile.Hashfile { MD5 = [new Models.Hashfile.MD5 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA1 => new Models.Hashfile.Hashfile { SHA1 = [new Models.Hashfile.SHA1 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA256 => new Models.Hashfile.Hashfile { SHA256 = [new Models.Hashfile.SHA256 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA384 => new Models.Hashfile.Hashfile { SHA384 = [new Models.Hashfile.SHA384 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA512 => new Models.Hashfile.Hashfile { SHA512 = [new Models.Hashfile.SHA512 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SpamSum => new Models.Hashfile.Hashfile { SpamSum = [new Models.Hashfile.SpamSum { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.CRC32 => new Data.Models.Hashfile.Hashfile { SFV = [new Data.Models.Hashfile.SFV { File = "XXXXXX", Hash = "XXXXXX" }] },
HashType.MD2 => new Data.Models.Hashfile.Hashfile { MD2 = [new Data.Models.Hashfile.MD2 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD4 => new Data.Models.Hashfile.Hashfile { MD4 = [new Data.Models.Hashfile.MD4 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.MD5 => new Data.Models.Hashfile.Hashfile { MD5 = [new Data.Models.Hashfile.MD5 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA1 => new Data.Models.Hashfile.Hashfile { SHA1 = [new Data.Models.Hashfile.SHA1 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA256 => new Data.Models.Hashfile.Hashfile { SHA256 = [new Data.Models.Hashfile.SHA256 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA384 => new Data.Models.Hashfile.Hashfile { SHA384 = [new Data.Models.Hashfile.SHA384 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SHA512 => new Data.Models.Hashfile.Hashfile { SHA512 = [new Data.Models.Hashfile.SHA512 { Hash = "XXXXXX", File = "XXXXXX" }] },
HashType.SpamSum => new Data.Models.Hashfile.Hashfile { SpamSum = [new Data.Models.Hashfile.SpamSum { Hash = "XXXXXX", File = "XXXXXX" }] },
_ => throw new ArgumentOutOfRangeException(),
};
}
@@ -311,7 +311,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SFV
/// </summary>
private static void Validate(Models.Hashfile.SFV? sfv)
private static void Validate(Data.Models.Hashfile.SFV? sfv)
{
Assert.NotNull(sfv);
Assert.Equal("XXXXXX", sfv.File);
@@ -321,7 +321,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a MD2
/// </summary>
private static void Validate(Models.Hashfile.MD2? md2)
private static void Validate(Data.Models.Hashfile.MD2? md2)
{
Assert.NotNull(md2);
Assert.Equal("XXXXXX", md2.Hash);
@@ -331,7 +331,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a MD4
/// </summary>
private static void Validate(Models.Hashfile.MD4? md4)
private static void Validate(Data.Models.Hashfile.MD4? md4)
{
Assert.NotNull(md4);
Assert.Equal("XXXXXX", md4.Hash);
@@ -341,7 +341,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a MD5
/// </summary>
private static void Validate(Models.Hashfile.MD5? md5)
private static void Validate(Data.Models.Hashfile.MD5? md5)
{
Assert.NotNull(md5);
Assert.Equal("XXXXXX", md5.Hash);
@@ -351,7 +351,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SHA1
/// </summary>
private static void Validate(Models.Hashfile.SHA1? sha1)
private static void Validate(Data.Models.Hashfile.SHA1? sha1)
{
Assert.NotNull(sha1);
Assert.Equal("XXXXXX", sha1.Hash);
@@ -361,7 +361,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SHA256
/// </summary>
private static void Validate(Models.Hashfile.SHA256? sha256)
private static void Validate(Data.Models.Hashfile.SHA256? sha256)
{
Assert.NotNull(sha256);
Assert.Equal("XXXXXX", sha256.Hash);
@@ -371,7 +371,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SHA384
/// </summary>
private static void Validate(Models.Hashfile.SHA384? sha384)
private static void Validate(Data.Models.Hashfile.SHA384? sha384)
{
Assert.NotNull(sha384);
Assert.Equal("XXXXXX", sha384.Hash);
@@ -381,7 +381,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SHA512
/// </summary>
private static void Validate(Models.Hashfile.SHA512? sha512)
private static void Validate(Data.Models.Hashfile.SHA512? sha512)
{
Assert.NotNull(sha512);
Assert.Equal("XXXXXX", sha512.Hash);
@@ -391,7 +391,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SpamSum
/// </summary>
private static void Validate(Models.Hashfile.SpamSum? spamsum)
private static void Validate(Data.Models.Hashfile.SpamSum? spamsum)
{
Assert.NotNull(spamsum);
Assert.Equal("XXXXXX", spamsum.Hash);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class IRDTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class InstallShieldArchiveV3Tests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class InstallShieldCabinetTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class LZKWAJTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class LZQBasicTests

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class LZSZDDTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class LinearExecutableTests
{

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class ListromTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Listrom();
var serializer = new Serialization.Serializers.Listrom();
var deserializer = new Listrom();
var serializer = new SabreTools.Serialization.Writers.Listrom();
// Build the data
Models.Listrom.MetadataFile mf = Build();
Data.Models.Listrom.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(mf);
Stream? actual = serializer.SerializeStream(mf);
Assert.NotNull(actual);
// Serialize back to original model
Models.Listrom.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.Listrom.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -100,9 +99,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listrom.MetadataFile Build()
private static Data.Models.Listrom.MetadataFile Build()
{
var romGood = new Models.Listrom.Row
var romGood = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Size = "12345",
@@ -112,7 +111,7 @@ namespace SabreTools.Serialization.Test.Deserializers
NoGoodDumpKnown = false,
};
var romBad = new Models.Listrom.Row
var romBad = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Size = "12345",
@@ -122,7 +121,7 @@ namespace SabreTools.Serialization.Test.Deserializers
NoGoodDumpKnown = false,
};
var diskGoodMd5 = new Models.Listrom.Row
var diskGoodMd5 = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Bad = false,
@@ -131,7 +130,7 @@ namespace SabreTools.Serialization.Test.Deserializers
NoGoodDumpKnown = false,
};
var diskGoodSha1 = new Models.Listrom.Row
var diskGoodSha1 = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Bad = false,
@@ -140,7 +139,7 @@ namespace SabreTools.Serialization.Test.Deserializers
NoGoodDumpKnown = false,
};
var diskBad = new Models.Listrom.Row
var diskBad = new Data.Models.Listrom.Row
{
Name = "XXXXXX",
Bad = false,
@@ -149,19 +148,19 @@ namespace SabreTools.Serialization.Test.Deserializers
NoGoodDumpKnown = true,
};
var device = new Models.Listrom.Set()
var device = new Data.Models.Listrom.Set()
{
Device = "XXXXXX",
Row = [romGood, romBad],
};
var driver = new Models.Listrom.Set()
var driver = new Data.Models.Listrom.Set()
{
Driver = "XXXXXX",
Row = [diskGoodMd5, diskGoodSha1, diskBad],
};
return new Models.Listrom.MetadataFile
return new Data.Models.Listrom.MetadataFile
{
Set = [device, driver],
};
@@ -170,7 +169,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Set
/// </summary>
private static void ValidateDevice(Models.Listrom.Set? set)
private static void ValidateDevice(Data.Models.Listrom.Set? set)
{
Assert.NotNull(set);
Assert.Equal("XXXXXX", set.Device);
@@ -185,7 +184,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Set
/// </summary>
private static void ValidateDriver(Models.Listrom.Set? set)
private static void ValidateDriver(Data.Models.Listrom.Set? set)
{
Assert.NotNull(set);
Assert.Equal("XXXXXX", set.Driver);
@@ -201,7 +200,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateGoodRom(Models.Listrom.Row? row)
private static void ValidateGoodRom(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);
@@ -215,7 +214,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateBadRom(Models.Listrom.Row? row)
private static void ValidateBadRom(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);
@@ -229,7 +228,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateGoodMd5Disk(Models.Listrom.Row? row)
private static void ValidateGoodMd5Disk(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);
@@ -242,7 +241,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateGoodSha1Disk(Models.Listrom.Row? row)
private static void ValidateGoodSha1Disk(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);
@@ -255,7 +254,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateBadDisk(Models.Listrom.Row? row)
private static void ValidateBadDisk(Data.Models.Listrom.Row? row)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.Name);

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class ListxmlTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripGameTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Listxml();
var serializer = new Serialization.Serializers.Listxml();
var deserializer = new Listxml();
var serializer = new SabreTools.Serialization.Writers.Listxml();
// Build the data
Models.Listxml.Mame mame = Build(game: true);
Data.Models.Listxml.Mame mame = Build(game: true);
// Serialize to stream
Stream? actual = serializer.Serialize(mame);
Assert.NotNull(actual);
// Serialize back to original model
Models.Listxml.Mame? newMame = deserializer.Deserialize(actual);
Data.Models.Listxml.Mame? newMame = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMame);
@@ -103,18 +102,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMachineTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Listxml();
var serializer = new Serialization.Serializers.Listxml();
var deserializer = new Listxml();
var serializer = new SabreTools.Serialization.Writers.Listxml();
// Build the data
Models.Listxml.Mame mame = Build(game: false);
Data.Models.Listxml.Mame mame = Build(game: false);
// Serialize to stream
Stream? actual = serializer.Serialize(mame);
Assert.NotNull(actual);
// Serialize back to original model
Models.Listxml.Mame? newMame = deserializer.Deserialize(actual);
Data.Models.Listxml.Mame? newMame = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMame);
@@ -130,16 +129,16 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listxml.Mame Build(bool game)
private static Data.Models.Listxml.Mame Build(bool game)
{
var biosset = new Models.Listxml.BiosSet
var biosset = new Data.Models.Listxml.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Listxml.Rom
var rom = new Data.Models.Listxml.Rom
{
Name = "XXXXXX",
Bios = "XXXXXX",
@@ -155,7 +154,7 @@ namespace SabreTools.Serialization.Test.Deserializers
SoundOnly = "XXXXXX",
};
var disk = new Models.Listxml.Disk
var disk = new Data.Models.Listxml.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -168,17 +167,17 @@ namespace SabreTools.Serialization.Test.Deserializers
Optional = "XXXXXX",
};
var deviceref = new Models.Listxml.DeviceRef
var deviceref = new Data.Models.Listxml.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Listxml.Sample
var sample = new Data.Models.Listxml.Sample
{
Name = "XXXXXX",
};
var chip = new Models.Listxml.Chip
var chip = new Data.Models.Listxml.Chip
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -187,7 +186,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Clock = "XXXXXX",
};
var display = new Models.Listxml.Display
var display = new Data.Models.Listxml.Display
{
Tag = "XXXXXX",
Type = "XXXXXX",
@@ -205,7 +204,7 @@ namespace SabreTools.Serialization.Test.Deserializers
VBStart = "XXXXXX",
};
var video = new Models.Listxml.Video
var video = new Data.Models.Listxml.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -216,12 +215,12 @@ namespace SabreTools.Serialization.Test.Deserializers
Refresh = "XXXXXX",
};
var sound = new Models.Listxml.Sound
var sound = new Data.Models.Listxml.Sound
{
Channels = "XXXXXX",
};
var control = new Models.Listxml.Control
var control = new Data.Models.Listxml.Control
{
Type = "XXXXXX",
Player = "XXXXXX",
@@ -237,7 +236,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Ways3 = "XXXXXX",
};
var input = new Models.Listxml.Input
var input = new Data.Models.Listxml.Input
{
Service = "XXXXXX",
Tilt = "XXXXXX",
@@ -248,7 +247,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Control = [control],
};
var condition = new Models.Listxml.Condition
var condition = new Data.Models.Listxml.Condition
{
Tag = "XXXXXX",
Mask = "XXXXXX",
@@ -256,14 +255,14 @@ namespace SabreTools.Serialization.Test.Deserializers
Value = "XXXXXX",
};
var diplocation = new Models.Listxml.DipLocation
var diplocation = new Data.Models.Listxml.DipLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var dipvalue = new Models.Listxml.DipValue
var dipvalue = new Data.Models.Listxml.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -271,7 +270,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Condition = condition,
};
var dipswitch = new Models.Listxml.DipSwitch
var dipswitch = new Data.Models.Listxml.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -281,14 +280,14 @@ namespace SabreTools.Serialization.Test.Deserializers
DipValue = [dipvalue],
};
var conflocation = new Models.Listxml.ConfLocation
var conflocation = new Data.Models.Listxml.ConfLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var confsetting = new Models.Listxml.ConfSetting
var confsetting = new Data.Models.Listxml.ConfSetting
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -296,7 +295,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Condition = condition,
};
var configuration = new Models.Listxml.Configuration
var configuration = new Data.Models.Listxml.Configuration
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -306,25 +305,25 @@ namespace SabreTools.Serialization.Test.Deserializers
ConfSetting = [confsetting],
};
var analog = new Models.Listxml.Analog
var analog = new Data.Models.Listxml.Analog
{
Mask = "XXXXXX",
};
var port = new Models.Listxml.Port
var port = new Data.Models.Listxml.Port
{
Tag = "XXXXXX",
Analog = [analog],
};
var adjuster = new Models.Listxml.Adjuster
var adjuster = new Data.Models.Listxml.Adjuster
{
Name = "XXXXXX",
Default = "XXXXXX",
Condition = condition,
};
var driver = new Models.Listxml.Driver
var driver = new Data.Models.Listxml.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -339,25 +338,25 @@ namespace SabreTools.Serialization.Test.Deserializers
Incomplete = "XXXXXX",
};
var feature = new Models.Listxml.Feature
var feature = new Data.Models.Listxml.Feature
{
Type = "XXXXXX",
Status = "XXXXXX",
Overall = "XXXXXX",
};
var instance = new Models.Listxml.Instance
var instance = new Data.Models.Listxml.Instance
{
Name = "XXXXXX",
BriefName = "XXXXXX",
};
var extension = new Models.Listxml.Extension
var extension = new Data.Models.Listxml.Extension
{
Name = "XXXXXX",
};
var device = new Models.Listxml.Device
var device = new Data.Models.Listxml.Device
{
Type = "XXXXXX",
Tag = "XXXXXX",
@@ -368,20 +367,20 @@ namespace SabreTools.Serialization.Test.Deserializers
Extension = [extension],
};
var slotOption = new Models.Listxml.SlotOption
var slotOption = new Data.Models.Listxml.SlotOption
{
Name = "XXXXXX",
DevName = "XXXXXX",
Default = "XXXXXX",
};
var slot = new Models.Listxml.Slot
var slot = new Data.Models.Listxml.Slot
{
Name = "XXXXXX",
SlotOption = [slotOption],
};
var softwarelist = new Models.Listxml.SoftwareList
var softwarelist = new Data.Models.Listxml.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -389,16 +388,16 @@ namespace SabreTools.Serialization.Test.Deserializers
Filter = "XXXXXX",
};
var ramoption = new Models.Listxml.RamOption
var ramoption = new Data.Models.Listxml.RamOption
{
Name = "XXXXXX",
Default = "XXXXXX",
Content = "XXXXXX",
};
Models.Listxml.GameBase gameBase = game
? new Models.Listxml.Game()
: new Models.Listxml.Machine();
Data.Models.Listxml.GameBase gameBase = game
? new Data.Models.Listxml.Game()
: new Data.Models.Listxml.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -433,7 +432,7 @@ namespace SabreTools.Serialization.Test.Deserializers
gameBase.SoftwareList = [softwarelist];
gameBase.RamOption = [ramoption];
return new Models.Listxml.Mame
return new Data.Models.Listxml.Mame
{
Build = "XXXXXX",
Debug = "XXXXXX",
@@ -445,7 +444,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Listxml.GameBase? gb)
private static void Validate(Data.Models.Listxml.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -539,7 +538,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Listxml.BiosSet? biosset)
private static void Validate(Data.Models.Listxml.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -550,7 +549,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Listxml.Rom? rom)
private static void Validate(Data.Models.Listxml.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -570,7 +569,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Listxml.Disk? disk)
private static void Validate(Data.Models.Listxml.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -587,7 +586,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Listxml.DeviceRef? deviceref)
private static void Validate(Data.Models.Listxml.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -596,7 +595,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Listxml.Sample? sample)
private static void Validate(Data.Models.Listxml.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -605,7 +604,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.Listxml.Chip? chip)
private static void Validate(Data.Models.Listxml.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Name);
@@ -618,7 +617,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Display
/// </summary>
private static void Validate(Models.Listxml.Display? display)
private static void Validate(Data.Models.Listxml.Display? display)
{
Assert.NotNull(display);
Assert.Equal("XXXXXX", display.Tag);
@@ -640,7 +639,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.Listxml.Video? video)
private static void Validate(Data.Models.Listxml.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -655,7 +654,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.Listxml.Sound? sound)
private static void Validate(Data.Models.Listxml.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -664,7 +663,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.Listxml.Input? input)
private static void Validate(Data.Models.Listxml.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Service);
@@ -682,7 +681,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Control
/// </summary>
private static void Validate(Models.Listxml.Control? control)
private static void Validate(Data.Models.Listxml.Control? control)
{
Assert.NotNull(control);
Assert.Equal("XXXXXX", control.Type);
@@ -702,7 +701,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.Listxml.DipSwitch? dipswitch)
private static void Validate(Data.Models.Listxml.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -722,7 +721,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Condition
/// </summary>
private static void Validate(Models.Listxml.Condition? condition)
private static void Validate(Data.Models.Listxml.Condition? condition)
{
Assert.NotNull(condition);
Assert.Equal("XXXXXX", condition.Tag);
@@ -734,7 +733,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipLocation
/// </summary>
private static void Validate(Models.Listxml.DipLocation? diplocation)
private static void Validate(Data.Models.Listxml.DipLocation? diplocation)
{
Assert.NotNull(diplocation);
Assert.Equal("XXXXXX", diplocation.Name);
@@ -745,7 +744,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.Listxml.DipValue? dipvalue)
private static void Validate(Data.Models.Listxml.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);
@@ -757,7 +756,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.Listxml.Configuration? configuration)
private static void Validate(Data.Models.Listxml.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.Name);
@@ -777,7 +776,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ConfLocation
/// </summary>
private static void Validate(Models.Listxml.ConfLocation? conflocation)
private static void Validate(Data.Models.Listxml.ConfLocation? conflocation)
{
Assert.NotNull(conflocation);
Assert.Equal("XXXXXX", conflocation.Name);
@@ -788,7 +787,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ConfSetting
/// </summary>
private static void Validate(Models.Listxml.ConfSetting? confsetting)
private static void Validate(Data.Models.Listxml.ConfSetting? confsetting)
{
Assert.NotNull(confsetting);
Assert.Equal("XXXXXX", confsetting.Name);
@@ -800,7 +799,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Port
/// </summary>
private static void Validate(Models.Listxml.Port? port)
private static void Validate(Data.Models.Listxml.Port? port)
{
Assert.NotNull(port);
Assert.Equal("XXXXXX", port.Tag);
@@ -813,7 +812,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Analog
/// </summary>
private static void Validate(Models.Listxml.Analog? analog)
private static void Validate(Data.Models.Listxml.Analog? analog)
{
Assert.NotNull(analog);
Assert.Equal("XXXXXX", analog.Mask);
@@ -822,7 +821,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Adjuster
/// </summary>
private static void Validate(Models.Listxml.Adjuster? adjuster)
private static void Validate(Data.Models.Listxml.Adjuster? adjuster)
{
Assert.NotNull(adjuster);
Assert.Equal("XXXXXX", adjuster.Name);
@@ -833,7 +832,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Listxml.Driver? driver)
private static void Validate(Data.Models.Listxml.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -852,7 +851,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.Listxml.Feature? feature)
private static void Validate(Data.Models.Listxml.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Type);
@@ -863,7 +862,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Device
/// </summary>
private static void Validate(Models.Listxml.Device? device)
private static void Validate(Data.Models.Listxml.Device? device)
{
Assert.NotNull(device);
Assert.Equal("XXXXXX", device.Type);
@@ -881,7 +880,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Instance
/// </summary>
private static void Validate(Models.Listxml.Instance? instance)
private static void Validate(Data.Models.Listxml.Instance? instance)
{
Assert.NotNull(instance);
Assert.Equal("XXXXXX", instance.Name);
@@ -891,7 +890,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Extension
/// </summary>
private static void Validate(Models.Listxml.Extension? extension)
private static void Validate(Data.Models.Listxml.Extension? extension)
{
Assert.NotNull(extension);
Assert.Equal("XXXXXX", extension.Name);
@@ -900,7 +899,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Slot
/// </summary>
private static void Validate(Models.Listxml.Slot? slot)
private static void Validate(Data.Models.Listxml.Slot? slot)
{
Assert.NotNull(slot);
Assert.Equal("XXXXXX", slot.Name);
@@ -913,7 +912,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SlotOption
/// </summary>
private static void Validate(Models.Listxml.SlotOption? slotoption)
private static void Validate(Data.Models.Listxml.SlotOption? slotoption)
{
Assert.NotNull(slotoption);
Assert.Equal("XXXXXX", slotoption.Name);
@@ -924,7 +923,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Listxml.SoftwareList? softwarelist)
private static void Validate(Data.Models.Listxml.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);
@@ -936,7 +935,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a RamOption
/// </summary>
private static void Validate(Models.Listxml.RamOption? ramoption)
private static void Validate(Data.Models.Listxml.RamOption? ramoption)
{
Assert.NotNull(ramoption);
Assert.Equal("XXXXXX", ramoption.Name);

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class LogiqxTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripGameTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Logiqx();
var serializer = new Serialization.Serializers.Logiqx();
var deserializer = new Logiqx();
var serializer = new SabreTools.Serialization.Writers.Logiqx();
// Build the data
Models.Logiqx.Datafile df = Build(game: true);
Data.Models.Logiqx.Datafile df = Build(game: true);
// Serialize to stream
Stream? metadata = serializer.Serialize(df);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Logiqx.Datafile? newDf = deserializer.Deserialize(metadata);
Data.Models.Logiqx.Datafile? newDf = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newDf);
@@ -107,18 +106,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMachineTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Logiqx();
var serializer = new Serialization.Serializers.Logiqx();
var deserializer = new Logiqx();
var serializer = new SabreTools.Serialization.Writers.Logiqx();
// Build the data
Models.Logiqx.Datafile df = Build(game: false);
Data.Models.Logiqx.Datafile df = Build(game: false);
// Serialize to stream
Stream? metadata = serializer.Serialize(df);
Assert.NotNull(metadata);
// Serialize back to original model
Models.Logiqx.Datafile? newDf = deserializer.Deserialize(metadata);
Data.Models.Logiqx.Datafile? newDf = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newDf);
@@ -138,9 +137,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Logiqx.Datafile Build(bool game)
private static Data.Models.Logiqx.Datafile Build(bool game)
{
var clrmamepro = new Models.Logiqx.ClrMamePro
var clrmamepro = new Data.Models.Logiqx.ClrMamePro
{
Header = "XXXXXX",
ForceMerging = "XXXXXX",
@@ -148,7 +147,7 @@ namespace SabreTools.Serialization.Test.Deserializers
ForcePacking = "XXXXXX",
};
var romcenter = new Models.Logiqx.RomCenter
var romcenter = new Data.Models.Logiqx.RomCenter
{
Plugin = "XXXXXX",
RomMode = "XXXXXX",
@@ -159,7 +158,7 @@ namespace SabreTools.Serialization.Test.Deserializers
LockSampleMode = "XXXXXX",
};
var header = new Models.Logiqx.Header
var header = new Data.Models.Logiqx.Header
{
Id = "XXXXXX",
Name = "XXXXXX",
@@ -178,7 +177,7 @@ namespace SabreTools.Serialization.Test.Deserializers
RomCenter = romcenter,
};
var trurip = new Models.Logiqx.Trurip
var trurip = new Data.Models.Logiqx.Trurip
{
TitleID = "XXXXXX",
Publisher = "XXXXXX",
@@ -196,7 +195,7 @@ namespace SabreTools.Serialization.Test.Deserializers
RelatedTo = "XXXXXX",
};
var release = new Models.Logiqx.Release
var release = new Data.Models.Logiqx.Release
{
Name = "XXXXXX",
Region = "XXXXXX",
@@ -205,19 +204,23 @@ namespace SabreTools.Serialization.Test.Deserializers
Default = "XXXXXX",
};
var biosset = new Models.Logiqx.BiosSet
var biosset = new Data.Models.Logiqx.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Logiqx.Rom
var rom = new Data.Models.Logiqx.Rom
{
Name = "XXXXXX",
Size = "XXXXXX",
CRC = "XXXXXX",
MD2 = "XXXXXX",
MD4 = "XXXXXX",
MD5 = "XXXXXX",
RIPEMD128 = "XXXXXX",
RIPEMD160 = "XXXXXX",
SHA1 = "XXXXXX",
SHA256 = "XXXXXX",
SHA384 = "XXXXXX",
@@ -234,7 +237,7 @@ namespace SabreTools.Serialization.Test.Deserializers
MIA = "XXXXXX",
};
var disk = new Models.Logiqx.Disk
var disk = new Data.Models.Logiqx.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -244,7 +247,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Region = "XXXXXX",
};
var media = new Models.Logiqx.Media
var media = new Data.Models.Logiqx.Media
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -253,22 +256,22 @@ namespace SabreTools.Serialization.Test.Deserializers
SpamSum = "XXXXXX",
};
var deviceRef = new Models.Logiqx.DeviceRef
var deviceRef = new Data.Models.Logiqx.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Logiqx.Sample
var sample = new Data.Models.Logiqx.Sample
{
Name = "XXXXXX",
};
var archive = new Models.Logiqx.Archive
var archive = new Data.Models.Logiqx.Archive
{
Name = "XXXXXX",
};
var driver = new Models.Logiqx.Driver
var driver = new Data.Models.Logiqx.Driver
{
Status = "XXXXXX",
Emulation = "XXXXXX",
@@ -280,7 +283,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Incomplete = "XXXXXX",
};
var softwarelist = new Models.Logiqx.SoftwareList
var softwarelist = new Data.Models.Logiqx.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -288,9 +291,9 @@ namespace SabreTools.Serialization.Test.Deserializers
Filter = "XXXXXX",
};
Models.Logiqx.GameBase gameBase = game
? new Models.Logiqx.Game()
: new Models.Logiqx.Machine();
Data.Models.Logiqx.GameBase gameBase = game
? new Data.Models.Logiqx.Game()
: new Data.Models.Logiqx.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -322,7 +325,7 @@ namespace SabreTools.Serialization.Test.Deserializers
gameBase.Driver = driver;
gameBase.SoftwareList = [softwarelist];
return new Models.Logiqx.Datafile
return new Data.Models.Logiqx.Datafile
{
Build = "XXXXXX",
Debug = "XXXXXX",
@@ -336,7 +339,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Header
/// </summary>
private static void Validate(Models.Logiqx.Header? header)
private static void Validate(Data.Models.Logiqx.Header? header)
{
Assert.NotNull(header);
Assert.Equal("XXXXXX", header.Id);
@@ -359,7 +362,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ClrMamePro
/// </summary>
private static void Validate(Models.Logiqx.ClrMamePro? cmp)
private static void Validate(Data.Models.Logiqx.ClrMamePro? cmp)
{
Assert.NotNull(cmp);
Assert.Equal("XXXXXX", cmp.Header);
@@ -371,7 +374,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a RomCenter
/// </summary>
private static void Validate(Models.Logiqx.RomCenter? rc)
private static void Validate(Data.Models.Logiqx.RomCenter? rc)
{
Assert.NotNull(rc);
Assert.Equal("XXXXXX", rc.Plugin);
@@ -386,7 +389,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Logiqx.GameBase? gb)
private static void Validate(Data.Models.Logiqx.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -460,7 +463,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Trurip
/// </summary>
private static void Validate(Models.Logiqx.Trurip? trurip)
private static void Validate(Data.Models.Logiqx.Trurip? trurip)
{
Assert.NotNull(trurip);
Assert.Equal("XXXXXX", trurip.TitleID);
@@ -482,7 +485,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Release
/// </summary>
private static void Validate(Models.Logiqx.Release? release)
private static void Validate(Data.Models.Logiqx.Release? release)
{
Assert.NotNull(release);
Assert.Equal("XXXXXX", release.Name);
@@ -495,7 +498,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Logiqx.BiosSet? biosset)
private static void Validate(Data.Models.Logiqx.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -506,13 +509,17 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Logiqx.Rom? rom)
private static void Validate(Data.Models.Logiqx.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
Assert.Equal("XXXXXX", rom.Size);
Assert.Equal("XXXXXX", rom.CRC);
Assert.Equal("XXXXXX", rom.MD2);
Assert.Equal("XXXXXX", rom.MD4);
Assert.Equal("XXXXXX", rom.MD5);
Assert.Equal("XXXXXX", rom.RIPEMD128);
Assert.Equal("XXXXXX", rom.RIPEMD160);
Assert.Equal("XXXXXX", rom.SHA1);
Assert.Equal("XXXXXX", rom.SHA256);
Assert.Equal("XXXXXX", rom.SHA384);
@@ -532,7 +539,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Logiqx.Disk? disk)
private static void Validate(Data.Models.Logiqx.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -546,7 +553,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Media
/// </summary>
private static void Validate(Models.Logiqx.Media? media)
private static void Validate(Data.Models.Logiqx.Media? media)
{
Assert.NotNull(media);
Assert.Equal("XXXXXX", media.Name);
@@ -559,7 +566,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Logiqx.DeviceRef? deviceref)
private static void Validate(Data.Models.Logiqx.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -568,7 +575,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Logiqx.Sample? sample)
private static void Validate(Data.Models.Logiqx.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -577,7 +584,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Archive
/// </summary>
private static void Validate(Models.Logiqx.Archive? archive)
private static void Validate(Data.Models.Logiqx.Archive? archive)
{
Assert.NotNull(archive);
Assert.Equal("XXXXXX", archive.Name);
@@ -586,7 +593,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Logiqx.Driver? driver)
private static void Validate(Data.Models.Logiqx.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -602,7 +609,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Logiqx.SoftwareList? softwarelist)
private static void Validate(Data.Models.Logiqx.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class M1Tests
{
@@ -74,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripGameTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.M1();
var serializer = new Serialization.Serializers.M1();
var deserializer = new M1();
var serializer = new SabreTools.Serialization.Writers.M1();
// Build the data
Models.Listxml.M1 m1 = Build(game: true);
Data.Models.Listxml.M1 m1 = Build(game: true);
// Serialize to generic model
Stream? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize to stream
Models.Listxml.M1? newM1 = deserializer.Deserialize(metadata);
Data.Models.Listxml.M1? newM1 = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newM1);
@@ -100,18 +100,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMachineTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.M1();
var serializer = new Serialization.Serializers.M1();
var deserializer = new M1();
var serializer = new SabreTools.Serialization.Writers.M1();
// Build the data
Models.Listxml.M1 m1 = Build(game: false);
Data.Models.Listxml.M1 m1 = Build(game: false);
// Serialize to generic model
Stream? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize to stream
Models.Listxml.M1? newM1 = deserializer.Deserialize(metadata);
Data.Models.Listxml.M1? newM1 = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newM1);
@@ -125,16 +125,16 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listxml.M1 Build(bool game)
private static Data.Models.Listxml.M1 Build(bool game)
{
var biosset = new Models.Listxml.BiosSet
var biosset = new Data.Models.Listxml.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Listxml.Rom
var rom = new Data.Models.Listxml.Rom
{
Name = "XXXXXX",
Bios = "XXXXXX",
@@ -150,7 +150,7 @@ namespace SabreTools.Serialization.Test.Deserializers
SoundOnly = "XXXXXX",
};
var disk = new Models.Listxml.Disk
var disk = new Data.Models.Listxml.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -163,17 +163,17 @@ namespace SabreTools.Serialization.Test.Deserializers
Optional = "XXXXXX",
};
var deviceref = new Models.Listxml.DeviceRef
var deviceref = new Data.Models.Listxml.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Listxml.Sample
var sample = new Data.Models.Listxml.Sample
{
Name = "XXXXXX",
};
var chip = new Models.Listxml.Chip
var chip = new Data.Models.Listxml.Chip
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -182,7 +182,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Clock = "XXXXXX",
};
var display = new Models.Listxml.Display
var display = new Data.Models.Listxml.Display
{
Tag = "XXXXXX",
Type = "XXXXXX",
@@ -200,7 +200,7 @@ namespace SabreTools.Serialization.Test.Deserializers
VBStart = "XXXXXX",
};
var video = new Models.Listxml.Video
var video = new Data.Models.Listxml.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -211,12 +211,12 @@ namespace SabreTools.Serialization.Test.Deserializers
Refresh = "XXXXXX",
};
var sound = new Models.Listxml.Sound
var sound = new Data.Models.Listxml.Sound
{
Channels = "XXXXXX",
};
var control = new Models.Listxml.Control
var control = new Data.Models.Listxml.Control
{
Type = "XXXXXX",
Player = "XXXXXX",
@@ -232,7 +232,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Ways3 = "XXXXXX",
};
var input = new Models.Listxml.Input
var input = new Data.Models.Listxml.Input
{
Service = "XXXXXX",
Tilt = "XXXXXX",
@@ -243,7 +243,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Control = [control],
};
var condition = new Models.Listxml.Condition
var condition = new Data.Models.Listxml.Condition
{
Tag = "XXXXXX",
Mask = "XXXXXX",
@@ -251,14 +251,14 @@ namespace SabreTools.Serialization.Test.Deserializers
Value = "XXXXXX",
};
var diplocation = new Models.Listxml.DipLocation
var diplocation = new Data.Models.Listxml.DipLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var dipvalue = new Models.Listxml.DipValue
var dipvalue = new Data.Models.Listxml.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -266,7 +266,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Condition = condition,
};
var dipswitch = new Models.Listxml.DipSwitch
var dipswitch = new Data.Models.Listxml.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -276,14 +276,14 @@ namespace SabreTools.Serialization.Test.Deserializers
DipValue = [dipvalue],
};
var conflocation = new Models.Listxml.ConfLocation
var conflocation = new Data.Models.Listxml.ConfLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var confsetting = new Models.Listxml.ConfSetting
var confsetting = new Data.Models.Listxml.ConfSetting
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -291,7 +291,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Condition = condition,
};
var configuration = new Models.Listxml.Configuration
var configuration = new Data.Models.Listxml.Configuration
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -301,25 +301,25 @@ namespace SabreTools.Serialization.Test.Deserializers
ConfSetting = [confsetting],
};
var analog = new Models.Listxml.Analog
var analog = new Data.Models.Listxml.Analog
{
Mask = "XXXXXX",
};
var port = new Models.Listxml.Port
var port = new Data.Models.Listxml.Port
{
Tag = "XXXXXX",
Analog = [analog],
};
var adjuster = new Models.Listxml.Adjuster
var adjuster = new Data.Models.Listxml.Adjuster
{
Name = "XXXXXX",
Default = "XXXXXX",
Condition = condition,
};
var driver = new Models.Listxml.Driver
var driver = new Data.Models.Listxml.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -334,25 +334,25 @@ namespace SabreTools.Serialization.Test.Deserializers
Incomplete = "XXXXXX",
};
var feature = new Models.Listxml.Feature
var feature = new Data.Models.Listxml.Feature
{
Type = "XXXXXX",
Status = "XXXXXX",
Overall = "XXXXXX",
};
var instance = new Models.Listxml.Instance
var instance = new Data.Models.Listxml.Instance
{
Name = "XXXXXX",
BriefName = "XXXXXX",
};
var extension = new Models.Listxml.Extension
var extension = new Data.Models.Listxml.Extension
{
Name = "XXXXXX",
};
var device = new Models.Listxml.Device
var device = new Data.Models.Listxml.Device
{
Type = "XXXXXX",
Tag = "XXXXXX",
@@ -363,20 +363,20 @@ namespace SabreTools.Serialization.Test.Deserializers
Extension = [extension],
};
var slotOption = new Models.Listxml.SlotOption
var slotOption = new Data.Models.Listxml.SlotOption
{
Name = "XXXXXX",
DevName = "XXXXXX",
Default = "XXXXXX",
};
var slot = new Models.Listxml.Slot
var slot = new Data.Models.Listxml.Slot
{
Name = "XXXXXX",
SlotOption = [slotOption],
};
var softwarelist = new Models.Listxml.SoftwareList
var softwarelist = new Data.Models.Listxml.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -384,16 +384,16 @@ namespace SabreTools.Serialization.Test.Deserializers
Filter = "XXXXXX",
};
var ramoption = new Models.Listxml.RamOption
var ramoption = new Data.Models.Listxml.RamOption
{
Name = "XXXXXX",
Default = "XXXXXX",
Content = "XXXXXX",
};
Models.Listxml.GameBase gameBase = game
? new Models.Listxml.Game()
: new Models.Listxml.Machine();
Data.Models.Listxml.GameBase gameBase = game
? new Data.Models.Listxml.Game()
: new Data.Models.Listxml.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -428,7 +428,7 @@ namespace SabreTools.Serialization.Test.Deserializers
gameBase.SoftwareList = [softwarelist];
gameBase.RamOption = [ramoption];
return new Models.Listxml.M1
return new Data.Models.Listxml.M1
{
Version = "XXXXXX",
Game = [gameBase],
@@ -438,7 +438,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Listxml.GameBase? gb)
private static void Validate(Data.Models.Listxml.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -532,7 +532,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Listxml.BiosSet? biosset)
private static void Validate(Data.Models.Listxml.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -543,7 +543,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Listxml.Rom? rom)
private static void Validate(Data.Models.Listxml.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -563,7 +563,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Listxml.Disk? disk)
private static void Validate(Data.Models.Listxml.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -580,7 +580,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Listxml.DeviceRef? deviceref)
private static void Validate(Data.Models.Listxml.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -589,7 +589,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Listxml.Sample? sample)
private static void Validate(Data.Models.Listxml.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -598,7 +598,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.Listxml.Chip? chip)
private static void Validate(Data.Models.Listxml.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Name);
@@ -611,7 +611,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Display
/// </summary>
private static void Validate(Models.Listxml.Display? display)
private static void Validate(Data.Models.Listxml.Display? display)
{
Assert.NotNull(display);
Assert.Equal("XXXXXX", display.Tag);
@@ -633,7 +633,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.Listxml.Video? video)
private static void Validate(Data.Models.Listxml.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -648,7 +648,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.Listxml.Sound? sound)
private static void Validate(Data.Models.Listxml.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -657,7 +657,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.Listxml.Input? input)
private static void Validate(Data.Models.Listxml.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Service);
@@ -675,7 +675,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Control
/// </summary>
private static void Validate(Models.Listxml.Control? control)
private static void Validate(Data.Models.Listxml.Control? control)
{
Assert.NotNull(control);
Assert.Equal("XXXXXX", control.Type);
@@ -695,7 +695,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.Listxml.DipSwitch? dipswitch)
private static void Validate(Data.Models.Listxml.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -715,7 +715,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Condition
/// </summary>
private static void Validate(Models.Listxml.Condition? condition)
private static void Validate(Data.Models.Listxml.Condition? condition)
{
Assert.NotNull(condition);
Assert.Equal("XXXXXX", condition.Tag);
@@ -727,7 +727,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipLocation
/// </summary>
private static void Validate(Models.Listxml.DipLocation? diplocation)
private static void Validate(Data.Models.Listxml.DipLocation? diplocation)
{
Assert.NotNull(diplocation);
Assert.Equal("XXXXXX", diplocation.Name);
@@ -738,7 +738,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.Listxml.DipValue? dipvalue)
private static void Validate(Data.Models.Listxml.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);
@@ -750,7 +750,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.Listxml.Configuration? configuration)
private static void Validate(Data.Models.Listxml.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.Name);
@@ -770,7 +770,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ConfLocation
/// </summary>
private static void Validate(Models.Listxml.ConfLocation? conflocation)
private static void Validate(Data.Models.Listxml.ConfLocation? conflocation)
{
Assert.NotNull(conflocation);
Assert.Equal("XXXXXX", conflocation.Name);
@@ -781,7 +781,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ConfSetting
/// </summary>
private static void Validate(Models.Listxml.ConfSetting? confsetting)
private static void Validate(Data.Models.Listxml.ConfSetting? confsetting)
{
Assert.NotNull(confsetting);
Assert.Equal("XXXXXX", confsetting.Name);
@@ -793,7 +793,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Port
/// </summary>
private static void Validate(Models.Listxml.Port? port)
private static void Validate(Data.Models.Listxml.Port? port)
{
Assert.NotNull(port);
Assert.Equal("XXXXXX", port.Tag);
@@ -806,7 +806,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Analog
/// </summary>
private static void Validate(Models.Listxml.Analog? analog)
private static void Validate(Data.Models.Listxml.Analog? analog)
{
Assert.NotNull(analog);
Assert.Equal("XXXXXX", analog.Mask);
@@ -815,7 +815,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Adjuster
/// </summary>
private static void Validate(Models.Listxml.Adjuster? adjuster)
private static void Validate(Data.Models.Listxml.Adjuster? adjuster)
{
Assert.NotNull(adjuster);
Assert.Equal("XXXXXX", adjuster.Name);
@@ -826,7 +826,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Listxml.Driver? driver)
private static void Validate(Data.Models.Listxml.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -845,7 +845,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.Listxml.Feature? feature)
private static void Validate(Data.Models.Listxml.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Type);
@@ -856,7 +856,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Device
/// </summary>
private static void Validate(Models.Listxml.Device? device)
private static void Validate(Data.Models.Listxml.Device? device)
{
Assert.NotNull(device);
Assert.Equal("XXXXXX", device.Type);
@@ -874,7 +874,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Instance
/// </summary>
private static void Validate(Models.Listxml.Instance? instance)
private static void Validate(Data.Models.Listxml.Instance? instance)
{
Assert.NotNull(instance);
Assert.Equal("XXXXXX", instance.Name);
@@ -884,7 +884,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Extension
/// </summary>
private static void Validate(Models.Listxml.Extension? extension)
private static void Validate(Data.Models.Listxml.Extension? extension)
{
Assert.NotNull(extension);
Assert.Equal("XXXXXX", extension.Name);
@@ -893,7 +893,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Slot
/// </summary>
private static void Validate(Models.Listxml.Slot? slot)
private static void Validate(Data.Models.Listxml.Slot? slot)
{
Assert.NotNull(slot);
Assert.Equal("XXXXXX", slot.Name);
@@ -906,7 +906,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SlotOption
/// </summary>
private static void Validate(Models.Listxml.SlotOption? slotoption)
private static void Validate(Data.Models.Listxml.SlotOption? slotoption)
{
Assert.NotNull(slotoption);
Assert.Equal("XXXXXX", slotoption.Name);
@@ -917,7 +917,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Listxml.SoftwareList? softwarelist)
private static void Validate(Data.Models.Listxml.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);
@@ -929,7 +929,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a RamOption
/// </summary>
private static void Validate(Models.Listxml.RamOption? ramoption)
private static void Validate(Data.Models.Listxml.RamOption? ramoption)
{
Assert.NotNull(ramoption);
Assert.Equal("XXXXXX", ramoption.Name);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class MSDOSTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class MessTests
{
@@ -74,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripGameTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Mess();
var serializer = new Serialization.Serializers.Mess();
var deserializer = new Mess();
var serializer = new SabreTools.Serialization.Writers.Mess();
// Build the data
Models.Listxml.Mess m1 = Build(game: true);
Data.Models.Listxml.Mess m1 = Build(game: true);
// Serialize to generic model
Stream? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize to stream
Models.Listxml.Mess? newMess = deserializer.Deserialize(metadata);
Data.Models.Listxml.Mess? newMess = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMess);
@@ -100,18 +100,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripMachineTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.Mess();
var serializer = new Serialization.Serializers.Mess();
var deserializer = new Mess();
var serializer = new SabreTools.Serialization.Writers.Mess();
// Build the data
Models.Listxml.Mess m1 = Build(game: false);
Data.Models.Listxml.Mess m1 = Build(game: false);
// Serialize to generic model
Stream? metadata = serializer.Serialize(m1);
Assert.NotNull(metadata);
// Serialize to stream
Models.Listxml.Mess? newMess = deserializer.Deserialize(metadata);
Data.Models.Listxml.Mess? newMess = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMess);
@@ -125,16 +125,16 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.Listxml.Mess Build(bool game)
private static Data.Models.Listxml.Mess Build(bool game)
{
var biosset = new Models.Listxml.BiosSet
var biosset = new Data.Models.Listxml.BiosSet
{
Name = "XXXXXX",
Description = "XXXXXX",
Default = "XXXXXX",
};
var rom = new Models.Listxml.Rom
var rom = new Data.Models.Listxml.Rom
{
Name = "XXXXXX",
Bios = "XXXXXX",
@@ -150,7 +150,7 @@ namespace SabreTools.Serialization.Test.Deserializers
SoundOnly = "XXXXXX",
};
var disk = new Models.Listxml.Disk
var disk = new Data.Models.Listxml.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -163,17 +163,17 @@ namespace SabreTools.Serialization.Test.Deserializers
Optional = "XXXXXX",
};
var deviceref = new Models.Listxml.DeviceRef
var deviceref = new Data.Models.Listxml.DeviceRef
{
Name = "XXXXXX",
};
var sample = new Models.Listxml.Sample
var sample = new Data.Models.Listxml.Sample
{
Name = "XXXXXX",
};
var chip = new Models.Listxml.Chip
var chip = new Data.Models.Listxml.Chip
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -182,7 +182,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Clock = "XXXXXX",
};
var display = new Models.Listxml.Display
var display = new Data.Models.Listxml.Display
{
Tag = "XXXXXX",
Type = "XXXXXX",
@@ -200,7 +200,7 @@ namespace SabreTools.Serialization.Test.Deserializers
VBStart = "XXXXXX",
};
var video = new Models.Listxml.Video
var video = new Data.Models.Listxml.Video
{
Screen = "XXXXXX",
Orientation = "XXXXXX",
@@ -211,12 +211,12 @@ namespace SabreTools.Serialization.Test.Deserializers
Refresh = "XXXXXX",
};
var sound = new Models.Listxml.Sound
var sound = new Data.Models.Listxml.Sound
{
Channels = "XXXXXX",
};
var control = new Models.Listxml.Control
var control = new Data.Models.Listxml.Control
{
Type = "XXXXXX",
Player = "XXXXXX",
@@ -232,7 +232,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Ways3 = "XXXXXX",
};
var input = new Models.Listxml.Input
var input = new Data.Models.Listxml.Input
{
Service = "XXXXXX",
Tilt = "XXXXXX",
@@ -243,7 +243,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Control = [control],
};
var condition = new Models.Listxml.Condition
var condition = new Data.Models.Listxml.Condition
{
Tag = "XXXXXX",
Mask = "XXXXXX",
@@ -251,14 +251,14 @@ namespace SabreTools.Serialization.Test.Deserializers
Value = "XXXXXX",
};
var diplocation = new Models.Listxml.DipLocation
var diplocation = new Data.Models.Listxml.DipLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var dipvalue = new Models.Listxml.DipValue
var dipvalue = new Data.Models.Listxml.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -266,7 +266,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Condition = condition,
};
var dipswitch = new Models.Listxml.DipSwitch
var dipswitch = new Data.Models.Listxml.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -276,14 +276,14 @@ namespace SabreTools.Serialization.Test.Deserializers
DipValue = [dipvalue],
};
var conflocation = new Models.Listxml.ConfLocation
var conflocation = new Data.Models.Listxml.ConfLocation
{
Name = "XXXXXX",
Number = "XXXXXX",
Inverted = "XXXXXX",
};
var confsetting = new Models.Listxml.ConfSetting
var confsetting = new Data.Models.Listxml.ConfSetting
{
Name = "XXXXXX",
Value = "XXXXXX",
@@ -291,7 +291,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Condition = condition,
};
var configuration = new Models.Listxml.Configuration
var configuration = new Data.Models.Listxml.Configuration
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -301,25 +301,25 @@ namespace SabreTools.Serialization.Test.Deserializers
ConfSetting = [confsetting],
};
var analog = new Models.Listxml.Analog
var analog = new Data.Models.Listxml.Analog
{
Mask = "XXXXXX",
};
var port = new Models.Listxml.Port
var port = new Data.Models.Listxml.Port
{
Tag = "XXXXXX",
Analog = [analog],
};
var adjuster = new Models.Listxml.Adjuster
var adjuster = new Data.Models.Listxml.Adjuster
{
Name = "XXXXXX",
Default = "XXXXXX",
Condition = condition,
};
var driver = new Models.Listxml.Driver
var driver = new Data.Models.Listxml.Driver
{
Status = "XXXXXX",
Color = "XXXXXX",
@@ -334,25 +334,25 @@ namespace SabreTools.Serialization.Test.Deserializers
Incomplete = "XXXXXX",
};
var feature = new Models.Listxml.Feature
var feature = new Data.Models.Listxml.Feature
{
Type = "XXXXXX",
Status = "XXXXXX",
Overall = "XXXXXX",
};
var instance = new Models.Listxml.Instance
var instance = new Data.Models.Listxml.Instance
{
Name = "XXXXXX",
BriefName = "XXXXXX",
};
var extension = new Models.Listxml.Extension
var extension = new Data.Models.Listxml.Extension
{
Name = "XXXXXX",
};
var device = new Models.Listxml.Device
var device = new Data.Models.Listxml.Device
{
Type = "XXXXXX",
Tag = "XXXXXX",
@@ -363,20 +363,20 @@ namespace SabreTools.Serialization.Test.Deserializers
Extension = [extension],
};
var slotOption = new Models.Listxml.SlotOption
var slotOption = new Data.Models.Listxml.SlotOption
{
Name = "XXXXXX",
DevName = "XXXXXX",
Default = "XXXXXX",
};
var slot = new Models.Listxml.Slot
var slot = new Data.Models.Listxml.Slot
{
Name = "XXXXXX",
SlotOption = [slotOption],
};
var softwarelist = new Models.Listxml.SoftwareList
var softwarelist = new Data.Models.Listxml.SoftwareList
{
Tag = "XXXXXX",
Name = "XXXXXX",
@@ -384,16 +384,16 @@ namespace SabreTools.Serialization.Test.Deserializers
Filter = "XXXXXX",
};
var ramoption = new Models.Listxml.RamOption
var ramoption = new Data.Models.Listxml.RamOption
{
Name = "XXXXXX",
Default = "XXXXXX",
Content = "XXXXXX",
};
Models.Listxml.GameBase gameBase = game
? new Models.Listxml.Game()
: new Models.Listxml.Machine();
Data.Models.Listxml.GameBase gameBase = game
? new Data.Models.Listxml.Game()
: new Data.Models.Listxml.Machine();
gameBase.Name = "XXXXXX";
gameBase.SourceFile = "XXXXXX";
gameBase.IsBios = "XXXXXX";
@@ -428,7 +428,7 @@ namespace SabreTools.Serialization.Test.Deserializers
gameBase.SoftwareList = [softwarelist];
gameBase.RamOption = [ramoption];
return new Models.Listxml.Mess
return new Data.Models.Listxml.Mess
{
Version = "XXXXXX",
Game = [gameBase],
@@ -438,7 +438,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a GameBase
/// </summary>
private static void Validate(Models.Listxml.GameBase? gb)
private static void Validate(Data.Models.Listxml.GameBase? gb)
{
Assert.NotNull(gb);
Assert.Equal("XXXXXX", gb.Name);
@@ -532,7 +532,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a BiosSet
/// </summary>
private static void Validate(Models.Listxml.BiosSet? biosset)
private static void Validate(Data.Models.Listxml.BiosSet? biosset)
{
Assert.NotNull(biosset);
Assert.Equal("XXXXXX", biosset.Name);
@@ -543,7 +543,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.Listxml.Rom? rom)
private static void Validate(Data.Models.Listxml.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -563,7 +563,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.Listxml.Disk? disk)
private static void Validate(Data.Models.Listxml.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -580,7 +580,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DeviceRef
/// </summary>
private static void Validate(Models.Listxml.DeviceRef? deviceref)
private static void Validate(Data.Models.Listxml.DeviceRef? deviceref)
{
Assert.NotNull(deviceref);
Assert.Equal("XXXXXX", deviceref.Name);
@@ -589,7 +589,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sample
/// </summary>
private static void Validate(Models.Listxml.Sample? sample)
private static void Validate(Data.Models.Listxml.Sample? sample)
{
Assert.NotNull(sample);
Assert.Equal("XXXXXX", sample.Name);
@@ -598,7 +598,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Chip
/// </summary>
private static void Validate(Models.Listxml.Chip? chip)
private static void Validate(Data.Models.Listxml.Chip? chip)
{
Assert.NotNull(chip);
Assert.Equal("XXXXXX", chip.Name);
@@ -611,7 +611,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Display
/// </summary>
private static void Validate(Models.Listxml.Display? display)
private static void Validate(Data.Models.Listxml.Display? display)
{
Assert.NotNull(display);
Assert.Equal("XXXXXX", display.Tag);
@@ -633,7 +633,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Video
/// </summary>
private static void Validate(Models.Listxml.Video? video)
private static void Validate(Data.Models.Listxml.Video? video)
{
Assert.NotNull(video);
Assert.Equal("XXXXXX", video.Screen);
@@ -648,7 +648,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Sound
/// </summary>
private static void Validate(Models.Listxml.Sound? sound)
private static void Validate(Data.Models.Listxml.Sound? sound)
{
Assert.NotNull(sound);
Assert.Equal("XXXXXX", sound.Channels);
@@ -657,7 +657,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Input
/// </summary>
private static void Validate(Models.Listxml.Input? input)
private static void Validate(Data.Models.Listxml.Input? input)
{
Assert.NotNull(input);
Assert.Equal("XXXXXX", input.Service);
@@ -675,7 +675,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Control
/// </summary>
private static void Validate(Models.Listxml.Control? control)
private static void Validate(Data.Models.Listxml.Control? control)
{
Assert.NotNull(control);
Assert.Equal("XXXXXX", control.Type);
@@ -695,7 +695,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.Listxml.DipSwitch? dipswitch)
private static void Validate(Data.Models.Listxml.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -715,7 +715,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Condition
/// </summary>
private static void Validate(Models.Listxml.Condition? condition)
private static void Validate(Data.Models.Listxml.Condition? condition)
{
Assert.NotNull(condition);
Assert.Equal("XXXXXX", condition.Tag);
@@ -727,7 +727,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipLocation
/// </summary>
private static void Validate(Models.Listxml.DipLocation? diplocation)
private static void Validate(Data.Models.Listxml.DipLocation? diplocation)
{
Assert.NotNull(diplocation);
Assert.Equal("XXXXXX", diplocation.Name);
@@ -738,7 +738,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.Listxml.DipValue? dipvalue)
private static void Validate(Data.Models.Listxml.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);
@@ -750,7 +750,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.Listxml.Configuration? configuration)
private static void Validate(Data.Models.Listxml.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.Name);
@@ -770,7 +770,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ConfLocation
/// </summary>
private static void Validate(Models.Listxml.ConfLocation? conflocation)
private static void Validate(Data.Models.Listxml.ConfLocation? conflocation)
{
Assert.NotNull(conflocation);
Assert.Equal("XXXXXX", conflocation.Name);
@@ -781,7 +781,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a ConfSetting
/// </summary>
private static void Validate(Models.Listxml.ConfSetting? confsetting)
private static void Validate(Data.Models.Listxml.ConfSetting? confsetting)
{
Assert.NotNull(confsetting);
Assert.Equal("XXXXXX", confsetting.Name);
@@ -793,7 +793,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Port
/// </summary>
private static void Validate(Models.Listxml.Port? port)
private static void Validate(Data.Models.Listxml.Port? port)
{
Assert.NotNull(port);
Assert.Equal("XXXXXX", port.Tag);
@@ -806,7 +806,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Analog
/// </summary>
private static void Validate(Models.Listxml.Analog? analog)
private static void Validate(Data.Models.Listxml.Analog? analog)
{
Assert.NotNull(analog);
Assert.Equal("XXXXXX", analog.Mask);
@@ -815,7 +815,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Adjuster
/// </summary>
private static void Validate(Models.Listxml.Adjuster? adjuster)
private static void Validate(Data.Models.Listxml.Adjuster? adjuster)
{
Assert.NotNull(adjuster);
Assert.Equal("XXXXXX", adjuster.Name);
@@ -826,7 +826,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Driver
/// </summary>
private static void Validate(Models.Listxml.Driver? driver)
private static void Validate(Data.Models.Listxml.Driver? driver)
{
Assert.NotNull(driver);
Assert.Equal("XXXXXX", driver.Status);
@@ -845,7 +845,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.Listxml.Feature? feature)
private static void Validate(Data.Models.Listxml.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Type);
@@ -856,7 +856,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Device
/// </summary>
private static void Validate(Models.Listxml.Device? device)
private static void Validate(Data.Models.Listxml.Device? device)
{
Assert.NotNull(device);
Assert.Equal("XXXXXX", device.Type);
@@ -874,7 +874,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Instance
/// </summary>
private static void Validate(Models.Listxml.Instance? instance)
private static void Validate(Data.Models.Listxml.Instance? instance)
{
Assert.NotNull(instance);
Assert.Equal("XXXXXX", instance.Name);
@@ -884,7 +884,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Extension
/// </summary>
private static void Validate(Models.Listxml.Extension? extension)
private static void Validate(Data.Models.Listxml.Extension? extension)
{
Assert.NotNull(extension);
Assert.Equal("XXXXXX", extension.Name);
@@ -893,7 +893,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Slot
/// </summary>
private static void Validate(Models.Listxml.Slot? slot)
private static void Validate(Data.Models.Listxml.Slot? slot)
{
Assert.NotNull(slot);
Assert.Equal("XXXXXX", slot.Name);
@@ -906,7 +906,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SlotOption
/// </summary>
private static void Validate(Models.Listxml.SlotOption? slotoption)
private static void Validate(Data.Models.Listxml.SlotOption? slotoption)
{
Assert.NotNull(slotoption);
Assert.Equal("XXXXXX", slotoption.Name);
@@ -917,7 +917,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SoftwareList
/// </summary>
private static void Validate(Models.Listxml.SoftwareList? softwarelist)
private static void Validate(Data.Models.Listxml.SoftwareList? softwarelist)
{
Assert.NotNull(softwarelist);
Assert.Equal("XXXXXX", softwarelist.Tag);
@@ -929,7 +929,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a RamOption
/// </summary>
private static void Validate(Models.Listxml.RamOption? ramoption)
private static void Validate(Data.Models.Listxml.RamOption? ramoption)
{
Assert.NotNull(ramoption);
Assert.Equal("XXXXXX", ramoption.Name);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class MicrosoftCabinetTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class MoPaQTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class N3DSTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class NCFTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class NewExecutableTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class NitroTests
{

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class OfflineListTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.OfflineList();
var serializer = new Serialization.Serializers.OfflineList();
var deserializer = new OfflineList();
var serializer = new SabreTools.Serialization.Writers.OfflineList();
// Build the data
Models.OfflineList.Dat dat = Build();
Data.Models.OfflineList.Dat dat = Build();
// Serialize to stream
Stream? metadata = serializer.Serialize(dat);
Assert.NotNull(metadata);
// Serialize back to original model
Models.OfflineList.Dat? newDat = deserializer.Deserialize(metadata);
Data.Models.OfflineList.Dat? newDat = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newDat);
@@ -99,89 +98,89 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.OfflineList.Dat Build()
private static Data.Models.OfflineList.Dat Build()
{
var infos = new Models.OfflineList.Infos
var infos = new Data.Models.OfflineList.Infos
{
Title = new Models.OfflineList.Title
Title = new Data.Models.OfflineList.Title
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Location = new Models.OfflineList.Location
Location = new Data.Models.OfflineList.Location
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Publisher = new Models.OfflineList.Publisher
Publisher = new Data.Models.OfflineList.Publisher
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
SourceRom = new Models.OfflineList.SourceRom
SourceRom = new Data.Models.OfflineList.SourceRom
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
SaveType = new Models.OfflineList.SaveType
SaveType = new Data.Models.OfflineList.SaveType
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
RomSize = new Models.OfflineList.RomSize
RomSize = new Data.Models.OfflineList.RomSize
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
ReleaseNumber = new Models.OfflineList.ReleaseNumber
ReleaseNumber = new Data.Models.OfflineList.ReleaseNumber
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
ImageNumber = new Models.OfflineList.ImageNumber
ImageNumber = new Data.Models.OfflineList.ImageNumber
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
LanguageNumber = new Models.OfflineList.LanguageNumber
LanguageNumber = new Data.Models.OfflineList.LanguageNumber
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Comment = new Models.OfflineList.Comment
Comment = new Data.Models.OfflineList.Comment
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
RomCRC = new Models.OfflineList.RomCRC
RomCRC = new Data.Models.OfflineList.RomCRC
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Im1CRC = new Models.OfflineList.Im1CRC
Im1CRC = new Data.Models.OfflineList.Im1CRC
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Im2CRC = new Models.OfflineList.Im2CRC
Im2CRC = new Data.Models.OfflineList.Im2CRC
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
Default = "XXXXXX",
},
Languages = new Models.OfflineList.Languages
Languages = new Data.Models.OfflineList.Languages
{
Visible = "XXXXXX",
InNamingOption = "XXXXXX",
@@ -189,32 +188,32 @@ namespace SabreTools.Serialization.Test.Deserializers
},
};
var canopen = new Models.OfflineList.CanOpen
var canopen = new Data.Models.OfflineList.CanOpen
{
Extension = ["XXXXXX"],
};
var daturl = new Models.OfflineList.DatUrl
var daturl = new Data.Models.OfflineList.DatUrl
{
FileName = "XXXXXX",
Content = "XXXXXX",
};
var newdat = new Models.OfflineList.NewDat
var newdat = new Data.Models.OfflineList.NewDat
{
DatVersionUrl = "XXXXXX",
DatUrl = daturl,
ImUrl = "XXXXXX",
};
var find = new Models.OfflineList.Find
var find = new Data.Models.OfflineList.Find
{
Operation = "XXXXXX",
Value = "XXXXXX",
Content = "XXXXXX",
};
var to = new Models.OfflineList.To
var to = new Data.Models.OfflineList.To
{
Value = "XXXXXX",
Default = "XXXXXX",
@@ -222,12 +221,12 @@ namespace SabreTools.Serialization.Test.Deserializers
Find = [find],
};
var search = new Models.OfflineList.Search
var search = new Data.Models.OfflineList.Search
{
To = [to],
};
var configuration = new Models.OfflineList.Configuration
var configuration = new Data.Models.OfflineList.Configuration
{
DatName = "XXXXXX",
ImFolder = "XXXXXX",
@@ -242,18 +241,18 @@ namespace SabreTools.Serialization.Test.Deserializers
RomTitle = "XXXXXX",
};
var fileromcrc = new Models.OfflineList.FileRomCRC
var fileromcrc = new Data.Models.OfflineList.FileRomCRC
{
Extension = "XXXXXX",
Content = "XXXXXX",
};
var files = new Models.OfflineList.Files
var files = new Data.Models.OfflineList.Files
{
RomCRC = [fileromcrc],
};
var game = new Models.OfflineList.Game
var game = new Data.Models.OfflineList.Game
{
ImageNumber = "XXXXXX",
ReleaseNumber = "XXXXXX",
@@ -271,12 +270,12 @@ namespace SabreTools.Serialization.Test.Deserializers
DuplicateID = "XXXXXX",
};
var games = new Models.OfflineList.Games
var games = new Data.Models.OfflineList.Games
{
Game = [game],
};
var image = new Models.OfflineList.Image
var image = new Data.Models.OfflineList.Image
{
X = "XXXXXX",
Y = "XXXXXX",
@@ -284,19 +283,19 @@ namespace SabreTools.Serialization.Test.Deserializers
Height = "XXXXXX",
};
var images = new Models.OfflineList.Images
var images = new Data.Models.OfflineList.Images
{
Width = "XXXXXX",
Height = "XXXXXX",
Image = [image],
};
var gui = new Models.OfflineList.GUI
var gui = new Data.Models.OfflineList.GUI
{
Images = images,
};
return new Models.OfflineList.Dat
return new Data.Models.OfflineList.Dat
{
NoNamespaceSchemaLocation = "XXXXXX",
Configuration = configuration,
@@ -308,7 +307,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Configuration
/// </summary>
private static void Validate(Models.OfflineList.Configuration? configuration)
private static void Validate(Data.Models.OfflineList.Configuration? configuration)
{
Assert.NotNull(configuration);
Assert.Equal("XXXXXX", configuration.DatName);
@@ -327,7 +326,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Infos
/// </summary>
private static void Validate(Models.OfflineList.Infos? infos)
private static void Validate(Data.Models.OfflineList.Infos? infos)
{
Assert.NotNull(infos);
Validate(infos.Title);
@@ -349,7 +348,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a InfoBase
/// </summary>
private static void Validate(Models.OfflineList.InfoBase? info)
private static void Validate(Data.Models.OfflineList.InfoBase? info)
{
Assert.NotNull(info);
Assert.Equal("XXXXXX", info.Visible);
@@ -360,7 +359,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a CanOpen
/// </summary>
private static void Validate(Models.OfflineList.CanOpen? canopen)
private static void Validate(Data.Models.OfflineList.CanOpen? canopen)
{
Assert.NotNull(canopen);
Assert.NotNull(canopen.Extension);
@@ -371,7 +370,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a NewDat
/// </summary>
private static void Validate(Models.OfflineList.NewDat? newdat)
private static void Validate(Data.Models.OfflineList.NewDat? newdat)
{
Assert.NotNull(newdat);
Assert.Equal("XXXXXX", newdat.DatVersionUrl);
@@ -382,7 +381,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DatUrl
/// </summary>
private static void Validate(Models.OfflineList.DatUrl? daturl)
private static void Validate(Data.Models.OfflineList.DatUrl? daturl)
{
Assert.NotNull(daturl);
Assert.Equal("XXXXXX", daturl.FileName);
@@ -392,7 +391,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Search
/// </summary>
private static void Validate(Models.OfflineList.Search? search)
private static void Validate(Data.Models.OfflineList.Search? search)
{
Assert.NotNull(search);
Assert.NotNull(search.To);
@@ -403,7 +402,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a To
/// </summary>
private static void Validate(Models.OfflineList.To? to)
private static void Validate(Data.Models.OfflineList.To? to)
{
Assert.NotNull(to);
Assert.Equal("XXXXXX", to.Value);
@@ -418,7 +417,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Find
/// </summary>
private static void Validate(Models.OfflineList.Find? find)
private static void Validate(Data.Models.OfflineList.Find? find)
{
Assert.NotNull(find);
Assert.Equal("XXXXXX", find.Operation);
@@ -429,7 +428,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Games
/// </summary>
private static void Validate(Models.OfflineList.Games? games)
private static void Validate(Data.Models.OfflineList.Games? games)
{
Assert.NotNull(games);
Assert.NotNull(games.Game);
@@ -440,7 +439,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Game
/// </summary>
private static void Validate(Models.OfflineList.Game? game)
private static void Validate(Data.Models.OfflineList.Game? game)
{
Assert.NotNull(game);
Assert.Equal("XXXXXX", game.ImageNumber);
@@ -462,7 +461,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Files
/// </summary>
private static void Validate(Models.OfflineList.Files? files)
private static void Validate(Data.Models.OfflineList.Files? files)
{
Assert.NotNull(files);
Assert.NotNull(files.RomCRC);
@@ -473,7 +472,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a FileRomCRC
/// </summary>
private static void Validate(Models.OfflineList.FileRomCRC? fileromcrc)
private static void Validate(Data.Models.OfflineList.FileRomCRC? fileromcrc)
{
Assert.NotNull(fileromcrc);
Assert.Equal("XXXXXX", fileromcrc.Extension);
@@ -483,7 +482,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a GUI
/// </summary>
private static void Validate(Models.OfflineList.GUI? gui)
private static void Validate(Data.Models.OfflineList.GUI? gui)
{
Assert.NotNull(gui);
Validate(gui.Images);
@@ -492,7 +491,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Images
/// </summary>
private static void Validate(Models.OfflineList.Images? images)
private static void Validate(Data.Models.OfflineList.Images? images)
{
Assert.NotNull(images);
Assert.Equal("XXXXXX", images.Width);
@@ -506,7 +505,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Image
/// </summary>
private static void Validate(Models.OfflineList.Image? image)
private static void Validate(Data.Models.OfflineList.Image? image)
{
Assert.NotNull(image);
Assert.Equal("XXXXXX", image.X);

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class OpenMSXTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.OpenMSX();
var serializer = new Serialization.Serializers.OpenMSX();
var deserializer = new OpenMSX();
var serializer = new SabreTools.Serialization.Writers.OpenMSX();
// Build the data
Models.OpenMSX.SoftwareDb sdb = Build();
Data.Models.OpenMSX.SoftwareDb sdb = Build();
// Serialize to stream
Stream? metadata = serializer.Serialize(sdb);
Assert.NotNull(metadata);
// Serialize back to original model
Models.OpenMSX.SoftwareDb? newSdb = deserializer.Deserialize(metadata);
Data.Models.OpenMSX.SoftwareDb? newSdb = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newSdb);
@@ -100,15 +99,15 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.OpenMSX.SoftwareDb Build()
private static Data.Models.OpenMSX.SoftwareDb Build()
{
var original = new Models.OpenMSX.Original
var original = new Data.Models.OpenMSX.Original
{
Value = "XXXXXX",
Content = "XXXXXX",
};
var rom = new Models.OpenMSX.Rom
var rom = new Data.Models.OpenMSX.Rom
{
Start = "XXXXXX",
Type = "XXXXXX",
@@ -116,13 +115,13 @@ namespace SabreTools.Serialization.Test.Deserializers
Remark = "XXXXXX",
};
var dump_rom = new Models.OpenMSX.Dump
var dump_rom = new Data.Models.OpenMSX.Dump
{
Original = original,
Rom = rom,
};
var megarom = new Models.OpenMSX.MegaRom
var megarom = new Data.Models.OpenMSX.MegaRom
{
Start = "XXXXXX",
Type = "XXXXXX",
@@ -130,13 +129,13 @@ namespace SabreTools.Serialization.Test.Deserializers
Remark = "XXXXXX",
};
var dump_megarom = new Models.OpenMSX.Dump
var dump_megarom = new Data.Models.OpenMSX.Dump
{
Original = original,
Rom = megarom,
};
var sccpluscart = new Models.OpenMSX.SCCPlusCart
var sccpluscart = new Data.Models.OpenMSX.SCCPlusCart
{
Start = "XXXXXX",
Type = "XXXXXX",
@@ -144,13 +143,13 @@ namespace SabreTools.Serialization.Test.Deserializers
Remark = "XXXXXX",
};
var dump_sccpluscart = new Models.OpenMSX.Dump
var dump_sccpluscart = new Data.Models.OpenMSX.Dump
{
Original = original,
Rom = sccpluscart,
};
var software = new Models.OpenMSX.Software
var software = new Data.Models.OpenMSX.Software
{
Title = "XXXXXX",
GenMSXID = "XXXXXX",
@@ -161,7 +160,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Dump = [dump_rom, dump_megarom, dump_sccpluscart],
};
return new Models.OpenMSX.SoftwareDb
return new Data.Models.OpenMSX.SoftwareDb
{
Timestamp = "XXXXXX",
Software = [software],
@@ -171,7 +170,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Software
/// </summary>
private static void Validate(Models.OpenMSX.Software? software)
private static void Validate(Data.Models.OpenMSX.Software? software)
{
Assert.NotNull(software);
Assert.Equal("XXXXXX", software.Title);
@@ -192,7 +191,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Dump
/// </summary>
private static void Validate(Models.OpenMSX.Dump? dump)
private static void Validate(Data.Models.OpenMSX.Dump? dump)
{
Assert.NotNull(dump);
Validate(dump.Original);
@@ -202,7 +201,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Original
/// </summary>
private static void Validate(Models.OpenMSX.Original? original)
private static void Validate(Data.Models.OpenMSX.Original? original)
{
Assert.NotNull(original);
Assert.Equal("XXXXXX", original.Value);
@@ -212,7 +211,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a RomBase
/// </summary>
private static void Validate(Models.OpenMSX.RomBase? rombase)
private static void Validate(Data.Models.OpenMSX.RomBase? rombase)
{
Assert.NotNull(rombase);
Assert.Equal("XXXXXX", rombase.Start);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PAKTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PFFTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PICTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PKZIPTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PlayJAudioTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PlayJPlaylistTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class PortableExecutableTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class QuantumTests
{

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class RomCenterTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.RomCenter();
var serializer = new Serialization.Serializers.RomCenter();
var deserializer = new RomCenter();
var serializer = new SabreTools.Serialization.Writers.RomCenter();
// Build the data
Models.RomCenter.MetadataFile mf = Build();
Data.Models.RomCenter.MetadataFile mf = Build();
// Serialize to stream
Stream? metadata = serializer.Serialize(mf);
Stream? metadata = serializer.SerializeStream(mf);
Assert.NotNull(metadata);
// Serialize back to original model
Models.RomCenter.MetadataFile? newMf = deserializer.Deserialize(metadata);
Data.Models.RomCenter.MetadataFile? newMf = deserializer.Deserialize(metadata);
// Validate the data
Assert.NotNull(newMf);
@@ -99,9 +98,9 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.RomCenter.MetadataFile Build()
private static Data.Models.RomCenter.MetadataFile Build()
{
var credits = new Models.RomCenter.Credits
var credits = new Data.Models.RomCenter.Credits
{
Author = "XXXXXX",
Version = "XXXXXX",
@@ -112,7 +111,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Comment = "XXXXXX",
};
var dat = new Models.RomCenter.Dat
var dat = new Data.Models.RomCenter.Dat
{
Version = "XXXXXX",
Plugin = "XXXXXX",
@@ -120,13 +119,13 @@ namespace SabreTools.Serialization.Test.Deserializers
Merge = "XXXXXX",
};
var emulator = new Models.RomCenter.Emulator
var emulator = new Data.Models.RomCenter.Emulator
{
RefName = "XXXXXX",
Version = "XXXXXX",
};
var rom = new Models.RomCenter.Rom
var rom = new Data.Models.RomCenter.Rom
{
ParentName = "XXXXXX",
ParentDescription = "XXXXXX",
@@ -139,12 +138,12 @@ namespace SabreTools.Serialization.Test.Deserializers
MergeName = "XXXXXX",
};
var games = new Models.RomCenter.Games
var games = new Data.Models.RomCenter.Games
{
Rom = [rom],
};
return new Models.RomCenter.MetadataFile
return new Data.Models.RomCenter.MetadataFile
{
Credits = credits,
Dat = dat,
@@ -156,7 +155,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Credits
/// </summary>
private static void Validate(Models.RomCenter.Credits? credits)
private static void Validate(Data.Models.RomCenter.Credits? credits)
{
Assert.NotNull(credits);
Assert.Equal("XXXXXX", credits.Author);
@@ -171,7 +170,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Dat
/// </summary>
private static void Validate(Models.RomCenter.Dat? dat)
private static void Validate(Data.Models.RomCenter.Dat? dat)
{
Assert.NotNull(dat);
Assert.Equal("XXXXXX", dat.Version);
@@ -183,7 +182,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Emulator
/// </summary>
private static void Validate(Models.RomCenter.Emulator? emulator)
private static void Validate(Data.Models.RomCenter.Emulator? emulator)
{
Assert.NotNull(emulator);
Assert.Equal("XXXXXX", emulator.RefName);
@@ -193,7 +192,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Games
/// </summary>
private static void Validate(Models.RomCenter.Games? games)
private static void Validate(Data.Models.RomCenter.Games? games)
{
Assert.NotNull(games);
Assert.NotNull(games.Rom);
@@ -204,7 +203,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.RomCenter.Rom? rom)
private static void Validate(Data.Models.RomCenter.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.ParentName);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class SFBTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class SFOTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class SGATests
{

View File

@@ -1,10 +1,10 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class SeparatedValueTests
{
@@ -75,18 +75,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripShortTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.SeparatedValue();
var serializer = new Serialization.Serializers.SeparatedValue();
var deserializer = new SeparatedValue();
var serializer = new SabreTools.Serialization.Writers.SeparatedValue();
// Build the data
Models.SeparatedValue.MetadataFile mf = Build();
Data.Models.SeparatedValue.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = Serialization.Serializers.SeparatedValue.SerializeStream(mf, longHeader: false);
Stream? actual = serializer.SerializeStream(mf, ',', longHeader: false);
Assert.NotNull(actual);
// Serialize back to original model
Models.SeparatedValue.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.SeparatedValue.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -103,18 +103,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripLongTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.SeparatedValue();
var serializer = new Serialization.Serializers.SeparatedValue();
var deserializer = new SeparatedValue();
var serializer = new SabreTools.Serialization.Writers.SeparatedValue();
// Build the data
Models.SeparatedValue.MetadataFile mf = Build();
Data.Models.SeparatedValue.MetadataFile mf = Build();
// Serialize to stream
Stream? actual = Serialization.Serializers.SeparatedValue.SerializeStream(mf, longHeader: true);
Stream? actual = serializer.SerializeStream(mf, ',', longHeader: true);
Assert.NotNull(actual);
// Serialize back to original model
Models.SeparatedValue.MetadataFile? newMf = deserializer.Deserialize(actual);
Data.Models.SeparatedValue.MetadataFile? newMf = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newMf);
@@ -130,11 +130,11 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.SeparatedValue.MetadataFile Build()
private static Data.Models.SeparatedValue.MetadataFile Build()
{
string[] header = ["header"];
var disk = new Models.SeparatedValue.Row
var disk = new Data.Models.SeparatedValue.Row
{
FileName = "XXXXXX",
InternalName = "XXXXXX",
@@ -148,7 +148,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Status = "XXXXXX",
};
var media = new Models.SeparatedValue.Row
var media = new Data.Models.SeparatedValue.Row
{
FileName = "XXXXXX",
InternalName = "XXXXXX",
@@ -163,7 +163,7 @@ namespace SabreTools.Serialization.Test.Deserializers
SpamSum = "XXXXXX",
};
var rom = new Models.SeparatedValue.Row
var rom = new Data.Models.SeparatedValue.Row
{
FileName = "XXXXXX",
InternalName = "XXXXXX",
@@ -183,7 +183,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Status = "XXXXXX",
};
return new Models.SeparatedValue.MetadataFile
return new Data.Models.SeparatedValue.MetadataFile
{
Header = header,
Row = [disk, media, rom],
@@ -197,15 +197,15 @@ namespace SabreTools.Serialization.Test.Deserializers
{
Assert.NotNull(header);
if (longHeader)
Assert.True(Serialization.Serializers.SeparatedValue.HeaderArrayExtended.SequenceEqual(header));
Assert.True(SabreTools.Serialization.Writers.SeparatedValue.HeaderArrayExtended.SequenceEqual(header));
else
Assert.True(Serialization.Serializers.SeparatedValue.HeaderArrayStandard.SequenceEqual(header));
Assert.True(SabreTools.Serialization.Writers.SeparatedValue.HeaderArrayStandard.SequenceEqual(header));
}
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateDisk(Models.SeparatedValue.Row? row, bool longHeader)
private static void ValidateDisk(Data.Models.SeparatedValue.Row? row, bool longHeader)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.FileName);
@@ -239,7 +239,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateMedia(Models.SeparatedValue.Row? row, bool longHeader)
private static void ValidateMedia(Data.Models.SeparatedValue.Row? row, bool longHeader)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.FileName);
@@ -273,7 +273,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Row
/// </summary>
private static void ValidateRom(Models.SeparatedValue.Row? row, bool longHeader)
private static void ValidateRom(Data.Models.SeparatedValue.Row? row, bool longHeader)
{
Assert.NotNull(row);
Assert.Equal("XXXXXX", row.FileName);

View File

@@ -1,10 +1,9 @@
using System;
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class SoftwareListTests
{
@@ -75,18 +74,18 @@ namespace SabreTools.Serialization.Test.Deserializers
public void RoundTripTest()
{
// Get the serializer and deserializer
var deserializer = new Serialization.Deserializers.SoftwareList();
var serializer = new Serialization.Serializers.SoftwareList();
var deserializer = new SoftwareList();
var serializer = new SabreTools.Serialization.Writers.SoftwareList();
// Build the data
Models.SoftwareList.SoftwareList sl = Build();
Data.Models.SoftwareList.SoftwareList sl = Build();
// Serialize to stream
Stream? actual = serializer.Serialize(sl);
Assert.NotNull(actual);
// Serialize back to original model
Models.SoftwareList.SoftwareList? newSl = deserializer.Deserialize(actual);
Data.Models.SoftwareList.SoftwareList? newSl = deserializer.Deserialize(actual);
// Validate the data
Assert.NotNull(newSl);
@@ -102,27 +101,27 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Build model for serialization and deserialization
/// </summary>
private static Models.SoftwareList.SoftwareList Build()
private static Data.Models.SoftwareList.SoftwareList Build()
{
var info = new Models.SoftwareList.Info
var info = new Data.Models.SoftwareList.Info
{
Name = "XXXXXX",
Value = "XXXXXX",
};
var sharedfeat = new Models.SoftwareList.SharedFeat
var sharedfeat = new Data.Models.SoftwareList.SharedFeat
{
Name = "XXXXXX",
Value = "XXXXXX",
};
var feature = new Models.SoftwareList.Feature
var feature = new Data.Models.SoftwareList.Feature
{
Name = "XXXXXX",
Value = "XXXXXX",
};
var rom = new Models.SoftwareList.Rom
var rom = new Data.Models.SoftwareList.Rom
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -135,7 +134,7 @@ namespace SabreTools.Serialization.Test.Deserializers
LoadFlag = "XXXXXX",
};
var dataarea = new Models.SoftwareList.DataArea
var dataarea = new Data.Models.SoftwareList.DataArea
{
Name = "XXXXXX",
Size = "XXXXXX",
@@ -144,7 +143,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Rom = [rom],
};
var disk = new Models.SoftwareList.Disk
var disk = new Data.Models.SoftwareList.Disk
{
Name = "XXXXXX",
MD5 = "XXXXXX",
@@ -153,20 +152,20 @@ namespace SabreTools.Serialization.Test.Deserializers
Writeable = "XXXXXX",
};
var diskarea = new Models.SoftwareList.DiskArea
var diskarea = new Data.Models.SoftwareList.DiskArea
{
Name = "XXXXXX",
Disk = [disk],
};
var dipvalue = new Models.SoftwareList.DipValue
var dipvalue = new Data.Models.SoftwareList.DipValue
{
Name = "XXXXXX",
Value = "XXXXXX",
Default = "XXXXXX",
};
var dipswitch = new Models.SoftwareList.DipSwitch
var dipswitch = new Data.Models.SoftwareList.DipSwitch
{
Name = "XXXXXX",
Tag = "XXXXXX",
@@ -174,7 +173,7 @@ namespace SabreTools.Serialization.Test.Deserializers
DipValue = [dipvalue],
};
var part = new Models.SoftwareList.Part
var part = new Data.Models.SoftwareList.Part
{
Name = "XXXXXX",
Interface = "XXXXXX",
@@ -184,7 +183,7 @@ namespace SabreTools.Serialization.Test.Deserializers
DipSwitch = [dipswitch],
};
var software = new Models.SoftwareList.Software
var software = new Data.Models.SoftwareList.Software
{
Name = "XXXXXX",
CloneOf = "XXXXXX",
@@ -198,7 +197,7 @@ namespace SabreTools.Serialization.Test.Deserializers
Part = [part],
};
return new Models.SoftwareList.SoftwareList
return new Data.Models.SoftwareList.SoftwareList
{
Name = "XXXXXX",
Description = "XXXXXX",
@@ -210,7 +209,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Software
/// </summary>
private static void Validate(Models.SoftwareList.Software? software)
private static void Validate(Data.Models.SoftwareList.Software? software)
{
Assert.NotNull(software);
Assert.Equal("XXXXXX", software.Name);
@@ -237,7 +236,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Info
/// </summary>
private static void Validate(Models.SoftwareList.Info? info)
private static void Validate(Data.Models.SoftwareList.Info? info)
{
Assert.NotNull(info);
Assert.Equal("XXXXXX", info.Name);
@@ -247,7 +246,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a SharedFeat
/// </summary>
private static void Validate(Models.SoftwareList.SharedFeat? sharedfeat)
private static void Validate(Data.Models.SoftwareList.SharedFeat? sharedfeat)
{
Assert.NotNull(sharedfeat);
Assert.Equal("XXXXXX", sharedfeat.Name);
@@ -257,7 +256,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Part
/// </summary>
private static void Validate(Models.SoftwareList.Part? part)
private static void Validate(Data.Models.SoftwareList.Part? part)
{
Assert.NotNull(part);
Assert.Equal("XXXXXX", part.Name);
@@ -283,7 +282,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Feature
/// </summary>
private static void Validate(Models.SoftwareList.Feature? feature)
private static void Validate(Data.Models.SoftwareList.Feature? feature)
{
Assert.NotNull(feature);
Assert.Equal("XXXXXX", feature.Name);
@@ -293,7 +292,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DataArea
/// </summary>
private static void Validate(Models.SoftwareList.DataArea? dataarea)
private static void Validate(Data.Models.SoftwareList.DataArea? dataarea)
{
Assert.NotNull(dataarea);
Assert.Equal("XXXXXX", dataarea.Name);
@@ -309,7 +308,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Rom
/// </summary>
private static void Validate(Models.SoftwareList.Rom? rom)
private static void Validate(Data.Models.SoftwareList.Rom? rom)
{
Assert.NotNull(rom);
Assert.Equal("XXXXXX", rom.Name);
@@ -326,7 +325,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DiskArea
/// </summary>
private static void Validate(Models.SoftwareList.DiskArea? diskarea)
private static void Validate(Data.Models.SoftwareList.DiskArea? diskarea)
{
Assert.NotNull(diskarea);
Assert.Equal("XXXXXX", diskarea.Name);
@@ -339,7 +338,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a Disk
/// </summary>
private static void Validate(Models.SoftwareList.Disk? disk)
private static void Validate(Data.Models.SoftwareList.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("XXXXXX", disk.Name);
@@ -352,7 +351,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipSwitch
/// </summary>
private static void Validate(Models.SoftwareList.DipSwitch? dipswitch)
private static void Validate(Data.Models.SoftwareList.DipSwitch? dipswitch)
{
Assert.NotNull(dipswitch);
Assert.Equal("XXXXXX", dipswitch.Name);
@@ -367,7 +366,7 @@ namespace SabreTools.Serialization.Test.Deserializers
/// <summary>
/// Validate a DipValue
/// </summary>
private static void Validate(Models.SoftwareList.DipValue? dipvalue)
private static void Validate(Data.Models.SoftwareList.DipValue? dipvalue)
{
Assert.NotNull(dipvalue);
Assert.Equal("XXXXXX", dipvalue.Name);

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class TapeArchiveTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class VBSPTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class VPKTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class WAD3Tests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class WiseOverlayHeaderTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class WiseScriptTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class WiseSectionHeaderTests
{

View File

@@ -1,8 +1,8 @@
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class XMIDTests
{

View File

@@ -1,9 +1,9 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class XZPTests
{

View File

@@ -0,0 +1,73 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Readers
{
public class XZTests
{
[Fact]
public void NullArray_Null()
{
byte[]? data = null;
int offset = 0;
var deserializer = new XZ();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void EmptyArray_Null()
{
byte[]? data = [];
int offset = 0;
var deserializer = new XZ();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void InvalidArray_Null()
{
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
int offset = 0;
var deserializer = new XZ();
var actual = deserializer.Deserialize(data, offset);
Assert.Null(actual);
}
[Fact]
public void NullStream_Null()
{
Stream? data = null;
var deserializer = new XZ();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void EmptyStream_Null()
{
Stream? data = new MemoryStream([]);
var deserializer = new XZ();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
[Fact]
public void InvalidStream_Null()
{
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
var deserializer = new XZ();
var actual = deserializer.Deserialize(data);
Assert.Null(actual);
}
}
}

View File

@@ -1,7 +1,7 @@
using SabreTools.Serialization.Deserializers;
using SabreTools.Serialization.Readers;
using Xunit;
namespace SabreTools.Serialization.Test.Deserializers
namespace SabreTools.Serialization.Test.Readers
{
public class XeMIDTests
{

View File

@@ -26,11 +26,10 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="SabreTools.Hashing" Version="1.5.0" />
<PackageReference Include="SabreTools.Models" Version="1.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
<PackageReference Include="SabreTools.Hashing" Version="[1.5.1]" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4">
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>

View File

@@ -0,0 +1,61 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Wrappers;
using Xunit;
namespace SabreTools.Serialization.Test.Wrappers
{
public class LDSCRYPTTests
{
[Fact]
public void NullArray_Null()
{
byte[]? data = null;
int offset = 0;
var actual = LDSCRYPT.Create(data, offset);
Assert.Null(actual);
}
[Fact]
public void EmptyArray_Null()
{
byte[]? data = [];
int offset = 0;
var actual = LDSCRYPT.Create(data, offset);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void InvalidArray_Null()
{
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
int offset = 0;
var actual = LDSCRYPT.Create(data, offset);
Assert.Null(actual);
}
[Fact]
public void NullStream_Null()
{
Stream? data = null;
var actual = LDSCRYPT.Create(data);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void EmptyStream_Null()
{
Stream? data = new MemoryStream([]);
var actual = LDSCRYPT.Create(data);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void InvalidStream_Null()
{
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
var actual = LDSCRYPT.Create(data);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,61 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Wrappers;
using Xunit;
namespace SabreTools.Serialization.Test.Wrappers
{
public class RealArcadeInstallerTests
{
[Fact]
public void NullArray_Null()
{
byte[]? data = null;
int offset = 0;
var actual = RealArcadeInstaller.Create(data, offset);
Assert.Null(actual);
}
[Fact]
public void EmptyArray_Null()
{
byte[]? data = [];
int offset = 0;
var actual = RealArcadeInstaller.Create(data, offset);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void InvalidArray_Null()
{
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
int offset = 0;
var actual = RealArcadeInstaller.Create(data, offset);
Assert.Null(actual);
}
[Fact]
public void NullStream_Null()
{
Stream? data = null;
var actual = RealArcadeInstaller.Create(data);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void EmptyStream_Null()
{
Stream? data = new MemoryStream([]);
var actual = RealArcadeInstaller.Create(data);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void InvalidStream_Null()
{
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
var actual = RealArcadeInstaller.Create(data);
Assert.Null(actual);
}
}
}

View File

@@ -0,0 +1,61 @@
using System.IO;
using System.Linq;
using SabreTools.Serialization.Wrappers;
using Xunit;
namespace SabreTools.Serialization.Test.Wrappers
{
public class RealArcadeMezzanineTests
{
[Fact]
public void NullArray_Null()
{
byte[]? data = null;
int offset = 0;
var actual = RealArcadeMezzanine.Create(data, offset);
Assert.Null(actual);
}
[Fact]
public void EmptyArray_Null()
{
byte[]? data = [];
int offset = 0;
var actual = RealArcadeMezzanine.Create(data, offset);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void InvalidArray_Null()
{
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
int offset = 0;
var actual = RealArcadeMezzanine.Create(data, offset);
Assert.Null(actual);
}
[Fact]
public void NullStream_Null()
{
Stream? data = null;
var actual = RealArcadeMezzanine.Create(data);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void EmptyStream_Null()
{
Stream? data = new MemoryStream([]);
var actual = RealArcadeMezzanine.Create(data);
Assert.Null(actual);
}
[Fact(Skip = "This will never pass with the current code")]
public void InvalidStream_Null()
{
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
var actual = RealArcadeMezzanine.Create(data);
Assert.Null(actual);
}
}
}

View File

@@ -1,8 +1,8 @@
using System.IO;
using SabreTools.Serialization.Serializers;
using SabreTools.Serialization.Writers;
using Xunit;
namespace SabreTools.Serialization.Test.Serializers
namespace SabreTools.Serialization.Test.Writers
{
public class ArchiveDotOrgTests
{

View File

@@ -1,8 +1,8 @@
using System.IO;
using SabreTools.Serialization.Serializers;
using SabreTools.Serialization.Writers;
using Xunit;
namespace SabreTools.Serialization.Test.Serializers
namespace SabreTools.Serialization.Test.Writers
{
public class AttractModeTests
{
@@ -18,7 +18,7 @@ namespace SabreTools.Serialization.Test.Serializers
public void SerializeStream_Null_Null()
{
var serializer = new AttractMode();
Stream? actual = serializer.Serialize(null);
Stream? actual = serializer.SerializeStream(null);
Assert.Null(actual);
}
}

Some files were not shown because too many files have changed in this diff Show More