Fixes for unit tests
This commit is contained in:
parent
273d26057a
commit
af0126e413
@ -55,7 +55,7 @@ public static class AbilityDataLoader
|
||||
var effect = serialized.Effect;
|
||||
var parameters = serialized.Parameters.ToDictionary(x => (StringKey)x.Key, x => x.Value.ToParameter());
|
||||
|
||||
StringKey? effectName = effect == null ? null! : new StringKey(effect);
|
||||
var effectName = string.IsNullOrWhiteSpace(effect) ? (StringKey?)null : new StringKey(effect);
|
||||
|
||||
var flags = serialized.Flags.Select(x => new StringKey(x)).ToImmutableHashSet();
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace PkmnLib.Static.Utils;
|
||||
|
||||
/// <summary>
|
||||
@ -26,8 +28,18 @@ public readonly record struct StringKey
|
||||
/// <summary>
|
||||
/// Converts a <see cref="string"/> to a <see cref="StringKey"/>.
|
||||
/// </summary>
|
||||
[return: NotNullIfNotNull("key")]
|
||||
public static implicit operator StringKey?(string? key) =>
|
||||
string.IsNullOrWhiteSpace(key) ? null! : new StringKey(key);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a <see cref="string"/> to a <see cref="StringKey"/>.
|
||||
/// Throws an <see cref="ArgumentException"/> if the key is null or whitespace.
|
||||
/// </summary>
|
||||
public static implicit operator StringKey(string key) =>
|
||||
string.IsNullOrWhiteSpace(key) ? default : new StringKey(key);
|
||||
string.IsNullOrWhiteSpace(key)
|
||||
? throw new ArgumentException("Key cannot be null or whitespace.", nameof(key))
|
||||
: new StringKey(key);
|
||||
|
||||
/// <inheritdoc cref="string.ToString()"/>
|
||||
public override string ToString() => _key.ToLowerInvariant();
|
||||
|
@ -24,7 +24,7 @@ public class AbilityDataTests
|
||||
}
|
||||
}
|
||||
|
||||
[Test, MethodDataSource(nameof(AllAbilitiesHaveValidScriptsData)), Explicit]
|
||||
[Test, MethodDataSource(nameof(AllAbilitiesHaveValidScriptsData))]
|
||||
public async Task AllAbilitiesEffectsHaveValidScripts(TestCaseData test)
|
||||
{
|
||||
var scriptName = test.Ability.Effect;
|
||||
@ -39,7 +39,7 @@ public class AbilityDataTests
|
||||
catch (Exception e)
|
||||
{
|
||||
// Helper method to find the line number of the effect in the JSON file
|
||||
var file = Path.GetFullPath("../../../../Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.json");
|
||||
var file = Path.GetFullPath("../../../../Plugins/PkmnLib.Plugin.Gen7/Data/Abilities.jsonc");
|
||||
var json = await File.ReadAllLinesAsync(file);
|
||||
var moveLineNumber = json.Select((line, index) => new { line, index })
|
||||
.FirstOrDefault(x => x.line.Contains($"\"name\": \"{test.Ability.Effect}\""))?.index + 1;
|
||||
|
@ -72,7 +72,8 @@ public class MultiAttackTests
|
||||
user.Library.Returns(dynamicLibrary);
|
||||
dynamicLibrary.StaticLibrary.Returns(staticLibrary);
|
||||
staticLibrary.Types.Returns(typeLibrary);
|
||||
item.Name.Returns((StringKey)test.ItemName!);
|
||||
if (test.ItemName != null)
|
||||
item.Name.Returns(new StringKey(test.ItemName));
|
||||
move.User.Returns(user);
|
||||
|
||||
if (test.ItemName != null)
|
||||
|
@ -1,5 +1,13 @@
|
||||
namespace PkmnLib.Plugin.Gen7.Scripts.Abilities;
|
||||
|
||||
/// <summary>
|
||||
/// PreventCritical is a generic ability that prevents the user from being hit by critical hits.
|
||||
/// This ability completely blocks any incoming critical hits from opposing Pokémon.
|
||||
/// This ability is used by abilities like Battle Armor and Shell Armor.
|
||||
///
|
||||
/// <see href="https://bulbapedia.bulbagarden.net/wiki/Battle_Armor_(Ability)">Bulbapedia - Battle Armor</see>
|
||||
/// <see href="https://bulbapedia.bulbagarden.net/wiki/Shell_Armor_(Ability)">Bulbapedia - Shell Armor</see>
|
||||
/// </summary>
|
||||
[Script(ScriptCategory.Ability, "prevent_critical")]
|
||||
public class PreventCritical : Script
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user