Skip to content

Commit 888b0aa

Browse files
authored
Merge pull request #233 from AlamoEngine-Tools/develop
Release
2 parents 55a5def + 311c5c4 commit 888b0aa

File tree

81 files changed

+458
-454
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+458
-454
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Releasing eaw.modinfo
1+
name: Release AET.Modinfo
22

33
on:
44
push:

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# EaW-Modinfo-Implementation
22

3+
[![Nuget](https://img.shields.io/nuget/v/AlamoEngineTools.Modinfo)](https://www.nuget.org/packages/AlamoEngineTools.Modinfo/)
34
[![CI/CD Master](https://github.com/AlamoEngine-Tools/EaW-Modinfo-Implementation/actions/workflows/release.yml/badge.svg)](https://github.com/AlamoEngine-Tools/EaW-Modinfo-Implementation/actions/workflows/release.yml)
45

56
C# implementation for the [EaW Modinfo Specification](https://github.com/AlamoEngine-Tools/eaw.modinfo)

src/EawModinfo.Tests/DependencyListTest.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
using System;
22
using System.Collections.Generic;
33
using System.IO;
4+
using System.Linq;
45
using System.Text;
5-
using EawModinfo.Model;
6-
using EawModinfo.Model.Json;
7-
using EawModinfo.Spec;
8-
using Xunit;
9-
using EawModinfo.Spec.Equality;
10-
using EawModinfo.Model.Json.Schema;
116
using System.Text.Json.Nodes;
12-
using System.Linq;
7+
using AET.Modinfo.Model;
8+
using AET.Modinfo.Model.Json;
9+
using AET.Modinfo.Model.Json.Schema;
10+
using AET.Modinfo.Spec;
11+
using AET.Modinfo.Spec.Equality;
12+
using Xunit;
1313

14-
namespace EawModinfo.Tests;
14+
namespace AET.Modinfo.Tests;
1515

1616
public class DependencyListTest
1717
{
@@ -89,10 +89,10 @@ public static IEnumerable<object[]> GetInvalidJsonData()
8989
public void Parse_Invalid(string data, IList<string> expectedErrorKeys)
9090
{
9191
Assert.False(ModInfoJsonSchema.IsValid(JsonNode.Parse(data), EvaluationType.ModDependencyList, out var errors));
92-
Assert.Equivalent(expectedErrorKeys, errors.Select(x => x.Key).Distinct(), true);
92+
Assert.Equivalent(expectedErrorKeys, Enumerable.Select<KeyValuePair<string, string>, string>(errors, x => x.Key).Distinct(), true);
9393
Assert.Throws<ModinfoParseException>(() => TestUtilities.Evaluate(data, EvaluationType.ModDependencyList));
94-
Assert.Throws<ModinfoParseException>(() => DependencyList.Parse(data));
95-
Assert.Throws<ModinfoParseException>(() => DependencyList.Parse(new MemoryStream(Encoding.UTF8.GetBytes(data))));
94+
Assert.Throws<ModinfoParseException>((Func<object?>)(() => DependencyList.Parse(data)));
95+
Assert.Throws<ModinfoParseException>((Func<object?>)(() => DependencyList.Parse(new MemoryStream(Encoding.UTF8.GetBytes(data)))));
9696
}
9797

9898

@@ -197,7 +197,7 @@ public static IEnumerable<object[]> GetListInstances()
197197
public static void ToJson(DependencyList list, string expected)
198198
{
199199
var json = list.ToJson();
200-
Assert.Equal(expected, json);
200+
Assert.Equal(expected, (string?)json);
201201

202202
var ms = new MemoryStream();
203203
list.ToJson(ms);

src/EawModinfo.Tests/DetectedModReferenceTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
using System;
22
using System.IO.Abstractions;
3-
using EawModinfo.Model;
4-
using EawModinfo.Spec;
5-
using EawModinfo.Utilities;
3+
using AET.Modinfo.Model;
4+
using AET.Modinfo.Spec;
5+
using AET.Modinfo.Utilities;
66
using Testably.Abstractions.Testing;
77
using Xunit;
88

9-
namespace EawModinfo.Tests;
9+
namespace AET.Modinfo.Tests;
1010

1111
public class DetectedModReferenceTest
1212
{

src/EawModinfo.Tests/EawModinfo.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<AssemblyName>AET.Modinfo.Tests</AssemblyName>
5+
<RootNamespace>AET.Modinfo.Tests</RootNamespace>
56
<TargetFrameworks>net8.0</TargetFrameworks>
67
<TargetFrameworks Condition="!$([MSBuild]::IsOsUnixLike())">$(TargetFrameworks);net48</TargetFrameworks>
78
<IsPackable>false</IsPackable>

src/EawModinfo.Tests/EqualityComparerTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
using System;
2-
using EawModinfo.Spec.Equality;
2+
using AET.Modinfo.Spec.Equality;
33
using Xunit;
44

5-
namespace EawModinfo.Tests;
5+
namespace AET.Modinfo.Tests;
66

77
public class EqualityComparerTest
88
{

src/EawModinfo.Tests/EqualityTestHelpers.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
using System;
22
using System.Collections.Generic;
3-
using EawModinfo.Model;
4-
using EawModinfo.Spec;
3+
using AET.Modinfo.Model;
4+
using AET.Modinfo.Spec;
55
using Semver;
66
using Xunit;
77

8-
namespace EawModinfo.Tests;
8+
namespace AET.Modinfo.Tests;
99

1010
public class EqualityTestHelpers
1111
{

src/EawModinfo.Tests/LanguageInfoTests.cs

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
using System.Runtime.InteropServices;
77
using System.Text;
88
using System.Text.Json.Nodes;
9-
using EawModinfo.Model;
10-
using EawModinfo.Model.Json;
11-
using EawModinfo.Model.Json.Schema;
12-
using EawModinfo.Spec;
13-
using EawModinfo.Spec.Equality;
9+
using AET.Modinfo.Model;
10+
using AET.Modinfo.Model.Json;
11+
using AET.Modinfo.Model.Json.Schema;
12+
using AET.Modinfo.Spec;
13+
using AET.Modinfo.Spec.Equality;
1414
using Xunit;
1515

16-
namespace EawModinfo.Tests;
16+
namespace AET.Modinfo.Tests;
1717

1818
public class LanguageInfoTests
1919
{
@@ -59,19 +59,19 @@ public void Equal_GetHashCode()
5959
public void Ctor()
6060
{
6161
var info = new LanguageInfo("en", LanguageSupportLevel.FullLocalized);
62-
Assert.Equal("en", info.Code);
62+
Assert.Equal((string?)"en", (string?)info.Code);
6363
Assert.Equal(LanguageSupportLevel.FullLocalized, info.Support);
6464
}
6565

6666
[Fact]
6767
public void Ctor_DefaultSupportCoercesToFullLocalized()
6868
{
6969
var info = new LanguageInfo("de", default);
70-
Assert.Equal("de", info.Code);
70+
Assert.Equal((string?)"de", (string?)info.Code);
7171
Assert.Equal(LanguageSupportLevel.FullLocalized, info.Support);
7272

7373
var info2 = new LanguageInfo(new JsonLanguageInfo("en", default));
74-
Assert.Equal("en", info2.Code);
74+
Assert.Equal((string?)"en", (string?)info2.Code);
7575
Assert.Equal(LanguageSupportLevel.FullLocalized, info2.Support);
7676
}
7777

@@ -130,12 +130,12 @@ public void Parse(string data, string expectedCode, LanguageSupportLevel expecte
130130
TestUtilities.Evaluate(data, EvaluationType.ModLanguageInfo);
131131
Assert.True(ModInfoJsonSchema.IsValid(JsonNode.Parse(data), EvaluationType.ModLanguageInfo, out _));
132132
var languageInfo = LanguageInfo.Parse(data);
133-
Assert.Equal(expectedCode, languageInfo.Code);
133+
Assert.Equal(expectedCode, (string?)languageInfo.Code);
134134
Assert.Equal(expectedLevel, languageInfo.Support);
135135

136136
var ms = new MemoryStream(Encoding.UTF8.GetBytes(data));
137137
languageInfo = LanguageInfo.Parse(ms);
138-
Assert.Equal(expectedCode, languageInfo.Code);
138+
Assert.Equal(expectedCode, (string?)languageInfo.Code);
139139
Assert.Equal(expectedLevel, languageInfo.Support);
140140
}
141141

@@ -200,9 +200,9 @@ public void Parse_InvalidDataThrows(string data, IList<string> expectedErrorKeys
200200
{
201201
Assert.Throws<ModinfoParseException>(() => TestUtilities.Evaluate(data, EvaluationType.ModLanguageInfo));
202202
Assert.False(ModInfoJsonSchema.IsValid(JsonNode.Parse(data), EvaluationType.ModLanguageInfo, out var errors));
203-
Assert.Equivalent(expectedErrorKeys, errors.Select(x => x.Key), true);
204-
Assert.Throws<ModinfoParseException>(() => LanguageInfo.Parse(data));
205-
Assert.Throws<ModinfoParseException>(() => LanguageInfo.Parse(new MemoryStream(Encoding.UTF8.GetBytes(data))));
203+
Assert.Equivalent(expectedErrorKeys, Enumerable.Select<KeyValuePair<string, string>, string>(errors, x => x.Key), true);
204+
Assert.Throws<ModinfoParseException>((Func<object?>)(() => LanguageInfo.Parse(data)));
205+
Assert.Throws<ModinfoParseException>((Func<object?>)(() => LanguageInfo.Parse(new MemoryStream(Encoding.UTF8.GetBytes(data)))));
206206
}
207207

208208
[Fact]
@@ -217,44 +217,44 @@ public void ToJson_Languages_Default()
217217
{
218218
var languageInfo = LanguageInfo.Default;
219219
var json = languageInfo.ToJson();
220-
Assert.Contains(@"""code"": ""en""", json);
221-
Assert.DoesNotContain(@"""support"": 7", json);
220+
Assert.Contains((string)@"""code"": ""en""", (string?)json);
221+
Assert.DoesNotContain((string)@"""support"": 7", (string?)json);
222222

223223
var ms = new MemoryStream();
224224
languageInfo.ToJson(ms);
225225
json = Encoding.UTF8.GetString(ms.ToArray());
226-
Assert.Contains(@"""code"": ""en""", json);
227-
Assert.DoesNotContain(@"""support"": 7", json);
226+
Assert.Contains((string)@"""code"": ""en""", (string?)json);
227+
Assert.DoesNotContain((string)@"""support"": 7", (string?)json);
228228
}
229229

230230
[Fact]
231231
public void ToJson_Languages_CustomDefault()
232232
{
233233
var languageInfo = new LanguageInfo("en", 0);
234234
var json = languageInfo.ToJson();
235-
Assert.Contains(@"""code"": ""en""", json);
236-
Assert.DoesNotContain(@"""support""", json);
235+
Assert.Contains((string)@"""code"": ""en""", (string?)json);
236+
Assert.DoesNotContain((string)@"""support""", (string?)json);
237237

238238
var ms = new MemoryStream();
239239
languageInfo.ToJson(ms);
240240
json = Encoding.UTF8.GetString(ms.ToArray());
241-
Assert.Contains(@"""code"": ""en""", json);
242-
Assert.DoesNotContain(@"""support""", json);
241+
Assert.Contains((string)@"""code"": ""en""", (string?)json);
242+
Assert.DoesNotContain((string)@"""support""", (string?)json);
243243
}
244244

245245
[Fact]
246246
public void ToJson_Languages_Full()
247247
{
248248
var languageInfo = new LanguageInfo("en", LanguageSupportLevel.FullLocalized);
249249
var json = languageInfo.ToJson();
250-
Assert.Contains(@"""code"": ""en""", json);
251-
Assert.DoesNotContain(@"""support"": 7", json);
250+
Assert.Contains((string)@"""code"": ""en""", (string?)json);
251+
Assert.DoesNotContain((string)@"""support"": 7", (string?)json);
252252

253253
var ms = new MemoryStream();
254254
languageInfo.ToJson(ms);
255255
json = Encoding.UTF8.GetString(ms.ToArray());
256-
Assert.Contains(@"""code"": ""en""", json);
257-
Assert.DoesNotContain(@"""support""", json);
256+
Assert.Contains((string)@"""code"": ""en""", (string?)json);
257+
Assert.DoesNotContain((string)@"""support""", (string?)json);
258258
}
259259

260260
[Fact]
@@ -263,14 +263,14 @@ public void ToJson_Languages_NonEnglish()
263263
var languageInfo = new LanguageInfo("de", LanguageSupportLevel.FullLocalized);
264264
var json = languageInfo.ToJson();
265265

266-
Assert.Contains(@"""code"": ""de""", json);
267-
Assert.DoesNotContain(@"""support"": 7", json);
266+
Assert.Contains((string)@"""code"": ""de""", (string?)json);
267+
Assert.DoesNotContain((string)@"""support"": 7", (string?)json);
268268

269269
var ms = new MemoryStream();
270270
languageInfo.ToJson(ms);
271271
json = Encoding.UTF8.GetString(ms.ToArray());
272-
Assert.Contains(@"""code"": ""de""", json);
273-
Assert.DoesNotContain(@"""support"": 7", json);
272+
Assert.Contains((string)@"""code"": ""de""", (string?)json);
273+
Assert.DoesNotContain((string)@"""support"": 7", (string?)json);
274274
}
275275

276276
[Fact]

src/EawModinfo.Tests/MainModinfoFileTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using System;
2-
using EawModinfo.File;
3-
using EawModinfo.Spec;
2+
using AET.Modinfo.File;
3+
using AET.Modinfo.Spec;
44
using Xunit;
55

6-
namespace EawModinfo.Tests;
6+
namespace AET.Modinfo.Tests;
77

88
public class MainModinfoFileTest : ModinfoFileTestsBase
99
{

src/EawModinfo.Tests/MergeTests.cs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Linq;
5-
using EawModinfo.Model;
6-
using EawModinfo.Model.Json;
7-
using EawModinfo.Spec;
8-
using EawModinfo.Spec.Steam;
9-
using EawModinfo.Utilities;
5+
using AET.Modinfo.Model;
6+
using AET.Modinfo.Model.Json;
7+
using AET.Modinfo.Spec;
8+
using AET.Modinfo.Spec.Steam;
9+
using AET.Modinfo.Utilities;
1010
using Semver;
1111
using Xunit;
1212

13-
namespace EawModinfo.Tests;
13+
namespace AET.Modinfo.Tests;
1414

1515
public class MergeTests
1616
{
@@ -35,25 +35,25 @@ public void MergeInto_VariantDefinesNameOnly()
3535

3636
var newData = variantData.MergeInto(mainData);
3737

38-
Assert.Equal(variantData.Name, newData.Name);
39-
Assert.Equal(mainData.Icon, newData.Icon);
40-
Assert.Equal(mainData.Summary, newData.Summary);
38+
Assert.Equal((string?)variantData.Name, (string?)newData.Name);
39+
Assert.Equal((string?)mainData.Icon, (string?)newData.Icon);
40+
Assert.Equal((string?)mainData.Summary, (string?)newData.Summary);
4141
Assert.Equal(2, newData.Languages.Count); // As stated by the specification in III.3.2, languages was not explicitly set.
4242
Assert.True(newData.LanguagesExplicitlySet);
43-
Assert.Equal(LanguageInfo.Default, newData.Languages.First());
43+
Assert.Equal(LanguageInfo.Default, Enumerable.First(newData.Languages));
4444
Assert.Equal(2, newData.Dependencies.Count);
45-
Assert.Equal("bla", newData.Dependencies[0].Identifier);
45+
Assert.Equal((string?)"bla", (string?)newData.Dependencies[0].Identifier);
4646
Assert.NotNull(newData.SteamData);
47-
Assert.Equal(mainData.SteamData!.Id, newData.SteamData?.Id);
48-
Assert.Equal(mainData.SteamData!.Title, newData.SteamData?.Title);
47+
Assert.Equal((string?)mainData.SteamData!.Id, (string?)newData.SteamData?.Id);
48+
Assert.Equal((string?)mainData.SteamData!.Title, (string?)newData.SteamData?.Title);
4949
Assert.Single(newData.Custom);
5050
Assert.Equal(new SemVersion(1, 2, 2), newData.Version);
5151
Assert.Equal(mainData.Version, newData.Version);
5252

5353

5454
var invalid = new InvalidModinfo();
55-
Assert.Throws<ModinfoException>(() => invalid.MergeInto(newData));
56-
Assert.Throws<ModinfoException>(() => newData.MergeInto(invalid));
55+
Assert.Throws<ModinfoException>((Func<object?>)(() => invalid.MergeInto(newData)));
56+
Assert.Throws<ModinfoException>((Func<object?>)(() => newData.MergeInto(invalid)));
5757
}
5858

5959
[Fact]
@@ -87,23 +87,23 @@ public void MergeInto_VariantDefinesAll()
8787

8888
var newData = variantData.MergeInto(mainData);
8989

90-
Assert.Equal(variantData.Name, newData.Name);
91-
Assert.Equal(variantData.Icon, newData.Icon);
92-
Assert.Equal(variantData.Summary, newData.Summary);
90+
Assert.Equal((string?)variantData.Name, (string?)newData.Name);
91+
Assert.Equal((string?)variantData.Icon, (string?)newData.Icon);
92+
Assert.Equal((string?)variantData.Summary, (string?)newData.Summary);
9393
Assert.Equal(2, newData.Languages.Count);
9494
Assert.True(newData.LanguagesExplicitlySet);
9595
Assert.Equal(2, newData.Dependencies.Count);
96-
Assert.Equal("bar", newData.Dependencies[0].Identifier);
96+
Assert.Equal((string?)"bar", (string?)newData.Dependencies[0].Identifier);
9797
Assert.NotNull(newData.SteamData);
98-
Assert.Equal(variantData.SteamData!.Id, newData.SteamData?.Id);
99-
Assert.Equal(variantData.SteamData!.Title, newData.SteamData?.Title);
98+
Assert.Equal((string?)variantData.SteamData!.Id, (string?)newData.SteamData?.Id);
99+
Assert.Equal((string?)variantData.SteamData!.Title, (string?)newData.SteamData?.Title);
100100
Assert.Equal(new SemVersion(9, 9, 9), newData.Version);
101101
Assert.Equal(variantData.Version, newData.Version);
102102

103103

104104
var invalid = new InvalidModinfo();
105-
Assert.Throws<ModinfoException>(() => invalid.MergeInto(newData));
106-
Assert.Throws<ModinfoException>(() => newData.MergeInto(invalid));
105+
Assert.Throws<ModinfoException>((Func<object?>)(() => invalid.MergeInto(newData)));
106+
Assert.Throws<ModinfoException>((Func<object?>)(() => newData.MergeInto(invalid)));
107107
}
108108

109109
[Fact]
@@ -131,9 +131,9 @@ public void MergeInto_CustomMerge()
131131

132132
Assert.Equal(3, newData.Custom.Count);
133133

134-
Assert.Equal("value1", newData.Custom["key1"]);
135-
Assert.Equal(2, newData.Custom["key2"]); // Value should be 2 as specified in III.3.2
136-
Assert.Equal("value3", newData.Custom["key3"]);
134+
Assert.Equal<object>("value1", newData.Custom["key1"]);
135+
Assert.Equal<object>(2, newData.Custom["key2"]); // Value should be 2 as specified in III.3.2
136+
Assert.Equal<object>("value3", newData.Custom["key3"]);
137137
}
138138

139139
[Fact]

0 commit comments

Comments
 (0)