[fix]GetNext
大石头 编写于 2024-06-25 16:49:36
X
using System.IO;
using NewLife.Security;
using XCode;
using XCode.Membership;
using Xunit;

namespace XUnitTest.XCode.DataAccessLayer
{
    public class DAL_Backup_Tests
    {
        [Fact]
        public void BackupTest()
        {
            var n = User.Meta.Count;
            var dal = User.Meta.Session.Dal;
            var table = User.Meta.Table.DataTable;

            dal.Backup(table, $"data/{table.Name}.table");
            dal.Backup(table, $"data/{table.Name}.gz");
        }

        [Fact]
        public void BackupAllTest()
        {
            var n = User.Meta.Count;
            var dal = User.Meta.Session.Dal;
            var tables = EntityFactory.GetTables(dal.ConnName, false);

            var f = $"data/{dal.ConnName}.zip".GetFullPath();
            if (File.Exists(f)) File.Delete(f);

            dal.BackupAll(tables, $"data/{dal.ConnName}.zip");
        }

        [Fact]
        public void RestoreAllTest()
        {
            try
            {
                var dal = User.Meta.Session.Dal;

                // 随机连接名,得到SQLite连接字符串,实行导入
                User.Meta.ConnName = Rand.NextString(8);

                var dal2 = User.Meta.Session.Dal;

                var rs = dal2.RestoreAll($"data/{dal.ConnName}.zip", null, true, false);
                Assert.NotNull(rs);
            }
            finally
            {
                User.Meta.ConnName = null;
            }
        }
    }
}