public void TestHardDeleteViaKeysWithUserIdOk() { //SETUP var currentUser = Guid.NewGuid(); int orderId; var options = SqliteInMemory.CreateOptions <SingleSoftDelDbContext>(); options.StopNextDispose(); using (var context = new SingleSoftDelDbContext(options, currentUser)) { context.Database.EnsureCreated(); var order1 = new Order { OrderRef = "Cur user Order, soft del", SoftDeleted = true, UserId = currentUser }; var order2 = new Order { OrderRef = "Cur user Order", SoftDeleted = false, UserId = currentUser }; var order3 = new Order { OrderRef = "Diff user Order", SoftDeleted = true, UserId = Guid.NewGuid() }; var order4 = new Order { OrderRef = "Diff user Order", SoftDeleted = false, UserId = Guid.NewGuid() }; context.AddRange(order1, order2, order3, order4); context.SaveChanges(); orderId = order1.Id; } using (var context = new SingleSoftDelDbContext(options, currentUser)) { var config = new ConfigSoftDeleteWithUserId(context); var service = new SingleSoftDeleteService <ISingleSoftDelete>(config); //ATTEMPT var status = service.ResetSoftDeleteViaKeys <Order>(orderId); //VERIFY status.IsValid.ShouldBeTrue(status.GetAllErrors()); status.Result.ShouldEqual(1); context.ChangeTracker.Clear(); context.Orders.IgnoreQueryFilters().Count().ShouldEqual(4); context.Orders.Count().ShouldEqual(2); } }
public void TestSoftDeleteServiceGetSoftDeletedEntriesWithUserIdOk() { //SETUP var currentUser = Guid.NewGuid(); var options = SqliteInMemory.CreateOptions <SingleSoftDelDbContext>(); using (var context = new SingleSoftDelDbContext(options, currentUser)) { context.Database.EnsureCreated(); var order1 = new Order { OrderRef = "Cur user Order, soft del", SoftDeleted = true, UserId = currentUser }; var order2 = new Order { OrderRef = "Cur user Order", SoftDeleted = false, UserId = currentUser }; var order3 = new Order { OrderRef = "Diff user Order", SoftDeleted = true, UserId = Guid.NewGuid() }; var order4 = new Order { OrderRef = "Diff user Order", SoftDeleted = false, UserId = Guid.NewGuid() }; context.AddRange(order1, order2, order3, order4); context.SaveChanges(); context.ChangeTracker.Clear(); var config = new ConfigSoftDeleteWithUserId(context); var service = new SingleSoftDeleteService <ISingleSoftDelete>(config); //ATTEMPT var orders = service.GetSoftDeletedEntries <Order>().ToList(); //VERIFY orders.Count.ShouldEqual(1); context.ChangeTracker.Clear(); orders.Single(x => x.UserId == currentUser).OrderRef.ShouldEqual("Cur user Order, soft del"); context.Orders.IgnoreQueryFilters().Count().ShouldEqual(4); var all = context.Orders.IgnoreQueryFilters().ToList(); context.Orders.Count().ShouldEqual(1); } }
public void TestHardDeleteViaKeysWithWrongUserIdBad() { //SETUP var currentUser = Guid.NewGuid(); int bookId; var options = SqliteInMemory.CreateOptions <SingleSoftDelDbContext>(); using (var context = new SingleSoftDelDbContext(options)) { context.Database.EnsureCreated(); var order1 = new Order { OrderRef = "Cur user Order, soft del", SoftDeleted = true, UserId = currentUser }; var order2 = new Order { OrderRef = "Cur user Order", SoftDeleted = false, UserId = currentUser }; var order3 = new Order { OrderRef = "Diff user Order", SoftDeleted = true, UserId = Guid.NewGuid() }; var order4 = new Order { OrderRef = "Diff user Order", SoftDeleted = false, UserId = Guid.NewGuid() }; context.AddRange(order1, order2, order3, order4); context.SaveChanges(); bookId = order3.Id; } using (var context = new SingleSoftDelDbContext(options, currentUser)) { var config = new ConfigSoftDeleteWithUserId(context); var service = new SingleSoftDeleteService <ISingleSoftDelete>(context, config); //ATTEMPT var status = service.ResetSoftDeleteViaKeys <Order>(bookId); //VERIFY status.IsValid.ShouldBeFalse(); status.GetAllErrors().ShouldEqual("Could not find the entry you ask for."); context.Orders.IgnoreQueryFilters().Count().ShouldEqual(4); context.Orders.Count().ShouldEqual(1); } }
public void TestExpressionBuilderFormOtherFiltersOnlyWithUserIdOk() { //SETUP var currentUser = Guid.NewGuid(); var options = SqliteInMemory.CreateOptions <SingleSoftDelDbContext>(); using (var context = new SingleSoftDelDbContext(options, currentUser)) { context.Database.EnsureCreated(); var order1 = new Order { OrderRef = "Cur user Order, soft del", SoftDeleted = true, UserId = currentUser }; var order2 = new Order { OrderRef = "Cur user Order", SoftDeleted = false, UserId = currentUser }; var order3 = new Order { OrderRef = "Diff user Order", SoftDeleted = true, UserId = Guid.NewGuid() }; context.AddRange(order1, order2, order3); context.SaveChanges(); var config = new ConfigSoftDeleteWithUserId(context); //ATTEMPT var query = context.Orders.IgnoreQueryFilters().Where( config.FilterToGetValueSingleSoftDeletedEntities <Order, ISingleSoftDelete>()) .Select(x => x.OrderRef); var result = query.ToList(); //VERIFY _output.WriteLine(query.ToQueryString()); result.Count.ShouldEqual(1); } }