/// <summary> /// Executes a test with persistence /// </summary> /// <typeparam name="T">The type of the thing that should be persisted</typeparam> /// <param name="load">The load action</param> /// <param name="test">The test action</param> /// <param name="persist">The persist action</param> /// <param name="reload">The reload action</param> /// <param name="reTest">The retest action</param> /// <param name="clean">The clean action</param> public static void ExecuteTestWithPersistence <T>(Load <T> load, Test <T> test, Persist <T> persist, Reload <T> reload, Retest <T> reTest, Clean clean) { try { var sw = Stopwatch.StartNew(); var reference = load(); sw.Stop(); Debug.WriteLine(String.Format("LOAD: {0}ms", sw.Elapsed.TotalMilliseconds)); sw.Restart(); test(reference); sw.Stop(); Debug.WriteLine(String.Format("TEST: {0}ms", sw.Elapsed.TotalMilliseconds)); sw.Restart(); persist(reference); sw.Stop(); Debug.WriteLine(String.Format("PERSIST: {0}ms", sw.Elapsed.TotalMilliseconds)); Thread.Sleep(1000); sw.Restart(); var reloadedElement = reload(); sw.Stop(); Debug.WriteLine(String.Format("RELOAD: {0}ms", sw.Elapsed.TotalMilliseconds)); sw.Restart(); reTest(reference, reloadedElement); sw.Stop(); Debug.WriteLine(String.Format("RETEST: {0}ms", sw.Elapsed.TotalMilliseconds)); } finally { if (clean != null) { clean(); } } }
/// <summary> /// Executes a test with persistence /// </summary> /// <typeparam name="T">The type of the thing that should be persisted</typeparam> /// <param name="load">The load action</param> /// <param name="test">The test action</param> /// <param name="persist">The persist action</param> /// <param name="reload">The reload action</param> /// <param name="saveGameName">The savegame filename</param> public static void ExecuteTestWithPersistence <T>(Load <T> load, Test <T> test, Persist <T> persist, Reload <T> reload, Retest <T> reTest, String saveGameName) { try { Cleanup(saveGameName); ExecuteTestWithPersistence(load, test, persist, reload, reTest, () => { }); Thread.Sleep(1000); } finally { Cleanup(saveGameName); } }