예제 #1
0
        /// <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();
                }
            }
        }
예제 #2
0
 /// <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);
     }
 }