Skip to content
This repository was archived by the owner on May 29, 2023. It is now read-only.

Commit 0f6cc1c

Browse files
save method unit tests and fixed save object unit tests
also got save object and save methods passing tests
1 parent 051e3cb commit 0f6cc1c

14 files changed

+264
-44
lines changed

Scripts/Editor/SaveSystemTest.cs

Lines changed: 0 additions & 39 deletions
This file was deleted.

Scripts/Editor/Unit Tests.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Scripts/Editor/Unit Tests/Save Methods.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using UnityEngine;
2+
using UnityEngine.TestTools;
3+
using NUnit.Framework;
4+
using System.Collections;
5+
namespace SharedVariableSaveSystem.Tests.SaveMethods
6+
{
7+
[TestFixture]
8+
public class BinarySaveTests : SaveMethodTests
9+
{
10+
SaveBinaryFile saveBinary = ScriptableObject.CreateInstance<SaveBinaryFile>();
11+
12+
[UnityTest]
13+
public override IEnumerator _1_SaveAndLoad()
14+
{
15+
saveMethod = (SaveMethod)saveBinary;
16+
Assert.IsNotNull(saveBinary, "save binary is null?");
17+
yield return base._1_SaveAndLoad();
18+
FileAssert.Exists(saveBinary.SavePath);
19+
}
20+
}
21+
}

Scripts/Editor/Unit Tests/Save Methods/BinarySaveTests.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
using UnityEngine;
2+
using UnityEngine.TestTools;
3+
using NUnit.Framework;
4+
using System.Collections;
5+
using System.Collections.Generic;
6+
using System;
7+
8+
namespace SharedVariableSaveSystem.Tests.SaveMethods
9+
{
10+
[TestFixture]
11+
public abstract class SaveMethodTests
12+
{
13+
public Dictionary<int, string> testData = new Dictionary<int, string>();
14+
15+
public SaveMethod saveMethod;
16+
17+
private DateTime testTime;
18+
/// <summary>
19+
/// Make sure that it can save and load data. Creates some test data. save test data. muddy test data.
20+
/// </summary>
21+
/// <returns></returns>
22+
[UnityTest]
23+
public virtual IEnumerator _1_SaveAndLoad()
24+
{
25+
// save method must be set
26+
Assert.IsNotNull(saveMethod, "save method is null?!");
27+
// reset test data
28+
testData.Clear();
29+
testData.Add(1, "test1");
30+
// save test data
31+
testTime = DateTime.Now;
32+
saveMethod.SaveData(testData);
33+
// muddy test data
34+
testData[1] = "test2";
35+
yield return null;
36+
Assert.AreNotEqual("test1", testData[1]);
37+
// load test data
38+
testData = saveMethod.LoadData(testData);
39+
Assert.AreEqual("test1", testData[1]);
40+
}
41+
/// <summary>
42+
/// Make sure that the has save works
43+
/// </summary>
44+
/// <returns></returns>
45+
[UnityTest]
46+
public virtual IEnumerator _2_HasSave()
47+
{
48+
// save method must be set
49+
Assert.IsNotNull(saveMethod);
50+
// Use the Assert class to test conditions.
51+
// yield to skip a frame
52+
yield return null;
53+
Assert.IsTrue(saveMethod.HasSave,"It doesn't think there's save data?");
54+
}
55+
/// <summary>
56+
/// Make sure that the has save works
57+
/// </summary>
58+
/// <returns></returns>
59+
[UnityTest]
60+
public virtual IEnumerator _3_LastSave()
61+
{
62+
// save method must be set
63+
Assert.IsNotNull(saveMethod);
64+
// Use the Assert class to test conditions.
65+
// yield to skip a frame
66+
yield return null;
67+
DateTime dateTime = saveMethod.LastSave;
68+
Assert.AreEqual(testTime.Hour, saveMethod.LastSave.Hour);
69+
}
70+
/// <summary>
71+
/// Make sure that clearing data works
72+
/// </summary>
73+
/// <returns></returns>
74+
[UnityTest]
75+
public virtual IEnumerator _4_ClearData()
76+
{
77+
// save method must be set
78+
Assert.IsNotNull(saveMethod);
79+
saveMethod.ClearData(testData);
80+
// Use the Assert class to test conditions.
81+
// yield to skip a frame
82+
yield return null;
83+
Assert.IsFalse(saveMethod.HasSave);
84+
}
85+
}
86+
}

Scripts/Editor/Unit Tests/Save Methods/SaveMethodTests.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using UnityEngine;
2+
using UnityEngine.TestTools;
3+
using NUnit.Framework;
4+
using System.Collections;
5+
namespace SharedVariableSaveSystem.Tests.SaveMethods
6+
{
7+
[TestFixture]
8+
public class SavePlayerPrefsTests : SaveMethodTests
9+
{
10+
SavePlayerPrefs savePlayerPrefs = ScriptableObject.CreateInstance<SavePlayerPrefs>();
11+
12+
[UnityTest]
13+
public override IEnumerator _1_SaveAndLoad()
14+
{
15+
savePlayerPrefs.SaveFilePath = "test";
16+
saveMethod = (SaveMethod)savePlayerPrefs;
17+
Assert.IsNotNull(savePlayerPrefs);
18+
yield return base._1_SaveAndLoad();
19+
//yield return null;
20+
Assert.IsTrue(PlayerPrefs.HasKey(savePlayerPrefs.SavePath + "LastSave"), "["+savePlayerPrefs.SavePath + "LastSave] player pref key is missing");
21+
Assert.AreEqual("test1", PlayerPrefs.GetString(savePlayerPrefs.SavePath + "1"));
22+
}
23+
}
24+
}
25+

Scripts/Editor/Unit Tests/Save Methods/SavePlayerPrefsTests.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
using UnityEngine.TestTools;
5+
using NUnit.Framework;
6+
7+
namespace SharedVariableSaveSystem.Tests
8+
{
9+
[TestFixture]
10+
public class SaveObjectTest
11+
{
12+
SaveObject saveObject = ScriptableObject.CreateInstance<SaveObject>();
13+
IntVariable testIntData = ScriptableObject.CreateInstance<IntVariable>();
14+
SavePlayerPrefs playerPrefs = ScriptableObject.CreateInstance<SavePlayerPrefs>();
15+
const int testData = 5;
16+
const int testDefault = 10;
17+
18+
[UnityTest]
19+
public IEnumerator _1_Setup()
20+
{
21+
testIntData.name = "TestData";
22+
testIntData.InitialValue = testDefault;
23+
testIntData.RuntimeValue = testData;
24+
saveObject.Data = new List<SavableVariable>();
25+
saveObject.Data.Add(testIntData);
26+
saveObject.SaveLocations = new List<SaveMethod>();
27+
saveObject.SaveLocations.Add(playerPrefs);
28+
29+
yield return null;
30+
31+
Assert.NotNull(saveObject);
32+
Assert.NotNull(testIntData);
33+
Assert.NotNull(playerPrefs);
34+
Assert.AreEqual(testDefault, testIntData.InitialValue);
35+
Assert.AreEqual(testData, testIntData.RuntimeValue);
36+
Assert.Contains(testIntData, saveObject.Data);
37+
Assert.Contains(playerPrefs, saveObject.SaveLocations);
38+
39+
}
40+
41+
[UnityTest]
42+
public IEnumerator _2_Save()
43+
{
44+
saveObject.SaveData();
45+
46+
yield return null;
47+
48+
Assert.IsTrue(saveObject.hasSave);
49+
// blank out the data to simulate that it's been unloaded
50+
testIntData.OnAfterDeserialize();
51+
Assert.AreEqual(testIntData.RuntimeValue, testIntData.InitialValue);
52+
Assert.AreNotEqual(testData, testIntData.RuntimeValue);
53+
}
54+
55+
[UnityTest]
56+
public IEnumerator _3_Load()
57+
{
58+
saveObject.LoadData();
59+
60+
yield return null;
61+
62+
Assert.AreEqual(testData, testIntData.RuntimeValue);
63+
}
64+
65+
[UnityTest]
66+
public IEnumerator _4_Clear()
67+
{
68+
69+
saveObject.ClearSaveData();
70+
71+
yield return null;
72+
73+
Assert.False(saveObject.hasSave);
74+
}
75+
}
76+
77+
}

0 commit comments

Comments
 (0)