Пример #1
0
        public IEnumerator LoadTimeUnaffectedBySaving()
        {
            var beforeNewSave = DateTime.Now;

            yield return(null);

            var saveData     = SaveDataTestImpl.NewSaveFile(nameof(LoadTimeUnaffectedBySaving));
            var afterNewSave = DateTime.Now;

            AssertAll.Of(
                () => Assert.That(saveData.LastSaveTime, Is.InRange(beforeNewSave, afterNewSave)),
                () => Assert.That(saveData.LastLoadTime, Is.Null)
                );

            var oldSaveTime = saveData.LastSaveTime;
            var oldLoadTime = saveData.LastLoadTime;

            yield return(new WaitForSecondsRealtime(1));

            var beforeReSave = DateTime.Now;

            yield return(null);

            saveData.Save(false);
            var afterReSave = DateTime.Now;

            AssertAll.Of(
                () => Assert.That(saveData.LastSaveTime, Is.InRange(beforeReSave, afterReSave)),
                () => Assert.That(saveData.LastSaveTime, Is.Not.EqualTo(oldSaveTime)),
                () => Assert.That(saveData.LastLoadTime, Is.EqualTo(oldLoadTime))
                );
        }
Пример #2
0
        public IEnumerator SaveTimeUnaffectedByLoading()
        {
            DateTime beforeNewSave = DateTime.Now;

            yield return(null);

            var      saveData     = SaveDataTestImpl.NewSaveFile(nameof(SaveTimeUnaffectedByLoading));
            DateTime afterNewSave = DateTime.Now;

            AssertAll.Of(
                () => Assert.That(saveData.LastSaveTime, Is.InRange(beforeNewSave, afterNewSave)),
                () => Assert.That(saveData.LastLoadTime, Is.Null)
                );

            var oldSaveTime = saveData.LastSaveTime;
            var oldLoadTime = saveData.LastLoadTime;

            yield return(new WaitForSecondsRealtime(1));

            DateTime beforeReload = DateTime.Now;

            yield return(null);

            saveData.Reload();
            DateTime afterReload = DateTime.Now;

            AssertAll.Of(
                () => Assert.That(saveData.LastSaveTime, Is.EqualTo(oldSaveTime), $"The {nameof(SaveDataTestImpl.LastSaveTime)} should not have changed, because we {nameof(SaveDataTestImpl.Reload)}-ed without {nameof(SaveDataTestImpl.Save)}-ing!"),
                () => Assert.That(saveData.LastLoadTime, Is.Not.EqualTo(oldLoadTime), $"The {nameof(SaveDataTestImpl.LastLoadTime)} should have changed, because we {nameof(SaveDataTestImpl.Reload)}-ed!"),
                () => Assert.That(saveData.LastLoadTime, Is.InRange(beforeReload, afterReload))
                );
        }
Пример #3
0
        public void TestToStringMatchesToJson()
        {
            var newSave    = SaveDataTestImpl.NewSaveFile(MethodBase.GetCurrentMethod().Name);
            var saveJson   = newSave.ToJson();
            var saveString = newSave.ToString();

            Assert.That(saveString, Is.EqualTo(saveJson));
        }
Пример #4
0
        public void TestUseReSaveDelay()
        {
            SaveDataTestImpl saveDataTestImpl = SaveDataTestImpl.NewSaveFile(nameof(TestUseReSaveDelay));

            var message = $"{nameof(ReSaveDelayException)} when saved again within the {nameof(SaveData.ReSaveDelay)} ({SaveData.ReSaveDelay})!";

            try {
                saveDataTestImpl.Save(true);
            }
            catch (ReSaveDelayException e) {
                Assert.Pass($"Properly threw a {message}\nException: {e.Message}");
            }

            Assert.Fail($"Did NOT throw a {message}");
        }
Пример #5
0
        public IEnumerator TestLoadMostRecentSaveFile()
        {
            //save a few files
            const int    saveCount = 3;
            const string nickName  = nameof(TestLoadMostRecentSaveFile);

            //create a new save file with the desired nickname
            SaveDataTestImpl saveData = SaveDataTestImpl.NewSaveFile(nickName);

            for (int i = 0; i < saveCount; i++)
            {
                if (i != 0)
                {
                    Log($"Waiting {SaveData.ReSaveDelay} before continuing...");
                }

                //add a unique value into the save data
                saveData.Word = $"SAVE_{i}";

                //re-save the save data
                yield return(new WaitForSecondsRealtime(0.1f));

                saveData.Save(false);

                Log($"Saved {nickName} #{i}:\n{saveData}");

                AssertAll.Of(
                    //Assert that the timestamp in the filename matches the lastSaveTime
                    () => Assert.That(saveData, Has.Property(nameof(saveData.LastSaveTime_Exact)).Not.Null),
                    () => Assert.That(
                        saveData.LastSaveTime_Exact?.Ticks,
                        Is.EqualTo(SaveDataTestImpl.GetSaveDate(saveData.LatestSaveFilePath).Ticks),
                        $"Incorrect timestamp pulled from path {saveData.LatestSaveFilePath}"
                        ),
                    //load the save data and check the unique value
                    () => Assert.That(SaveDataTestImpl.Load(nickName).Word, Is.EqualTo(saveData.Word))
                    );
            }
        }
Пример #6
0
        public void LoadMostRecentFromInstance()
        {
            var saveData  = SaveDataTestImpl.NewSaveFile(nameof(LoadMostRecentFromInstance));
            var firstEdit = "First Edit";

            saveData.Word = firstEdit;
            saveData.Save(false);

            var saveData2  = SaveDataTestImpl.NewSaveFile(saveData.Nickname);
            var secondEdit = "Second Edit";

            saveData2.Word = secondEdit;
            saveData2.Save(false);

            Assert.That(saveData.Word, Is.EqualTo(firstEdit));
            Assert.That(saveData, Is.Not.SameAs(saveData2));

            var loadedSave = saveData.Reload();

            Assert.That(loadedSave, Is.SameAs(saveData));
            Assert.That(saveData.Word, Is.Not.EqualTo(firstEdit));
            Assert.That(saveData.Word, Is.EqualTo(secondEdit));
        }