mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-02-03 21:30:35 +00:00
Compare commits
277 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1da5f192c | ||
|
|
c15809dd72 | ||
|
|
89a67d1bd2 | ||
|
|
c4c6709478 | ||
|
|
5e1f6ac4b3 | ||
|
|
8f8d86d0bb | ||
|
|
ecca11e2f3 | ||
|
|
527b09c6bc | ||
|
|
69b6595434 | ||
|
|
59b918c75f | ||
|
|
344132b50a | ||
|
|
a35e58e9cc | ||
|
|
4300d94858 | ||
|
|
ee85a84d8f | ||
|
|
2959d82231 | ||
|
|
5dfe6aefb0 | ||
|
|
7f7d0f84ef | ||
|
|
4bfaf36e24 | ||
|
|
695fc4b0af | ||
|
|
f16ed9742f | ||
|
|
6bfe68b8cf | ||
|
|
2e5c5b3c79 | ||
|
|
2a6e193756 | ||
|
|
65a86d87f0 | ||
|
|
d7131dfa4c | ||
|
|
a228b16314 | ||
|
|
b8c9048ac6 | ||
|
|
0b54350d59 | ||
|
|
59eddb7129 | ||
|
|
1096232f9d | ||
|
|
4b39ee8d00 | ||
|
|
27a9b12bbf | ||
|
|
11319c3341 | ||
|
|
4de061e0d1 | ||
|
|
258e894c30 | ||
|
|
8658eaf4e0 | ||
|
|
6d341abc75 | ||
|
|
4821d63b4a | ||
|
|
0617bf3170 | ||
|
|
425d13a2ac | ||
|
|
8a1e90f537 | ||
|
|
ddc00948ed | ||
|
|
c96ee81f06 | ||
|
|
f6201e2c35 | ||
|
|
d63fcfcf7f | ||
|
|
dcc50c4c23 | ||
|
|
60e46e580d | ||
|
|
0638998773 | ||
|
|
ad3113987b | ||
|
|
f2f0d0f2e7 | ||
|
|
f7fd2f6f65 | ||
|
|
281c18e21d | ||
|
|
1a9c8b5392 | ||
|
|
831a272f4b | ||
|
|
f47e68b9ba | ||
|
|
eaabd2ee77 | ||
|
|
a269edd6ea | ||
|
|
3bb501ce0c | ||
|
|
d0006a4653 | ||
|
|
c48a1394bc | ||
|
|
fcf7fcfd44 | ||
|
|
cca08e7103 | ||
|
|
b908732f5c | ||
|
|
4ee4a6e85f | ||
|
|
7990f11bab | ||
|
|
427f7c9136 | ||
|
|
f938f1593d | ||
|
|
480a1834ed | ||
|
|
df5acc648c | ||
|
|
10569e6aa1 | ||
|
|
e5103b4830 | ||
|
|
513646fc53 | ||
|
|
27f723bf2f | ||
|
|
6511ecb5ad | ||
|
|
7bf6e6f344 | ||
|
|
d3e340ae39 | ||
|
|
22167a9617 | ||
|
|
48bea55133 | ||
|
|
42239919e5 | ||
|
|
4840d9df6e | ||
|
|
1378b87ea6 | ||
|
|
6b48164b97 | ||
|
|
50b09aa249 | ||
|
|
ecbd147f6d | ||
|
|
c13df79848 | ||
|
|
48bcc1de5b | ||
|
|
d082f5de25 | ||
|
|
c2321669b6 | ||
|
|
e382635b85 | ||
|
|
b4e02d7f8c | ||
|
|
0dc8a0b6c0 | ||
|
|
171834986d | ||
|
|
97af686b73 | ||
|
|
7d627ffc6f | ||
|
|
d924f25eb2 | ||
|
|
abd8ef3b1f | ||
|
|
e9b8dba3a6 | ||
|
|
aaff7e7332 | ||
|
|
2fa00d1a16 | ||
|
|
8a2a2ecd12 | ||
|
|
98517bdd8c | ||
|
|
dfe76f7e7e | ||
|
|
a2e24b1f5f | ||
|
|
6a4e76e245 | ||
|
|
1ebec97e0e | ||
|
|
b9f03b02f0 | ||
|
|
2c06760778 | ||
|
|
3f0ee70b71 | ||
|
|
05b34f158b | ||
|
|
e08db935b4 | ||
|
|
47da068bd3 | ||
|
|
9de669606d | ||
|
|
a02d50e61d | ||
|
|
069dab7fba | ||
|
|
d65edadbbb | ||
|
|
6307a51c0a | ||
|
|
d27c602bdf | ||
|
|
59fe9cb113 | ||
|
|
b4b7ba75cb | ||
|
|
d02e0c16c4 | ||
|
|
4aa0eb54b7 | ||
|
|
c4f73abcb6 | ||
|
|
73dec51a4d | ||
|
|
b7c3c094ae | ||
|
|
97702ab3d5 | ||
|
|
a9b5fe706c | ||
|
|
198d48610c | ||
|
|
c0e0344914 | ||
|
|
d49b2f1b60 | ||
|
|
ec7172466b | ||
|
|
d75a512ead | ||
|
|
af8b6906b6 | ||
|
|
96bc301e6d | ||
|
|
c10749f34d | ||
|
|
0e4235c8ba | ||
|
|
b2d31bb87e | ||
|
|
3ee88793da | ||
|
|
ad0f01c3ef | ||
|
|
63a96a7cf8 | ||
|
|
b8d8ca9a5c | ||
|
|
6b0fca31ae | ||
|
|
c147b12b10 | ||
|
|
7884b0b775 | ||
|
|
9f3c263328 | ||
|
|
b830ce3d73 | ||
|
|
e8b7f33bf0 | ||
|
|
eae75c5943 | ||
|
|
c1f5ebcae1 | ||
|
|
acb8e98fe2 | ||
|
|
a24a92e97c | ||
|
|
f2d2fe97bb | ||
|
|
705252eec7 | ||
|
|
69ae0456f0 | ||
|
|
f07bd07cce | ||
|
|
9db2d2ca05 | ||
|
|
85248b0135 | ||
|
|
8663edc7df | ||
|
|
b9cc9e40fd | ||
|
|
5ce085ad2b | ||
|
|
d24f8a2fce | ||
|
|
a73e830209 | ||
|
|
146fb42fd0 | ||
|
|
5b54ed719e | ||
|
|
02d011228e | ||
|
|
07adfd20a3 | ||
|
|
1d00abd6cc | ||
|
|
36c2cc2f15 | ||
|
|
27cf01ce84 | ||
|
|
1e94163693 | ||
|
|
db1f94775b | ||
|
|
ce394eb4e9 | ||
|
|
15109bed88 | ||
|
|
8a18c8de34 | ||
|
|
2f093a80c7 | ||
|
|
5df1af9c17 | ||
|
|
d5ab37a5a6 | ||
|
|
ed9ecf0da9 | ||
|
|
4fc17197ca | ||
|
|
94a9cf0c3f | ||
|
|
1d9e12183f | ||
|
|
aaa8bbe709 | ||
|
|
805d1b9ad8 | ||
|
|
d24d3e5adb | ||
|
|
d3a7d552c3 | ||
|
|
9f1c5e2bd2 | ||
|
|
1ec4ea8354 | ||
|
|
e4fab52489 | ||
|
|
e029fa4833 | ||
|
|
2c3f229a6a | ||
|
|
3558d3532c | ||
|
|
ad5314dc22 | ||
|
|
eaa5bb5662 | ||
|
|
fcdc703595 | ||
|
|
ef9fa562ab | ||
|
|
ac285c48fe | ||
|
|
e57ad65210 | ||
|
|
0fc3a30422 | ||
|
|
49f6704694 | ||
|
|
6df712c538 | ||
|
|
bda3076a30 | ||
|
|
89e8e7c706 | ||
|
|
c10835d221 | ||
|
|
a6801350ea | ||
|
|
c7a5a62041 | ||
|
|
749b35e5cb | ||
|
|
3c520d33eb | ||
|
|
635170a051 | ||
|
|
9619311d11 | ||
|
|
4bee14835c | ||
|
|
f44059e16a | ||
|
|
bfb206a06d | ||
|
|
6b7b05eb31 | ||
|
|
a9a2a04332 | ||
|
|
50459645dd | ||
|
|
564386038f | ||
|
|
9f229aad47 | ||
|
|
f6f6ea21b4 | ||
|
|
ec416d5631 | ||
|
|
335cbca8fb | ||
|
|
ab8d5ec475 | ||
|
|
ef9f050fbf | ||
|
|
46b1838d72 | ||
|
|
2b9a527743 | ||
|
|
cb41f8a8a6 | ||
|
|
fcf003af7d | ||
|
|
350924545c | ||
|
|
ae6bf0f2da | ||
|
|
7395d9842c | ||
|
|
741a1e13d0 | ||
|
|
447064afc1 | ||
|
|
a443a6833a | ||
|
|
160239eba7 | ||
|
|
04fb3fd363 | ||
|
|
ba60c9b516 | ||
|
|
f8ddfcf5ae | ||
|
|
c379bdcadc | ||
|
|
575caeda92 | ||
|
|
0d4dcf4a60 | ||
|
|
ddb14a69d0 | ||
|
|
f1ace61076 | ||
|
|
0f5f866cd2 | ||
|
|
bd866c5b05 | ||
|
|
07ea1abbf8 | ||
|
|
6853376f60 | ||
|
|
0e67f0bff4 | ||
|
|
6035c19f47 | ||
|
|
592a3d3505 | ||
|
|
2c092ed665 | ||
|
|
2bd4a00df4 | ||
|
|
f0639b28b9 | ||
|
|
775bab6656 | ||
|
|
c82d865cd5 | ||
|
|
0b95b9509a | ||
|
|
d8185e3970 | ||
|
|
b3a3766d77 | ||
|
|
3681682fe8 | ||
|
|
12c292d038 | ||
|
|
5af4de2878 | ||
|
|
2e7f18c407 | ||
|
|
48248b2832 | ||
|
|
c6082fa7c7 | ||
|
|
3af19510a8 | ||
|
|
2a12b8132f | ||
|
|
3daec985ba | ||
|
|
4b79ee103c | ||
|
|
077abd590a | ||
|
|
cab890b1d9 | ||
|
|
d3f0858ec4 | ||
|
|
97896b91d7 | ||
|
|
ca354b3b7f | ||
|
|
d035211a64 | ||
|
|
75728a4d1d | ||
|
|
265789ea84 | ||
|
|
4577311432 | ||
|
|
963c333c2e | ||
|
|
6eff6cf3b6 | ||
|
|
c9794691bb |
167
.editorconfig
Normal file
167
.editorconfig
Normal file
@@ -0,0 +1,167 @@
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# C# files
|
||||
[*.cs]
|
||||
|
||||
# Indentation and spacing
|
||||
charset = utf-8
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
tab_width = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
# New line preferences
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
max_line_length = unset
|
||||
|
||||
# using directive preferences
|
||||
csharp_using_directive_placement = outside_namespace
|
||||
dotnet_diagnostic.IDE0005.severity = error
|
||||
|
||||
# Code-block preferences
|
||||
csharp_style_namespace_declarations = block_scoped
|
||||
csharp_style_prefer_method_group_conversion = true
|
||||
csharp_style_prefer_top_level_statements = false
|
||||
|
||||
# Expression-level preferences
|
||||
csharp_prefer_simple_default_expression = true
|
||||
csharp_style_inlined_variable_declaration = true
|
||||
csharp_style_unused_value_assignment_preference = discard_variable
|
||||
csharp_style_unused_value_expression_statement_preference = discard_variable
|
||||
dotnet_diagnostic.IDE0001.severity = warning
|
||||
dotnet_diagnostic.IDE0002.severity = warning
|
||||
dotnet_diagnostic.IDE0004.severity = warning
|
||||
dotnet_diagnostic.IDE0010.severity = error
|
||||
dotnet_diagnostic.IDE0051.severity = warning
|
||||
dotnet_diagnostic.IDE0052.severity = warning
|
||||
dotnet_diagnostic.IDE0072.severity = warning
|
||||
dotnet_diagnostic.IDE0080.severity = warning
|
||||
dotnet_diagnostic.IDE0100.severity = error
|
||||
dotnet_diagnostic.IDE0110.severity = error
|
||||
dotnet_diagnostic.IDE0120.severity = warning
|
||||
dotnet_diagnostic.IDE0121.severity = warning
|
||||
dotnet_diagnostic.IDE0240.severity = error
|
||||
dotnet_diagnostic.IDE0241.severity = error
|
||||
dotnet_style_coalesce_expression = true
|
||||
dotnet_style_namespace_match_folder = false
|
||||
dotnet_style_null_propagation = true
|
||||
dotnet_style_prefer_auto_properties = true
|
||||
dotnet_style_prefer_collection_expression = when_types_loosely_match
|
||||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
|
||||
dotnet_style_prefer_compound_assignment = true
|
||||
csharp_style_prefer_simple_property_accessors = true
|
||||
dotnet_style_prefer_simplified_interpolation = true
|
||||
dotnet_style_prefer_simplified_boolean_expressions = true
|
||||
csharp_style_prefer_unbound_generic_type_in_nameof = true
|
||||
|
||||
# Field preferences
|
||||
dotnet_diagnostic.IDE0044.severity = warning
|
||||
dotnet_style_readonly_field = true
|
||||
|
||||
# Language keyword vs. framework types preferences
|
||||
dotnet_diagnostic.IDE0049.severity = error
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = true
|
||||
dotnet_style_predefined_type_for_member_access = true
|
||||
|
||||
# Modifier preferences
|
||||
csharp_prefer_static_local_function = true
|
||||
csharp_style_prefer_readonly_struct = true
|
||||
dotnet_diagnostic.IDE0036.severity = warning
|
||||
dotnet_diagnostic.IDE0040.severity = error
|
||||
dotnet_diagnostic.IDE0380.severity = error
|
||||
dotnet_style_require_accessibility_modifiers = always
|
||||
|
||||
# New-line preferences
|
||||
dotnet_diagnostic.IDE2000.severity = warning
|
||||
dotnet_diagnostic.IDE2002.severity = warning
|
||||
dotnet_diagnostic.IDE2003.severity = warning
|
||||
dotnet_diagnostic.IDE2004.severity = warning
|
||||
dotnet_diagnostic.IDE2005.severity = warning
|
||||
dotnet_diagnostic.IDE2006.severity = warning
|
||||
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false
|
||||
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = false
|
||||
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = false
|
||||
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false
|
||||
dotnet_style_allow_multiple_blank_lines_experimental = false
|
||||
dotnet_style_allow_statement_immediately_after_block_experimental = false
|
||||
|
||||
# Null-checking preferences
|
||||
csharp_style_conditional_delegate_call = true
|
||||
|
||||
# Parameter preferences
|
||||
dotnet_code_quality_unused_parameters = all
|
||||
dotnet_diagnostic.IDE0280.severity = error
|
||||
|
||||
# Parentheses preferences
|
||||
dotnet_diagnostic.IDE0047.severity = warning
|
||||
dotnet_diagnostic.IDE0048.severity = warning
|
||||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
|
||||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
|
||||
dotnet_style_parentheses_in_other_operators = always_for_clarity
|
||||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
|
||||
|
||||
# Pattern-matching preferences
|
||||
dotnet_diagnostic.IDE0019.severity = warning
|
||||
dotnet_diagnostic.IDE0020.severity = warning
|
||||
dotnet_diagnostic.IDE0038.severity = warning
|
||||
dotnet_diagnostic.IDE0066.severity = none
|
||||
dotnet_diagnostic.IDE0083.severity = warning
|
||||
dotnet_diagnostic.IDE0260.severity = warning
|
||||
csharp_style_pattern_matching_over_as_with_null_check = true
|
||||
csharp_style_pattern_matching_over_is_with_cast_check = true
|
||||
csharp_style_prefer_not_pattern = true
|
||||
csharp_style_prefer_pattern_matching = true
|
||||
|
||||
# this. and Me. preferences
|
||||
dotnet_style_qualification_for_event = false
|
||||
dotnet_style_qualification_for_field = false
|
||||
dotnet_style_qualification_for_method = false
|
||||
dotnet_style_qualification_for_property = false
|
||||
|
||||
# var preferences
|
||||
csharp_style_var_for_built_in_types = false
|
||||
csharp_style_var_when_type_is_apparent = true
|
||||
|
||||
# .NET formatting options
|
||||
dotnet_separate_import_directive_groups = false
|
||||
dotnet_sort_system_directives_first = true
|
||||
|
||||
# C# formatting options
|
||||
csharp_indent_block_contents = true
|
||||
csharp_indent_braces = false
|
||||
csharp_indent_case_contents = true
|
||||
csharp_indent_case_contents_when_block = false
|
||||
csharp_indent_labels = one_less_than_current
|
||||
csharp_indent_switch_labels = true
|
||||
csharp_new_line_before_catch = true
|
||||
csharp_new_line_before_else = true
|
||||
csharp_new_line_before_finally = true
|
||||
csharp_new_line_before_members_in_anonymous_types = true
|
||||
csharp_new_line_before_members_in_object_initializers = true
|
||||
csharp_new_line_before_open_brace = all
|
||||
csharp_new_line_between_query_expression_clauses = true
|
||||
csharp_preserve_single_line_blocks = true
|
||||
csharp_preserve_single_line_statements = true
|
||||
csharp_space_after_cast = false
|
||||
csharp_space_after_colon_in_inheritance_clause = true
|
||||
csharp_space_after_comma = true
|
||||
csharp_space_after_dot = false
|
||||
csharp_space_after_keywords_in_control_flow_statements = true
|
||||
csharp_space_after_semicolon_in_for_statement = true
|
||||
csharp_space_around_binary_operators = before_and_after
|
||||
csharp_space_around_declaration_statements = false
|
||||
csharp_space_before_colon_in_inheritance_clause = true
|
||||
csharp_space_before_comma = false
|
||||
csharp_space_before_dot = false
|
||||
csharp_space_before_open_square_brackets = false
|
||||
csharp_space_before_semicolon_in_for_statement = false
|
||||
csharp_space_between_empty_square_brackets = false
|
||||
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
||||
csharp_space_between_method_call_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
||||
csharp_space_between_parentheses = false
|
||||
csharp_space_between_square_brackets = false
|
||||
74
.github/workflows/build_and_test.yml
vendored
74
.github/workflows/build_and_test.yml
vendored
@@ -1,40 +1,48 @@
|
||||
name: Build and Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
push:
|
||||
branches: ["main"]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: |
|
||||
6.0.x
|
||||
8.0.x
|
||||
9.0.x
|
||||
|
||||
- name: Run tests
|
||||
run: dotnet test
|
||||
|
||||
- name: Run publish script
|
||||
run: ./publish-nix.sh -d
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Upload to rolling
|
||||
uses: ncipollo/release-action@v1.14.0
|
||||
with:
|
||||
allowUpdates: True
|
||||
artifacts: "*.nupkg,*.snupkg,*.zip"
|
||||
body: 'Last built commit: ${{ github.sha }}'
|
||||
name: 'Rolling Release'
|
||||
prerelease: True
|
||||
replacesArtifacts: True
|
||||
tag: "rolling"
|
||||
updateOnlyUnreleased: True
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v5
|
||||
with:
|
||||
dotnet-version: |
|
||||
8.0.x
|
||||
9.0.x
|
||||
10.0.x
|
||||
|
||||
- name: Run tests
|
||||
run: dotnet test
|
||||
|
||||
- name: Run publish script
|
||||
run: ./publish-nix.sh -d
|
||||
|
||||
- name: Update rolling tag
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git tag -f rolling
|
||||
git push origin :refs/tags/rolling || true
|
||||
git push origin rolling --force
|
||||
|
||||
- name: Upload to rolling
|
||||
uses: ncipollo/release-action@v1.20.0
|
||||
with:
|
||||
allowUpdates: True
|
||||
artifacts: "*.nupkg,*.snupkg,*.zip"
|
||||
body: "Last built commit: ${{ github.sha }}"
|
||||
name: "Rolling Release"
|
||||
prerelease: True
|
||||
replacesArtifacts: True
|
||||
tag: "rolling"
|
||||
updateOnlyUnreleased: True
|
||||
|
||||
34
.github/workflows/check_pr.yml
vendored
34
.github/workflows/check_pr.yml
vendored
@@ -3,21 +3,21 @@ name: Build PR
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: |
|
||||
6.0.x
|
||||
8.0.x
|
||||
9.0.x
|
||||
|
||||
- name: Build
|
||||
run: dotnet build
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Run tests
|
||||
run: dotnet test
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v5
|
||||
with:
|
||||
dotnet-version: |
|
||||
8.0.x
|
||||
9.0.x
|
||||
10.0.x
|
||||
|
||||
- name: Build
|
||||
run: dotnet build
|
||||
|
||||
- name: Run tests
|
||||
run: dotnet test
|
||||
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "SabreTools.Serialization/_EXTERNAL/stormlibsharp"]
|
||||
path = SabreTools.Serialization/_EXTERNAL/stormlibsharp
|
||||
url = https://github.com/robpaveza/stormlibsharp.git
|
||||
14
.vscode/launch.json
vendored
14
.vscode/launch.json
vendored
@@ -1,16 +1,16 @@
|
||||
{
|
||||
// Use IntelliSense to find out which attributes exist for C# debugging
|
||||
// Use hover for the description of the existing attributes
|
||||
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
// Use IntelliSense to find out which attributes exist for C# debugging
|
||||
// Use hover for the description of the existing attributes
|
||||
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": ".NET Core Launch (ExtractionTool)",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"preLaunchTask": "build",
|
||||
// If you have changed target frameworks, make sure to update the program path.
|
||||
"program": "${workspaceFolder}/ExtractionTool/bin/Debug/net9.0/ExtractionTool.dll",
|
||||
"program": "${workspaceFolder}/ExtractionTool/bin/Debug/net10.0/ExtractionTool.dll",
|
||||
"args": [],
|
||||
"cwd": "${workspaceFolder}",
|
||||
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
|
||||
@@ -24,7 +24,7 @@
|
||||
"request": "launch",
|
||||
"preLaunchTask": "build",
|
||||
// If you have changed target frameworks, make sure to update the program path.
|
||||
"program": "${workspaceFolder}/InfoPrint/bin/Debug/net9.0/InfoPrint.dll",
|
||||
"program": "${workspaceFolder}/InfoPrint/bin/Debug/net10.0/InfoPrint.dll",
|
||||
"args": [],
|
||||
"cwd": "${workspaceFolder}",
|
||||
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
|
||||
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
|
||||
<OutputType>Exe</OutputType>
|
||||
<CheckEolTargetFramework>false</CheckEolTargetFramework>
|
||||
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
||||
@@ -10,7 +10,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<Version>1.9.6</Version>
|
||||
<Version>2.2.1</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Support All Frameworks -->
|
||||
@@ -20,28 +20,15 @@
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith(`netcoreapp`)) OR $(TargetFramework.StartsWith(`net5`))">
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm64;linux-x64;linux-arm64;osx-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith(`net6`)) OR $(TargetFramework.StartsWith(`net7`)) OR $(TargetFramework.StartsWith(`net8`)) OR $(TargetFramework.StartsWith(`net9`))">
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith(`net6`)) OR $(TargetFramework.StartsWith(`net7`)) OR $(TargetFramework.StartsWith(`net8`)) OR $(TargetFramework.StartsWith(`net9`)) OR $(TargetFramework.StartsWith(`net10`))">
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm64;linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$(RuntimeIdentifier.StartsWith(`osx-arm`))">
|
||||
<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>
|
||||
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
|
||||
</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">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
|
||||
<TargetPath>CascLib.dll</TargetPath>
|
||||
</ContentWithTargetPath>
|
||||
<ContentWithTargetPath Include="..\SabreTools.Serialization\runtimes\win-x86\native\StormLib.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
|
||||
@@ -49,11 +36,6 @@
|
||||
</ContentWithTargetPath>
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(RuntimeIdentifier)'=='win-x64'">
|
||||
<ContentWithTargetPath Include="..\SabreTools.Serialization\runtimes\win-x64\native\CascLib.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
|
||||
<TargetPath>CascLib.dll</TargetPath>
|
||||
</ContentWithTargetPath>
|
||||
<ContentWithTargetPath Include="..\SabreTools.Serialization\runtimes\win-x64\native\StormLib.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
|
||||
@@ -66,8 +48,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SabreTools.IO" Version="1.7.5" />
|
||||
<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`))" />
|
||||
<PackageReference Include="SabreTools.CommandLine" Version="[1.4.0]" />
|
||||
<PackageReference Include="SabreTools.IO" Version="[1.9.0]" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="10.0.0" Condition="!$(TargetFramework.StartsWith(`net2`)) AND !$(TargetFramework.StartsWith(`net3`)) AND !$(TargetFramework.StartsWith(`net40`)) AND !$(TargetFramework.StartsWith(`net452`))" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
340
ExtractionTool/Features/MainFeature.cs
Normal file
340
ExtractionTool/Features/MainFeature.cs
Normal file
@@ -0,0 +1,340 @@
|
||||
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.SeekIfPossible(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;
|
||||
|
||||
// CD-ROM bin file
|
||||
case CDROM cdrom:
|
||||
cdrom.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;
|
||||
|
||||
// ISO 9660 volume
|
||||
case ISO9660 iso9660:
|
||||
iso9660.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;
|
||||
|
||||
// ZSTD
|
||||
case ZSTD zstd:
|
||||
zstd.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,250 +1,79 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using SabreTools.IO.Extensions;
|
||||
using SabreTools.Serialization;
|
||||
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 is 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
280
InfoPrint/Features/MainFeature.cs
Normal file
280
InfoPrint/Features/MainFeature.cs
Normal file
@@ -0,0 +1,280 @@
|
||||
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 is not 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.PeekBytes(8);
|
||||
|
||||
// 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 is 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 is 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 is 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 is not null)
|
||||
builder.AppendLine($"CRC-16 checksum: {crc16}");
|
||||
if (hashes.TryGetValue(HashType.CRC32, out string? crc32) && crc32 is not null)
|
||||
builder.AppendLine($"CRC-32 checksum: {crc32}");
|
||||
if (hashes.TryGetValue(HashType.CRC64, out string? crc64) && crc64 is not null)
|
||||
builder.AppendLine($"CRC-64 checksum: {crc64}");
|
||||
if (hashes.TryGetValue(HashType.MD2, out string? md2) && md2 is not null)
|
||||
builder.AppendLine($"MD2 hash: {md2}");
|
||||
if (hashes.TryGetValue(HashType.MD4, out string? md4) && md4 is not null)
|
||||
builder.AppendLine($"MD4 hash: {md4}");
|
||||
if (hashes.TryGetValue(HashType.MD5, out string? md5) && md5 is not null)
|
||||
builder.AppendLine($"MD5 hash: {md5}");
|
||||
if (hashes.TryGetValue(HashType.RIPEMD128, out string? ripemd128) && ripemd128 is not null)
|
||||
builder.AppendLine($"RIPEMD-128 hash: {ripemd128}");
|
||||
if (hashes.TryGetValue(HashType.RIPEMD160, out string? ripemd160) && ripemd160 is not null)
|
||||
builder.AppendLine($"RIPEMD-160 hash: {ripemd160}");
|
||||
if (hashes.TryGetValue(HashType.SHA1, out string? sha1) && sha1 is not null)
|
||||
builder.AppendLine($"SHA-1 hash: {sha1}");
|
||||
if (hashes.TryGetValue(HashType.SHA256, out string? sha256) && sha256 is not null)
|
||||
builder.AppendLine($"SHA-256 hash: {sha256}");
|
||||
if (hashes.TryGetValue(HashType.SHA384, out string? sha384) && sha384 is not null)
|
||||
builder.AppendLine($"SHA-384 hash: {sha384}");
|
||||
if (hashes.TryGetValue(HashType.SHA512, out string? sha512) && sha512 is not null)
|
||||
builder.AppendLine($"SHA-512 hash: {sha512}");
|
||||
|
||||
return builder;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(Debug ? ex : "[Exception opening file, please try again]");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
|
||||
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
|
||||
<OutputType>Exe</OutputType>
|
||||
<CheckEolTargetFramework>false</CheckEolTargetFramework>
|
||||
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
||||
@@ -10,7 +10,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<Version>1.9.6</Version>
|
||||
<Version>2.2.1</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Support All Frameworks -->
|
||||
@@ -20,11 +20,11 @@
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith(`netcoreapp`)) OR $(TargetFramework.StartsWith(`net5`))">
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm64;linux-x64;linux-arm64;osx-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith(`net6`)) OR $(TargetFramework.StartsWith(`net7`)) OR $(TargetFramework.StartsWith(`net8`)) OR $(TargetFramework.StartsWith(`net9`))">
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith(`net6`)) OR $(TargetFramework.StartsWith(`net7`)) OR $(TargetFramework.StartsWith(`net8`)) OR $(TargetFramework.StartsWith(`net9`)) OR $(TargetFramework.StartsWith(`net10`))">
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm64;linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$(RuntimeIdentifier.StartsWith(`osx-arm`))">
|
||||
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
|
||||
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -32,8 +32,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SabreTools.IO" Version="1.7.5" />
|
||||
<PackageReference Include="SabreTools.Hashing" Version="1.5.0" />
|
||||
<PackageReference Include="SabreTools.CommandLine" Version="[1.4.0]" />
|
||||
<PackageReference Include="SabreTools.Hashing" Version="[1.6.0]" />
|
||||
<PackageReference Include="SabreTools.IO" Version="[1.9.0]" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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,199 +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 is 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(file);
|
||||
sw.WriteLine();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
55
README.MD
55
README.MD
@@ -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 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)
|
||||
```
|
||||
@@ -54,7 +55,7 @@ Options:
|
||||
| 7-zip archive | .NET Framework 4.6.2 and greater |
|
||||
| BFPK custom archive format | |
|
||||
| bzip2 archive | .NET Framework 4.6.2 and greater |
|
||||
| Compound File Binary (CFB) | Only CFB common pieces extractable. .NET Framework 4.0 and greater |
|
||||
| Compound File Binary (CFB) | Only CFB common pieces extractable |
|
||||
| gzip archive | |
|
||||
| Half-Life Game Cache File (GCF) | |
|
||||
| Half-Life Level (BSP) | |
|
||||
@@ -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 |
|
||||
| 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.Serialization.Wrappers.IExtractable` | Marks a wrapper as able to be extracted |
|
||||
| `SabreTools.Serialization.Wrappers.IPrintable` | Marks a wrapper as able to print model information |
|
||||
| `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,11 +110,12 @@ 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.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.Extensions` | Extension methods for both models and wrappers |
|
||||
| `SabreTools.Serialization.Interfaces` | Interfaces used commonly throughout the library |
|
||||
| `SabreTools.Serialization.ObjectIdentifier` | Object Identifier (OID) parsing |
|
||||
| `SabreTools.Serialization.Printers` | Export model information in a formatted manner |
|
||||
| `SabreTools.Serialization.Serializers` | Convert from models to external sources |
|
||||
| `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 |
|
||||
|
||||
@@ -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);
|
||||
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);
|
||||
@@ -170,4 +171,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", file.Width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -108,4 +109,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", row.FileIsAvailable);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -26,23 +27,24 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.NotNull(newMf.Game);
|
||||
var newGame = Assert.Single(newMf.Game);
|
||||
Validate(newGame);
|
||||
Validate(newMf.Info);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
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);
|
||||
@@ -50,14 +52,15 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.NotNull(newMf.Game);
|
||||
var newGame = Assert.Single(newMf.Game);
|
||||
Validate(newGame);
|
||||
Validate(newMf.Info);
|
||||
}
|
||||
|
||||
/// <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 +79,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,18 +88,20 @@ 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",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -121,7 +126,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",
|
||||
@@ -131,17 +136,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",
|
||||
@@ -150,7 +155,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",
|
||||
@@ -158,7 +163,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",
|
||||
@@ -169,12 +174,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",
|
||||
@@ -184,14 +189,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",
|
||||
@@ -201,11 +206,12 @@ 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.DriverStatus = "XXXXXX";
|
||||
gameBase.Year = "XXXXXX";
|
||||
gameBase.Manufacturer = "XXXXXX";
|
||||
gameBase.Category = "XXXXXX";
|
||||
@@ -226,17 +232,23 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
gameBase.DipSwitch = [dipswitch];
|
||||
gameBase.Driver = driver;
|
||||
|
||||
return new Models.ClrMamePro.MetadataFile
|
||||
var info = new Data.Models.ClrMamePro.Info
|
||||
{
|
||||
Source = ["XXXXXX"],
|
||||
};
|
||||
|
||||
return new Data.Models.ClrMamePro.MetadataFile
|
||||
{
|
||||
ClrMamePro = cmp,
|
||||
Game = [gameBase],
|
||||
Info = info,
|
||||
};
|
||||
}
|
||||
|
||||
/// <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);
|
||||
@@ -259,11 +271,12 @@ 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);
|
||||
Assert.Equal("XXXXXX", gb.Description);
|
||||
// Assert.Equal("XXXXXX", gb.DriverStatus); // TODO: Needs metadata mapping
|
||||
Assert.Equal("XXXXXX", gb.Year);
|
||||
Assert.Equal("XXXXXX", gb.Manufacturer);
|
||||
Assert.Equal("XXXXXX", gb.Category);
|
||||
@@ -320,7 +333,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);
|
||||
@@ -333,7 +346,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);
|
||||
@@ -344,12 +357,14 @@ 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.CRC16);
|
||||
Assert.Equal("XXXXXX", rom.CRC);
|
||||
Assert.Equal("XXXXXX", rom.CRC64);
|
||||
Assert.Equal("XXXXXX", rom.MD2);
|
||||
Assert.Equal("XXXXXX", rom.MD4);
|
||||
Assert.Equal("XXXXXX", rom.MD5);
|
||||
@@ -377,7 +392,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);
|
||||
@@ -391,7 +406,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);
|
||||
@@ -400,7 +415,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);
|
||||
@@ -409,7 +424,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);
|
||||
@@ -422,7 +437,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);
|
||||
@@ -434,7 +449,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);
|
||||
@@ -449,7 +464,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);
|
||||
@@ -458,7 +473,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);
|
||||
@@ -472,7 +487,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);
|
||||
@@ -487,7 +502,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);
|
||||
@@ -496,5 +511,16 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", driver.PaletteSize);
|
||||
Assert.Equal("XXXXXX", driver.Blit);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validate a ClrMamePro
|
||||
/// </summary>
|
||||
private static void Validate(Data.Models.ClrMamePro.Info? info)
|
||||
{
|
||||
Assert.NotNull(info);
|
||||
Assert.NotNull(info.Source);
|
||||
string source = Assert.Single(info.Source);
|
||||
Assert.Equal("XXXXXX", source);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -107,4 +108,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", rom.Date);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -62,4 +63,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", row.Size);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.Serialization.CrossModel;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.CrossModel
|
||||
@@ -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,27 +217,29 @@ 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)
|
||||
{
|
||||
#pragma warning disable IDE0072
|
||||
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" }] },
|
||||
_ => throw new ArgumentOutOfRangeException(),
|
||||
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(nameof(hashType)),
|
||||
};
|
||||
#pragma warning restore IDE0072
|
||||
}
|
||||
|
||||
/// <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 +249,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 +259,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 +269,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 +279,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 +289,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 +299,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 +309,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,11 +319,11 @@ 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);
|
||||
Assert.Equal("XXXXXX", spamsum.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);
|
||||
@@ -124,4 +125,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.True(row.NoGoodDumpKnown);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -875,4 +876,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", ramoption.Content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,18 +139,20 @@ 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",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -171,7 +174,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",
|
||||
@@ -181,7 +184,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",
|
||||
@@ -190,22 +193,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",
|
||||
@@ -217,7 +220,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",
|
||||
@@ -225,9 +228,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";
|
||||
@@ -259,19 +262,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",
|
||||
@@ -285,7 +288,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);
|
||||
@@ -308,7 +311,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);
|
||||
@@ -320,7 +323,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);
|
||||
@@ -335,7 +338,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)
|
||||
@@ -412,7 +415,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);
|
||||
@@ -434,7 +437,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);
|
||||
@@ -447,7 +450,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);
|
||||
@@ -458,12 +461,14 @@ 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.CRC16);
|
||||
Assert.Equal("XXXXXX", rom.CRC);
|
||||
Assert.Equal("XXXXXX", rom.CRC64);
|
||||
Assert.Equal("XXXXXX", rom.MD2);
|
||||
Assert.Equal("XXXXXX", rom.MD4);
|
||||
Assert.Equal("XXXXXX", rom.MD5);
|
||||
@@ -488,7 +493,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);
|
||||
@@ -502,7 +507,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);
|
||||
@@ -515,7 +520,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);
|
||||
@@ -524,7 +529,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);
|
||||
@@ -533,7 +538,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);
|
||||
@@ -542,7 +547,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);
|
||||
@@ -558,7 +563,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);
|
||||
@@ -567,4 +572,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -869,4 +870,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", ramoption.Content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -869,4 +870,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", ramoption.Content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -447,4 +448,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", image.Height);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -153,4 +154,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", rombase.Remark);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -150,4 +151,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", rom.MergeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -179,4 +180,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", row.Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -307,4 +308,4 @@ namespace SabreTools.Serialization.Test.CrossModel
|
||||
Assert.Equal("XXXXXX", dipvalue.Default);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
using SabreTools.Models.ASN1;
|
||||
using SabreTools.Serialization.Extensions;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.ASN1;
|
||||
using Xunit;
|
||||
|
||||
#pragma warning disable IDE0230 // Use UTF-8 string literal
|
||||
namespace SabreTools.Serialization.Test.Extensions
|
||||
{
|
||||
public class TypeLengthValueTests
|
||||
@@ -13,7 +14,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_EOC()
|
||||
{
|
||||
string expected = "Type: V_ASN1_EOC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_EOC, Length = 0, Value = null };
|
||||
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_EOC, Length = 0, Value = null };
|
||||
string actual = tlv.Format();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
@@ -22,7 +23,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ZeroLength()
|
||||
{
|
||||
string expected = "Type: V_ASN1_NULL, Length: 0";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_NULL, Length = 0, Value = null };
|
||||
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_NULL, Length = 0, Value = null };
|
||||
string actual = tlv.Format();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
@@ -31,7 +32,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_InvalidConstructed()
|
||||
{
|
||||
string expected = "Type: V_ASN1_OBJECT, V_ASN1_CONSTRUCTED, Length: 1, Value: [INVALID DATA TYPE]";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT | ASN1Type.V_ASN1_CONSTRUCTED, Length = 1, Value = (object?)false };
|
||||
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT | ASN1Type.V_ASN1_CONSTRUCTED, Length = 1, Value = false };
|
||||
string actual = tlv.Format();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
@@ -40,8 +41,8 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
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 Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 1, Value = new byte[] { 0x01 } };
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT | ASN1Type.V_ASN1_CONSTRUCTED, Length = 3, Value = new Models.ASN1.TypeLengthValue[] { boolTlv } };
|
||||
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);
|
||||
}
|
||||
@@ -50,7 +51,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_InvalidDataType()
|
||||
{
|
||||
string expected = "Type: V_ASN1_OBJECT, Length: 1, Value: [INVALID DATA TYPE]";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT, Length = 1, Value = (object?)false };
|
||||
var tlv = new Data.Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT, Length = 1, Value = false };
|
||||
string actual = tlv.Format();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
@@ -59,7 +60,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_InvalidLength()
|
||||
{
|
||||
string expected = "Type: V_ASN1_NULL, Length: 1, Value: [NO DATA]";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_NULL, Length = 1, Value = Array.Empty<byte>() };
|
||||
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);
|
||||
}
|
||||
@@ -68,7 +69,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_InvalidBooleanLength()
|
||||
{
|
||||
string expected = "Type: V_ASN1_BOOLEAN, Length: 2 [Expected length of 1], Value: True";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 2, Value = new byte[] { 0x01 } };
|
||||
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);
|
||||
}
|
||||
@@ -77,7 +78,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_InvalidBooleanArrayLength()
|
||||
{
|
||||
string expected = "Type: V_ASN1_BOOLEAN, Length: 1 [Expected value length of 1], Value: True";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BOOLEAN, Length = 1, Value = new byte[] { 0x01, 0x00 } };
|
||||
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);
|
||||
}
|
||||
@@ -86,7 +87,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidBoolean()
|
||||
{
|
||||
string expected = "Type: V_ASN1_BOOLEAN, Length: 1, Value: True";
|
||||
var tlv = new 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_BOOLEAN, Length = 1, Value = new byte[] { 0x01 } };
|
||||
string actual = tlv.Format();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
@@ -95,7 +96,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidInteger()
|
||||
{
|
||||
string expected = "Type: V_ASN1_INTEGER, Length: 1, Value: 1";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_INTEGER, Length = 1, Value = new byte[] { 0x01 } };
|
||||
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);
|
||||
}
|
||||
@@ -104,7 +105,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidBitString_NoBits()
|
||||
{
|
||||
string expected = "Type: V_ASN1_BIT_STRING, Length: 1, Value with 0 unused bits";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BIT_STRING, Length = 1, Value = new byte[] { 0x00 } };
|
||||
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);
|
||||
}
|
||||
@@ -113,7 +114,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidBitString_Bits()
|
||||
{
|
||||
string expected = "Type: V_ASN1_BIT_STRING, Length: 1, Value with 1 unused bits: 01";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BIT_STRING, Length = 1, Value = new byte[] { 0x01, 0x01 } };
|
||||
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);
|
||||
}
|
||||
@@ -122,7 +123,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidOctetString()
|
||||
{
|
||||
string expected = "Type: V_ASN1_OCTET_STRING, Length: 1, Value: 01";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OCTET_STRING, Length = 1, Value = new byte[] { 0x01 } };
|
||||
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);
|
||||
}
|
||||
@@ -131,7 +132,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
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 Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT, Length = 3, Value = new byte[] { 0x01, 0x02, 0x03 } };
|
||||
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);
|
||||
}
|
||||
@@ -140,7 +141,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidUTF8String()
|
||||
{
|
||||
string expected = "Type: V_ASN1_UTF8STRING, Length: 3, Value: ABC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_UTF8STRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
|
||||
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);
|
||||
}
|
||||
@@ -149,7 +150,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidPrintableString()
|
||||
{
|
||||
string expected = "Type: V_ASN1_PRINTABLESTRING, Length: 3, Value: ABC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_PRINTABLESTRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
|
||||
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);
|
||||
}
|
||||
@@ -158,7 +159,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidTeletexString()
|
||||
{
|
||||
string expected = "Type: V_ASN1_TELETEXSTRING, Length: 3, Value: ABC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_TELETEXSTRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
|
||||
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);
|
||||
}
|
||||
@@ -167,7 +168,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidIA5String()
|
||||
{
|
||||
string expected = "Type: V_ASN1_IA5STRING, Length: 3, Value: ABC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_IA5STRING, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
|
||||
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);
|
||||
}
|
||||
@@ -176,7 +177,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_InvalidUTCTime()
|
||||
{
|
||||
string expected = "Type: V_ASN1_UTCTIME, Length: 3, Value: ABC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_UTCTIME, Length = 3, Value = new byte[] { 0x41, 0x42, 0x43 } };
|
||||
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);
|
||||
}
|
||||
@@ -185,7 +186,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidUTCTime()
|
||||
{
|
||||
string expected = "Type: V_ASN1_UTCTIME, Length: 3, Value: 1980-01-01 00:00:00";
|
||||
var tlv = new 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 } };
|
||||
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);
|
||||
}
|
||||
@@ -194,7 +195,7 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidBmpString()
|
||||
{
|
||||
string expected = "Type: V_ASN1_BMPSTRING, Length: 6, Value: ABC";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_BMPSTRING, Length = 6, Value = new byte[] { 0x41, 0x00, 0x42, 0x00, 0x43, 0x00 } };
|
||||
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);
|
||||
}
|
||||
@@ -203,11 +204,11 @@ namespace SabreTools.Serialization.Test.Extensions
|
||||
public void Format_ValidUnformatted()
|
||||
{
|
||||
string expected = "Type: V_ASN1_OBJECT_DESCRIPTOR, Length: 1, Value: 01";
|
||||
var tlv = new Models.ASN1.TypeLengthValue { Type = ASN1Type.V_ASN1_OBJECT_DESCRIPTOR, Length = 1, Value = new byte[] { 0x01 } };
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using SabreTools.Serialization.ObjectIdentifier;
|
||||
using SabreTools.Data.ObjectIdentifier;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
@@ -15,7 +15,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void ASN1Notation_AlwaysNull()
|
||||
{
|
||||
ulong[]? values = null;
|
||||
string? actual = Parser.ParseOIDToASN1Notation(values);
|
||||
string? actual = Parser.ParseOIDToASN1Notation(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void DotNotation_NullValues_Null()
|
||||
{
|
||||
ulong[]? values = null;
|
||||
string? actual = Parser.ParseOIDToDotNotation(values);
|
||||
string? actual = Parser.ParseOIDToDotNotation(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void DotNotation_EmptyValues_Null()
|
||||
{
|
||||
ulong[]? values = [];
|
||||
string? actual = Parser.ParseOIDToDotNotation(values);
|
||||
string? actual = Parser.ParseOIDToDotNotation(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
{
|
||||
string expected = "0.1.2.3";
|
||||
ulong[]? values = [0, 1, 2, 3];
|
||||
string? actual = Parser.ParseOIDToDotNotation(values);
|
||||
string? actual = Parser.ParseOIDToDotNotation(values);
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void ModifiedOIDIRI_NullValues_Null()
|
||||
{
|
||||
ulong[]? values = null;
|
||||
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
|
||||
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void ModifiedOIDIRI_EmptyValues_Null()
|
||||
{
|
||||
ulong[]? values = [];
|
||||
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
|
||||
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
{
|
||||
string expected = "/ITU-T/[question]/2/3";
|
||||
ulong[]? values = [0, 1, 2, 3];
|
||||
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
|
||||
string? actual = Parser.ParseOIDToModifiedOIDIRI(values);
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void OIDIRI_NullValues_Null()
|
||||
{
|
||||
ulong[]? values = null;
|
||||
string? actual = Parser.ParseOIDToOIDIRINotation(values);
|
||||
string? actual = Parser.ParseOIDToOIDIRINotation(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
public void OIDIRI_EmptyValues_Null()
|
||||
{
|
||||
ulong[]? values = [];
|
||||
string? actual = Parser.ParseOIDToOIDIRINotation(values);
|
||||
string? actual = Parser.ParseOIDToOIDIRINotation(values);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
@@ -102,10 +102,10 @@ namespace SabreTools.Serialization.Test.ObjectIdentifier
|
||||
{
|
||||
string expected = "/ITU-T/1/2/3";
|
||||
ulong[]? values = [0, 1, 2, 3];
|
||||
string? actual = Parser.ParseOIDToOIDIRINotation(values);
|
||||
string? actual = Parser.ParseOIDToOIDIRINotation(values);
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Models.ASN1;
|
||||
using SabreTools.Serialization.Deserializers;
|
||||
using SabreTools.Data.Models.ASN1;
|
||||
using SabreTools.Serialization.Readers;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.Deserializers
|
||||
namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
public class AbstractSyntaxNotationOneTests
|
||||
{
|
||||
@@ -149,4 +149,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,73 +1,73 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Serialization.Deserializers;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.Deserializers
|
||||
{
|
||||
public class AppPkgHeaderTests
|
||||
{
|
||||
[Fact]
|
||||
public void NullArray_Null()
|
||||
{
|
||||
byte[]? data = null;
|
||||
int offset = 0;
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyArray_Null()
|
||||
{
|
||||
byte[]? data = [];
|
||||
int offset = 0;
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
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 AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NullStream_Null()
|
||||
{
|
||||
Stream? data = null;
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyStream_Null()
|
||||
{
|
||||
Stream? data = new MemoryStream([]);
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
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 AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Serialization.Readers;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
public class AppPkgHeaderTests
|
||||
{
|
||||
[Fact]
|
||||
public void NullArray_Null()
|
||||
{
|
||||
byte[]? data = null;
|
||||
int offset = 0;
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyArray_Null()
|
||||
{
|
||||
byte[]? data = [];
|
||||
int offset = 0;
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
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 AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NullStream_Null()
|
||||
{
|
||||
Stream? data = null;
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyStream_Null()
|
||||
{
|
||||
Stream? data = new MemoryStream([]);
|
||||
var deserializer = new AppPkgHeader();
|
||||
|
||||
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 AppPkgHeader();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -238,4 +237,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", file.Width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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(Serialization.Writers.AttractMode.HeaderArrayWithRomname.SequenceEqual(header));
|
||||
else
|
||||
Assert.True(Serialization.Serializers.AttractMode.HeaderArrayWithoutRomname.SequenceEqual(header));
|
||||
Assert.True(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);
|
||||
@@ -214,4 +214,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -93,24 +93,25 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.NotNull(newMf.Game);
|
||||
var newGame = Assert.Single(newMf.Game);
|
||||
Validate(newGame);
|
||||
Validate(newMf.Info);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
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 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);
|
||||
@@ -118,24 +119,25 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.NotNull(newMf.Game);
|
||||
var newGame = Assert.Single(newMf.Game);
|
||||
Validate(newGame);
|
||||
Validate(newMf.Info);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
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 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 +151,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 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 +175,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 +196,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,18 +205,20 @@ 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",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -239,7 +243,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",
|
||||
@@ -249,17 +253,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",
|
||||
@@ -268,7 +272,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",
|
||||
@@ -276,7 +280,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",
|
||||
@@ -287,12 +291,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",
|
||||
@@ -302,14 +306,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",
|
||||
@@ -319,11 +323,12 @@ 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.DriverStatus = "XXXXXX";
|
||||
gameBase.Year = "XXXXXX";
|
||||
gameBase.Manufacturer = "XXXXXX";
|
||||
gameBase.Category = "XXXXXX";
|
||||
@@ -344,17 +349,23 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
gameBase.DipSwitch = [dipswitch];
|
||||
gameBase.Driver = driver;
|
||||
|
||||
return new Models.ClrMamePro.MetadataFile
|
||||
var info = new Data.Models.ClrMamePro.Info
|
||||
{
|
||||
Source = ["XXXXXX"],
|
||||
};
|
||||
|
||||
return new Data.Models.ClrMamePro.MetadataFile
|
||||
{
|
||||
ClrMamePro = cmp,
|
||||
Game = [gameBase],
|
||||
Info = info,
|
||||
};
|
||||
}
|
||||
|
||||
/// <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);
|
||||
@@ -377,11 +388,12 @@ 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);
|
||||
Assert.Equal("XXXXXX", gb.Description);
|
||||
// Assert.Equal("XXXXXX", gb.DriverStatus); // TODO: Needs metadata mapping
|
||||
Assert.Equal("XXXXXX", gb.Year);
|
||||
Assert.Equal("XXXXXX", gb.Manufacturer);
|
||||
Assert.Equal("XXXXXX", gb.Category);
|
||||
@@ -438,7 +450,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);
|
||||
@@ -451,7 +463,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);
|
||||
@@ -462,12 +474,14 @@ 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.CRC16);
|
||||
Assert.Equal("XXXXXX", rom.CRC);
|
||||
Assert.Equal("XXXXXX", rom.CRC64);
|
||||
Assert.Equal("XXXXXX", rom.MD2);
|
||||
Assert.Equal("XXXXXX", rom.MD4);
|
||||
Assert.Equal("XXXXXX", rom.MD5);
|
||||
@@ -495,7 +509,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);
|
||||
@@ -509,7 +523,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);
|
||||
@@ -518,7 +532,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);
|
||||
@@ -527,7 +541,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);
|
||||
@@ -540,7 +554,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);
|
||||
@@ -552,7 +566,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);
|
||||
@@ -567,7 +581,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);
|
||||
@@ -576,7 +590,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);
|
||||
@@ -590,7 +604,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);
|
||||
@@ -605,7 +619,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);
|
||||
@@ -614,5 +628,16 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", driver.PaletteSize);
|
||||
Assert.Equal("XXXXXX", driver.Blit);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validate a ClrMamePro
|
||||
/// </summary>
|
||||
private static void Validate(Data.Models.ClrMamePro.Info? info)
|
||||
{
|
||||
Assert.NotNull(info);
|
||||
Assert.NotNull(info.Source);
|
||||
string source = Assert.Single(info.Source);
|
||||
Assert.Equal("XXXXXX", source);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -115,4 +115,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -175,4 +174,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX XXXXXX", rom.Date);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -130,4 +129,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", row.Size);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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 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 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 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 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 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 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 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,27 +291,29 @@ 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)
|
||||
{
|
||||
#pragma warning disable IDE0072
|
||||
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" }] },
|
||||
_ => throw new ArgumentOutOfRangeException(),
|
||||
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(nameof(hashType)),
|
||||
};
|
||||
#pragma warning restore IDE0072
|
||||
}
|
||||
|
||||
/// <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 +323,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 +333,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 +343,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 +353,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 +363,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 +373,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 +383,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,11 +393,11 @@ 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);
|
||||
Assert.Equal("XXXXXX", spamsum.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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
73
SabreTools.Serialization.Test/Readers/ISO9660Tests.cs
Normal file
73
SabreTools.Serialization.Test/Readers/ISO9660Tests.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Serialization.Readers;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
public class ISO9660Tests
|
||||
{
|
||||
[Fact]
|
||||
public void NullArray_Null()
|
||||
{
|
||||
byte[]? data = null;
|
||||
int offset = 0;
|
||||
var deserializer = new ISO9660();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyArray_Null()
|
||||
{
|
||||
byte[]? data = [];
|
||||
int offset = 0;
|
||||
var deserializer = new ISO9660();
|
||||
|
||||
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 ISO9660();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NullStream_Null()
|
||||
{
|
||||
Stream? data = null;
|
||||
var deserializer = new ISO9660();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyStream_Null()
|
||||
{
|
||||
Stream? data = new MemoryStream([]);
|
||||
var deserializer = new ISO9660();
|
||||
|
||||
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 ISO9660();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Serialization.Readers;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
public class InstallShieldExecutableTests
|
||||
{
|
||||
[Fact]
|
||||
public void NullArray_Null()
|
||||
{
|
||||
byte[]? data = null;
|
||||
int offset = 0;
|
||||
var deserializer = new InstallShieldExecutable();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyArray_Null()
|
||||
{
|
||||
byte[]? data = [];
|
||||
int offset = 0;
|
||||
var deserializer = new InstallShieldExecutable();
|
||||
|
||||
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 InstallShieldExecutable();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NullStream_Null()
|
||||
{
|
||||
Stream? data = null;
|
||||
var deserializer = new InstallShieldExecutable();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyStream_Null()
|
||||
{
|
||||
Stream? data = new MemoryStream([]);
|
||||
var deserializer = new InstallShieldExecutable();
|
||||
|
||||
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 InstallShieldExecutable();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
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
|
||||
|
||||
|
||||
{
|
||||
[Fact]
|
||||
public void NullArray_Null()
|
||||
@@ -71,4 +71,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -265,4 +264,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.True(row.NoGoodDumpKnown);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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);
|
||||
@@ -944,4 +943,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", ramoption.Content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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,18 +204,20 @@ 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",
|
||||
CRC16 = "XXXXXX",
|
||||
CRC = "XXXXXX",
|
||||
CRC64 = "XXXXXX",
|
||||
MD2 = "XXXXXX",
|
||||
MD4 = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
@@ -238,7 +239,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",
|
||||
@@ -248,7 +249,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",
|
||||
@@ -257,22 +258,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",
|
||||
@@ -284,7 +285,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",
|
||||
@@ -292,9 +293,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";
|
||||
@@ -326,7 +327,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",
|
||||
@@ -340,7 +341,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);
|
||||
@@ -363,7 +364,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);
|
||||
@@ -375,7 +376,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);
|
||||
@@ -390,7 +391,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);
|
||||
@@ -464,7 +465,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);
|
||||
@@ -486,7 +487,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);
|
||||
@@ -499,7 +500,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);
|
||||
@@ -510,7 +511,7 @@ 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);
|
||||
@@ -540,7 +541,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);
|
||||
@@ -554,7 +555,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);
|
||||
@@ -567,7 +568,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);
|
||||
@@ -576,7 +577,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);
|
||||
@@ -585,7 +586,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);
|
||||
@@ -594,7 +595,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);
|
||||
@@ -610,7 +611,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);
|
||||
@@ -619,4 +620,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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);
|
||||
@@ -937,4 +937,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", ramoption.Content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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);
|
||||
@@ -937,4 +937,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", ramoption.Content);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -515,4 +514,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", image.Height);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -221,4 +220,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", rombase.Remark);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -218,4 +217,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", rom.MergeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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 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(Serialization.Writers.SeparatedValue.HeaderArrayExtended.SequenceEqual(header));
|
||||
else
|
||||
Assert.True(Serialization.Serializers.SeparatedValue.HeaderArrayStandard.SequenceEqual(header));
|
||||
Assert.True(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);
|
||||
@@ -233,13 +233,14 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(row.SHA512);
|
||||
Assert.Null(row.SpamSum);
|
||||
}
|
||||
|
||||
Assert.Equal("XXXXXX", row.Status);
|
||||
}
|
||||
|
||||
/// <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);
|
||||
@@ -267,13 +268,14 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(row.SHA512);
|
||||
Assert.Null(row.SpamSum);
|
||||
}
|
||||
|
||||
Assert.NotNull(row.Status); Assert.Empty(row.Status);
|
||||
}
|
||||
|
||||
/// <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);
|
||||
@@ -302,7 +304,8 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(row.SHA512);
|
||||
Assert.Null(row.SpamSum);
|
||||
}
|
||||
|
||||
Assert.Equal("XXXXXX", row.Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
73
SabreTools.Serialization.Test/Readers/SkuSisTests.cs
Normal file
73
SabreTools.Serialization.Test/Readers/SkuSisTests.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using SabreTools.Serialization.Readers;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Serialization.Test.Readers
|
||||
{
|
||||
public class SkuSisTests
|
||||
{
|
||||
[Fact]
|
||||
public void NullArray_Null()
|
||||
{
|
||||
byte[]? data = null;
|
||||
int offset = 0;
|
||||
var deserializer = new SkuSis();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyArray_Null()
|
||||
{
|
||||
byte[]? data = [];
|
||||
int offset = 0;
|
||||
var deserializer = new SkuSis();
|
||||
|
||||
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 SkuSis();
|
||||
|
||||
var actual = deserializer.Deserialize(data, offset);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NullStream_Null()
|
||||
{
|
||||
Stream? data = null;
|
||||
var deserializer = new SkuSis();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EmptyStream_Null()
|
||||
{
|
||||
Stream? data = new MemoryStream([]);
|
||||
var deserializer = new SkuSis();
|
||||
|
||||
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 SkuSis();
|
||||
|
||||
var actual = deserializer.Deserialize(data);
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 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);
|
||||
@@ -375,4 +374,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Equal("XXXXXX", dipvalue.Default);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -36,4 +36,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
@@ -70,4 +70,4 @@ namespace SabreTools.Serialization.Test.Deserializers
|
||||
Assert.Null(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
73
SabreTools.Serialization.Test/Readers/XZTests.cs
Normal file
73
SabreTools.Serialization.Test/Readers/XZTests.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user