diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-04-11 20:32:00 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-04-11 20:32:00 -0400 |
commit | b9bc1a6d17cafa0a97b46ffecda432cfc2f23b51 (patch) | |
tree | 319498e8724137a5680186645ca8324f2949eba3 /src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock | |
parent | 46141a7af21a921284bc82d49d888da864887d6e (diff) | |
parent | 2d47e479a5e48a575db3ca9998653c0435419440 (diff) | |
download | SMAPI-b9bc1a6d17cafa0a97b46ffecda432cfc2f23b51.tar.gz SMAPI-b9bc1a6d17cafa0a97b46ffecda432cfc2f23b51.tar.bz2 SMAPI-b9bc1a6d17cafa0a97b46ffecda432cfc2f23b51.zip |
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock')
6 files changed, 75 insertions, 0 deletions
diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetFieldBase.cs b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetFieldBase.cs new file mode 100644 index 00000000..1684229a --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetFieldBase.cs @@ -0,0 +1,16 @@ +// ReSharper disable CheckNamespace -- matches Stardew Valley's code +namespace Netcode +{ + /// <summary>A simplified version of Stardew Valley's <c>Netcode.NetFieldBase</c> for unit testing.</summary> + /// <typeparam name="T">The type of the synchronised value.</typeparam> + /// <typeparam name="TSelf">The type of the current instance.</typeparam> + public class NetFieldBase<T, TSelf> where TSelf : NetFieldBase<T, TSelf> + { + /// <summary>The synchronised value.</summary> + public T Value { get; set; } + + /// <summary>Implicitly convert a net field to the its type.</summary> + /// <param name="field">The field to convert.</param> + public static implicit operator T(NetFieldBase<T, TSelf> field) => field.Value; + } +} diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetInt.cs b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetInt.cs new file mode 100644 index 00000000..b3abc467 --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetInt.cs @@ -0,0 +1,6 @@ +// ReSharper disable CheckNamespace -- matches Stardew Valley's code +namespace Netcode +{ + /// <summary>A simplified version of Stardew Valley's <c>Netcode.NetInt</c> for unit testing.</summary> + public class NetInt : NetFieldBase<int, NetInt> { } +} diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetRef.cs b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetRef.cs new file mode 100644 index 00000000..be2459cc --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetRef.cs @@ -0,0 +1,6 @@ +// ReSharper disable CheckNamespace -- matches Stardew Valley's code +namespace Netcode +{ + /// <summary>A simplified version of Stardew Valley's <c>Netcode.NetRef</c> for unit testing.</summary> + public class NetRef<T> : NetFieldBase<T, NetRef<T>> where T : class { } +} diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Farmer.cs b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Farmer.cs new file mode 100644 index 00000000..e0f0e30c --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Farmer.cs @@ -0,0 +1,11 @@ +// ReSharper disable CheckNamespace, InconsistentNaming -- matches Stardew Valley's code +using System.Collections.Generic; + +namespace StardewValley +{ + /// <summary>A simplified version of Stardew Valley's <c>StardewValley.Farmer</c> class for unit testing.</summary> + internal class Farmer + { + public IDictionary<string, int[]> friendships; + } +} diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Item.cs b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Item.cs new file mode 100644 index 00000000..386767d7 --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Item.cs @@ -0,0 +1,24 @@ +// ReSharper disable CheckNamespace, InconsistentNaming -- matches Stardew Valley's code +using Netcode; + +namespace StardewValley +{ + /// <summary>A simplified version of Stardew Valley's <c>StardewValley.Item</c> class for unit testing.</summary> + public class Item + { + /// <summary>A net int field with an equivalent non-net <c>Category</c> property.</summary> + public readonly NetInt category = new NetInt { Value = 42 }; + + /// <summary>A generic net int field with no equivalent non-net property.</summary> + public readonly NetInt netIntField = new NetInt { Value = 42 }; + + /// <summary>A generic net ref field with no equivalent non-net property.</summary> + public readonly NetRef<object> netRefField = new NetRef<object>(); + + /// <summary>A generic net int property with no equivalent non-net property.</summary> + public NetInt netIntProperty = new NetInt { Value = 42 }; + + /// <summary>A generic net ref property with no equivalent non-net property.</summary> + public NetRef<object> netRefProperty { get; } = new NetRef<object>(); + } +} diff --git a/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Object.cs b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Object.cs new file mode 100644 index 00000000..3dd66a6d --- /dev/null +++ b/src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Object.cs @@ -0,0 +1,12 @@ +// ReSharper disable CheckNamespace, InconsistentNaming -- matches Stardew Valley's code +using Netcode; + +namespace StardewValley +{ + /// <summary>A simplified version of Stardew Valley's <c>StardewValley.Object</c> class for unit testing.</summary> + public class Object : Item + { + /// <summary>A net int field with an equivalent non-net property.</summary> + public NetInt type = new NetInt { Value = 42 }; + } +} |