using Microsoft.VisualStudio.TestTools.UnitTesting; using AgileConfig.Server.Service; using System; using System.Collections.Generic; using System.Text; using FreeSql; using AgileConfig.Server.Data.Freesql; using AgileConfig.Server.Data.Entity; using System.Threading.Tasks; using System.Linq; namespace AgileConfig.Server.Service.Tests.sqlserver { [TestClass()] public class SettingServiceTests { IFreeSql fsq = null; FreeSqlContext freeSqlContext; SettingService service = null; [TestInitialize] public void TestInitialize() { string conn = "Persist Security Info = False; User ID =dev; Password =dev@123,; Initial Catalog =agile_config_test; Server =www..com"; fsq = new FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.SqlServer, conn) .UseAutoSyncStructure(true) .Build(); FluentApi.Config(fsq); freeSqlContext = new FreeSqlContext(fsq); service = new SettingService(freeSqlContext); fsq.Delete().Where("1=1"); Console.WriteLine("TestInitialize"); } [TestCleanup] public void Clean() { freeSqlContext.Dispose(); fsq.Dispose(); } [TestMethod()] public async Task AddAsyncTest() { var id = Guid.NewGuid().ToString(); var source = new Setting(); source.Id = id; source.Value = "123"; source.CreateTime = DateTime.Now; var result = await service.AddAsync(source); Assert.IsTrue(result); var setting = fsq.Select(new { Id= id }).ToOne(); Assert.IsNotNull(setting); Assert.AreEqual(source.Id, setting.Id); Assert.AreEqual(source.Value, setting.Value); } [TestMethod()] public async Task DeleteAsyncTest() { var id = Guid.NewGuid().ToString(); var source = new Setting(); source.Id = id; source.Value = "123"; source.CreateTime = DateTime.Now; var result = await service.AddAsync(source); Assert.IsTrue(result); result = await service.DeleteAsync(source); Assert.IsTrue(result); var setting = fsq.Select(new { Id = id }).ToOne(); Assert.IsNull(setting); } [TestMethod()] public async Task DeleteAsyncTest1() { var id = Guid.NewGuid().ToString(); var source = new Setting(); source.Id = id; source.Value = "123"; source.CreateTime = DateTime.Now; var result = await service.AddAsync(source); Assert.IsTrue(result); result = await service.DeleteAsync(id); Assert.IsTrue(result); var setting = fsq.Select(new { Id = id }).ToOne(); Assert.IsNull(setting); } [TestMethod()] public async Task GetAsyncTest() { var id = Guid.NewGuid().ToString(); var source = new Setting(); source.Id = id; source.Value = "123"; source.CreateTime = DateTime.Now; var result = await service.AddAsync(source); Assert.IsTrue(result); var setting = await service.GetAsync(id); Assert.IsNotNull(setting); Assert.AreEqual(source.Id, setting.Id); Assert.AreEqual(source.Value, setting.Value); } [TestMethod()] public async Task GetAllSettingsAsyncTest() { fsq.Delete().Where("1=1").ExecuteAffrows(); var id = Guid.NewGuid().ToString(); var source = new Setting(); source.Id = id; source.Value = "123"; source.CreateTime = DateTime.Now; var result = await service.AddAsync(source); Assert.IsTrue(result); var id1 = Guid.NewGuid().ToString(); var source1 = new Setting(); source1.Id = id1; source1.Value = "123"; source1.CreateTime = DateTime.Now; var result1 = await service.AddAsync(source1); Assert.IsTrue(result1); var settings = await service.GetAllSettingsAsync(); Assert.IsNotNull(settings); Assert.AreEqual(2, settings.Count); } [TestMethod()] public async Task UpdateAsyncTest() { var id = Guid.NewGuid().ToString(); var source = new Setting(); source.Id = id; source.Value = "123"; source.CreateTime = DateTime.Now; var result = await service.AddAsync(source); Assert.IsTrue(result); source.CreateTime = DateTime.Now; source.Value = "321"; var result1 = await service.UpdateAsync(source); Assert.IsTrue(result1); var setting = await service.GetAsync(id); Assert.IsNotNull(setting); Assert.AreEqual(source.Id, setting.Id); Assert.AreEqual(source.Value, setting.Value); } [TestMethod()] public async Task SetAdminPasswordTest() { //fsq.Delete().Where("1=1").ExecuteAffrows(); //var result = await service.SetSuperAdminPassword("123456"); //Assert.IsTrue(result); //var list = fsq.Select().Where("1=1").ToList(); //Assert.IsNotNull(list); //Assert.AreEqual(2, list.Count); //var pass = list.FirstOrDefault(s => s.Id == service.SuperAdminPasswordSettingKey); //Assert.IsNotNull(pass); //var salt = list.FirstOrDefault(s => s.Id == service.AdminPasswordHashSaltKey); //Assert.IsNotNull(salt); } [TestMethod()] public async Task HasAdminPasswordTest() { //fsq.Delete().Where("1=1").ExecuteAffrows(); //var result = await service.SetSuperAdminPassword("123456"); //Assert.IsTrue(result); //var has = await service.HasSuperAdminPassword(); //Assert.IsTrue(has); //fsq.Delete().Where("1=1").ExecuteAffrows(); //has = await service.HasSuperAdminPassword(); //Assert.IsFalse(has); } [TestMethod()] public async Task ValidateAdminPasswordTest() { //fsq.Delete().Where("1=1").ExecuteAffrows(); //var result = await service.SetSuperAdminPassword("123456"); //Assert.IsTrue(result); //var v = await service.ValidateAdminPassword("123456"); //Assert.IsTrue(v); //v = await service.ValidateAdminPassword("1234561"); //Assert.IsFalse(v); } } }