diff --git a/Beataroni/Beataroni.Tests/BeatModsV1Tests.cs b/Beataroni/Beataroni.Tests/BeatModsV1Tests.cs index 2ada711..281dbfb 100644 --- a/Beataroni/Beataroni.Tests/BeatModsV1Tests.cs +++ b/Beataroni/Beataroni.Tests/BeatModsV1Tests.cs @@ -11,7 +11,7 @@ public void TestFetchBSVersions() { var versions = BeatModsV1.FetchBSVersions(); Assert.NotNull(versions); - Assert.Equal(11, versions.Count); + Assert.Equal(12, versions.Count); } [Fact] @@ -22,13 +22,7 @@ public void TestFetchMods() var mods = BeatModsV1.FetchMods(filters); Assert.NotNull(mods); - Assert.Equal(56, mods.Count); + Assert.Equal(60, mods.Count); } - - // [Fact] - // public void TestInstallMod() - // { - // throw new NotImplementedException(); - // } } } diff --git a/Beataroni/Beataroni/Models/BeatMods/mod.cs b/Beataroni/Beataroni/Models/BeatMods/mod.cs index cfab94c..9559824 100644 --- a/Beataroni/Beataroni/Models/BeatMods/mod.cs +++ b/Beataroni/Beataroni/Models/BeatMods/mod.cs @@ -65,6 +65,13 @@ public static void GetDependencySet(Mod mod, ref HashSet dependencies) } } + /// Comparator class for Mod + public class ModComparatorByName : IComparer + { + public int Compare(Mod a, Mod b) => string.Compare(a.name, b.name, true); + } + + /// /// A Mod within Mod.dependencies /// This is only a different class due to the way BeatMods returns dependencies diff --git a/Beataroni/Beataroni/Services/BeatModsV1.cs b/Beataroni/Beataroni/Services/BeatModsV1.cs index f799c32..7b336b7 100644 --- a/Beataroni/Beataroni/Services/BeatModsV1.cs +++ b/Beataroni/Beataroni/Services/BeatModsV1.cs @@ -52,7 +52,7 @@ public static IList FetchBSVersions() /// Fetch list of mods for a set of filters /// Typical filters would be game version, installation type, mod status - public static IList FetchMods( Dictionary filters ) + public static ICollection FetchMods( Dictionary filters ) { var endpoint = $"{APIMod}"; @@ -90,7 +90,7 @@ public static IList FetchMods( Dictionary filters ) // Expand any dependencies into .net object references mods.ForEach(x => x.ExpandDependencyRefs(mods)); - return mods; + return new SortedSet(mods, new ModComparatorByName()); } catch (WebException e) { Console.WriteLine($"Error fetching BS Mods: {e.Message}");