diff --git a/Achievments/Tests.meta b/Achievments/Tests.meta new file mode 100644 index 0000000..ddd7f84 --- /dev/null +++ b/Achievments/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bab659ddb2d136440a51c5c9b76fefcb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/ConfigTests.cs b/Achievments/Tests/ConfigTests.cs new file mode 100644 index 0000000..a688b16 --- /dev/null +++ b/Achievments/Tests/ConfigTests.cs @@ -0,0 +1,90 @@ +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; +using NEG.Utils.Achivments; + +public class ConfigTests +{ + public const string AchivmentDefOnlyLabel = "TestAchivments"; + public const string AchivmentSetLabel = "TestAchivments"; + public const string AchivmentProgressLabel = "TestAchivments"; + + public const string NoProgressAchivment = "NO_PROGRESS"; + public const string WithProgressAchivment = "WITH_PROGRESS"; + + [Test] + public void AchivmentDefOnly() + { + AchivmentManager manager = AchivmentManager.Builder.FromLabeledConfig(AchivmentDefOnlyLabel).Build(); + + //Shoud not throw + manager.SetAchivment(NoProgressAchivment); + //Shoud not throw + manager.SetAchivment(WithProgressAchivment); + } + + [Test] + public void AchivmentSet() + { + var callbackTester = new TestCallbackRereiver(); + + AchivmentManager manager = AchivmentManager.Builder.FromLabeledConfig(AchivmentDefOnlyLabel) + .WithCallbackReciever(callbackTester) + .Build(); + + //Shoud not throw + manager.SetAchivment(NoProgressAchivment); + + //Shoud not throw + manager.SetAchivment(WithProgressAchivment); + } + + [Test] + public void AchivmentProgress() + { + AchivmentManager manager = AchivmentManager.Builder.FromLabeledConfig(AchivmentProgressLabel).Build(); + } + + private class TestCallbackRereiver : IAchivmentCallbackReciever + { + public int LastProgressUpdated { get; private set; } = -1; + public string LastIdUpdated { get; private set; } = null; + public string LastIdSet { get; private set; } = null; + + public void SetAchivment(AchivmentData achivment) + { + LastIdSet = achivment.Achivment.Id; + } + + public void SetAchivmentProgress(AchivmentData achivment, int progress) + { + LastIdUpdated = achivment.Achivment.Id; + LastProgressUpdated = progress; + } + + public void Reset() + { + LastIdSet = null; + LastIdUpdated = null; + LastProgressUpdated = -1; + } + + public void TestSetCallbackst(AchivmentManager manager, string id) + { + manager.SetAchivment(id); + Assert.AreEqual(id, LastIdSet); + Assert.AreEqual(null, LastIdUpdated); + Assert.AreEqual(-1, LastProgressUpdated); + } + + public void TestProgressCallback(AchivmentManager manager, string id, int progress, int expectedProgress, bool shouldSet) + { + manager.AddProgress(id, progress); + //Assert.AreEqual(, LastIdSet); + Assert.AreEqual(null, LastIdUpdated); + Assert.AreEqual(-1, LastProgressUpdated); + } + } +} diff --git a/Achievments/Tests/ConfigTests.cs.meta b/Achievments/Tests/ConfigTests.cs.meta new file mode 100644 index 0000000..fb7923b --- /dev/null +++ b/Achievments/Tests/ConfigTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c47a38eaf8bffa849b130320427701cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/NEG.Utils.Achivments.Tests.asmdef b/Achievments/Tests/NEG.Utils.Achivments.Tests.asmdef new file mode 100644 index 0000000..929e13a --- /dev/null +++ b/Achievments/Tests/NEG.Utils.Achivments.Tests.asmdef @@ -0,0 +1,27 @@ +{ + "name": "NEG.Utils.Achivments.Tests", + "rootNamespace": "", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "NEG.Utils.Achivments", + "Unity.Addressables", + "Unity.ResourceManager", + "" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Achievments/Tests/NEG.Utils.Achivments.Tests.asmdef.meta b/Achievments/Tests/NEG.Utils.Achivments.Tests.asmdef.meta new file mode 100644 index 0000000..8d89c87 --- /dev/null +++ b/Achievments/Tests/NEG.Utils.Achivments.Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18b8be0ae04b6ad45ba52b2ddeb8198d +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/TestAssets.meta b/Achievments/Tests/TestAssets.meta new file mode 100644 index 0000000..98c83f5 --- /dev/null +++ b/Achievments/Tests/TestAssets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f7445ed9dd5a4548b89d56c196cbec7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/TestAssets/AchivmentCollection.asset b/Achievments/Tests/TestAssets/AchivmentCollection.asset new file mode 100644 index 0000000..19ed1a9 --- /dev/null +++ b/Achievments/Tests/TestAssets/AchivmentCollection.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ef37a873be859d042bda22dee624e429, type: 3} + m_Name: AchivmentCollection + m_EditorClassIdentifier: + k__BackingField: + - {fileID: 11400000, guid: 553d34779f9a31d4891686d6d34e8033, type: 2} + - {fileID: 11400000, guid: adbb4fd3d7472eb49933ac9958d499ff, type: 2} diff --git a/Achievments/Tests/TestAssets/AchivmentCollection.asset.meta b/Achievments/Tests/TestAssets/AchivmentCollection.asset.meta new file mode 100644 index 0000000..3747185 --- /dev/null +++ b/Achievments/Tests/TestAssets/AchivmentCollection.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d95138fe57571c4299aa325a378e4ea +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/TestAssets/BaseConfig.asset b/Achievments/Tests/TestAssets/BaseConfig.asset new file mode 100644 index 0000000..467b029 --- /dev/null +++ b/Achievments/Tests/TestAssets/BaseConfig.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88120b6e616164f489387a6a32a25dee, type: 3} + m_Name: BaseConfig + m_EditorClassIdentifier: + k__BackingField: TestAchivments diff --git a/Achievments/Tests/TestAssets/BaseConfig.asset.meta b/Achievments/Tests/TestAssets/BaseConfig.asset.meta new file mode 100644 index 0000000..5f01ffd --- /dev/null +++ b/Achievments/Tests/TestAssets/BaseConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15513fd07fae44548bac5d923171a2a3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/TestAssets/NoProgress.asset b/Achievments/Tests/TestAssets/NoProgress.asset new file mode 100644 index 0000000..e186a84 --- /dev/null +++ b/Achievments/Tests/TestAssets/NoProgress.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9bd42dd58472044b8ecc0d69caa7da8, type: 3} + m_Name: NoProgress + m_EditorClassIdentifier: + k__BackingField: NO_PROGRESS + k__BackingField: 1 + additionalDataInitializer: diff --git a/Achievments/Tests/TestAssets/NoProgress.asset.meta b/Achievments/Tests/TestAssets/NoProgress.asset.meta new file mode 100644 index 0000000..f005e8f --- /dev/null +++ b/Achievments/Tests/TestAssets/NoProgress.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 553d34779f9a31d4891686d6d34e8033 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Achievments/Tests/TestAssets/WithProgress.asset b/Achievments/Tests/TestAssets/WithProgress.asset new file mode 100644 index 0000000..d343175 --- /dev/null +++ b/Achievments/Tests/TestAssets/WithProgress.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9bd42dd58472044b8ecc0d69caa7da8, type: 3} + m_Name: WithProgress + m_EditorClassIdentifier: + k__BackingField: WITH_PROGRESS + k__BackingField: 100 + additionalDataInitializer: diff --git a/Achievments/Tests/TestAssets/WithProgress.asset.meta b/Achievments/Tests/TestAssets/WithProgress.asset.meta new file mode 100644 index 0000000..cec1de2 --- /dev/null +++ b/Achievments/Tests/TestAssets/WithProgress.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: adbb4fd3d7472eb49933ac9958d499ff +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: