using System.Collections.Generic; using System.Linq; using Luticate2.Utils.Dbo.Result; using Luticate2.Utils.Utils; using TestUtils.DataAccess; using TestUtils.Dbo.PkBigSerial; using TestUtils.Dbo.PkGuid; using Xunit; namespace TestUtils.EfCrudDataAccess { public class LuEfDeleteDataAccessTest { [Fact] public void TestDeleteMultiple1() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var edit = service.Delete(guid => guid.some_int == 42, enumerable => enumerable); Assert.Equal(LuStatus.Success, edit.Status); var elements = edit.Data.ToList(); Assert.Equal(2, elements.Count); var e = elements[0]; Assert.Equal(42, e.SomeInt); Assert.Equal("442", e.SomeText); e = elements[1]; Assert.Equal(42, e.SomeInt); Assert.Equal("42", e.SomeText); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(1, get.Data.Count); Assert.Equal(1, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); }); } [Fact] public void TestDeleteMultiple2() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var edit = service.Delete(guid => guid.some_int == 42, enumerable => enumerable.Select(guidDbo => guidDbo.Id)); Assert.Equal(LuStatus.Success, edit.Status); var elements = edit.Data.ToList(); Assert.Equal(2, elements.Count); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(1, get.Data.Count); Assert.Equal(1, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); }); } [Fact] public void TestDeleteMultiple3() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var edit = service.DeleteId(guid => guid.some_int == 42); Assert.Equal(LuStatus.Success, edit.Status); var elements = edit.Data.ToList(); Assert.Equal(2, elements.Count); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(1, get.Data.Count); Assert.Equal(1, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); }); } [Fact] public void TestDeleteMultiple4() { Tests.TestRealDb(service => { var dbos = new List { new PkBigSerialAddDbo { SomeInt = 42, SomeText = "442" }, new PkBigSerialAddDbo { SomeInt = 42, SomeText = "42" }, new PkBigSerialAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var edit = service.DeleteId(guid => guid.some_int == 42); Assert.Equal(LuStatus.Success, edit.Status); var elements = edit.Data.ToList(); Assert.Equal(2, elements.Count); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(1, get.Data.Count); Assert.Equal(1, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); }); } [Fact] public void TestDeleteMultiple5() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var edit = service.DeleteDbo(guid => guid.some_int == 42); Assert.Equal(LuStatus.Success, edit.Status); var elements = edit.Data.ToList(); Assert.Equal(2, elements.Count); var e = elements[0]; Assert.Equal(42, e.SomeInt); Assert.Equal("442", e.SomeText); e = elements[1]; Assert.Equal(42, e.SomeInt); Assert.Equal("42", e.SomeText); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(1, get.Data.Count); Assert.Equal(1, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); }); } [Fact] public void TestDeleteSingle1() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var ids = res.Data.ToList(); var edit = service.DeleteSingleById(ids[0], guidDbo => guidDbo); Assert.Equal(LuStatus.Success, edit.Status); Assert.Equal(42, edit.Data.SomeInt); Assert.Equal("442", edit.Data.SomeText); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(2, get.Data.Count); Assert.Equal(2, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); dbo = get.Data.Data[1]; Assert.Equal(42, dbo.SomeInt); Assert.Equal("42", dbo.SomeText); }); } [Fact] public void TestDeleteSingle2() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var ids = res.Data.ToList(); var edit = service.DeleteSingleByIdId(ids[0]); Assert.Equal(LuStatus.Success, edit.Status); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(2, get.Data.Count); Assert.Equal(2, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); dbo = get.Data.Data[1]; Assert.Equal(42, dbo.SomeInt); Assert.Equal("42", dbo.SomeText); }); } [Fact] public void TestDeleteSingle3() { Tests.TestRealDb(service => { var dbos = new List { new PkGuidAddDbo { SomeInt = 42, SomeText = "442" }, new PkGuidAddDbo { SomeInt = 42, SomeText = "42" }, new PkGuidAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var ids = res.Data.ToList(); var edit = service.DeleteSingleByIdDbo(ids[0]); Assert.Equal(LuStatus.Success, edit.Status); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(2, get.Data.Count); Assert.Equal(2, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); dbo = get.Data.Data[1]; Assert.Equal(42, dbo.SomeInt); Assert.Equal("42", dbo.SomeText); }); } [Fact] public void TestDeleteSingle4() { Tests.TestRealDb(service => { var dbos = new List { new PkBigSerialAddDbo { SomeInt = 42, SomeText = "442" }, new PkBigSerialAddDbo { SomeInt = 42, SomeText = "42" }, new PkBigSerialAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var ids = res.Data.ToList(); var edit = service.DeleteSingleById(ids[0], guidDbo => guidDbo); Assert.Equal(LuStatus.Success, edit.Status); Assert.Equal(42, edit.Data.SomeInt); Assert.Equal("442", edit.Data.SomeText); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(2, get.Data.Count); Assert.Equal(2, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); dbo = get.Data.Data[1]; Assert.Equal(42, dbo.SomeInt); Assert.Equal("42", dbo.SomeText); }); } [Fact] public void TestDeleteSingle5() { Tests.TestRealDb(service => { var dbos = new List { new PkBigSerialAddDbo { SomeInt = 42, SomeText = "442" }, new PkBigSerialAddDbo { SomeInt = 42, SomeText = "42" }, new PkBigSerialAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var ids = res.Data.ToList(); var edit = service.DeleteSingleByIdId(ids[0]); Assert.Equal(LuStatus.Success, edit.Status); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(2, get.Data.Count); Assert.Equal(2, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); dbo = get.Data.Data[1]; Assert.Equal(42, dbo.SomeInt); Assert.Equal("42", dbo.SomeText); }); } [Fact] public void TestDeleteSingle6() { Tests.TestRealDb(service => { var dbos = new List { new PkBigSerialAddDbo { SomeInt = 42, SomeText = "442" }, new PkBigSerialAddDbo { SomeInt = 42, SomeText = "42" }, new PkBigSerialAddDbo { SomeInt = 24, SomeText = "24" } }; var res = service.AddId(dbos); Assert.Equal(LuStatus.Success, res.Status); var ids = res.Data.ToList(); var edit = service.DeleteSingleByIdDbo(ids[0]); Assert.Equal(LuStatus.Success, edit.Status); var get = service.GetMultiple(guid => guid.some_text); Assert.Equal(LuStatus.Success, get.Status); Assert.Equal(2, get.Data.Count); Assert.Equal(2, get.Data.Data.Count); var dbo = get.Data.Data[0]; Assert.Equal(24, dbo.SomeInt); Assert.Equal("24", dbo.SomeText); dbo = get.Data.Data[1]; Assert.Equal(42, dbo.SomeInt); Assert.Equal("42", dbo.SomeText); }); } } }