|
| 1 | +using System; |
| 2 | +using System.Collections.Generic; |
| 3 | +using System.Linq; |
| 4 | +using System.Text; |
| 5 | +using System.Threading.Tasks; |
| 6 | +using Microsoft.EntityFrameworkCore; |
| 7 | +using Microsoft.Extensions.DependencyInjection; |
| 8 | +using ScenarioTests; |
| 9 | +using Xunit; |
| 10 | + |
| 11 | +namespace EntityFrameworkCore.Triggered.IntegrationTests.EntityBags |
| 12 | +{ |
| 13 | + public partial class EntityBagsTestScenario |
| 14 | + { |
| 15 | + [Scenario(NamingPolicy = ScenarioTestMethodNamingPolicy.Test)] |
| 16 | + public void PlayScenario(ScenarioContext scenario) |
| 17 | + { |
| 18 | + using var dbcontext = new ApplicationDbContext( |
| 19 | + new DbContextOptionsBuilder() |
| 20 | + .UseInMemoryDatabase(scenario.TargetName) |
| 21 | + .UseTriggers(triggerOptions => { |
| 22 | + triggerOptions.AddTrigger<Triggers.StampModifiedOnTrigger>(); |
| 23 | + triggerOptions.AddTrigger<Triggers.SoftDeleteTrigger>(); |
| 24 | + }) |
| 25 | + .Options |
| 26 | + ); |
| 27 | + |
| 28 | + var user = new User(); |
| 29 | + dbcontext.Users.Add(user); |
| 30 | + dbcontext.SaveChanges(); |
| 31 | + |
| 32 | + scenario.Fact("ModifiedOn is null", () => Assert.Null(user.ModifiedOn)); |
| 33 | + scenario.Fact("DeletedOn is null", () => Assert.Null(user.DeletedOn)); |
| 34 | + |
| 35 | + dbcontext.Remove(user); |
| 36 | + dbcontext.SaveChanges(); |
| 37 | + |
| 38 | + scenario.Fact("ModifiedOn is null after removal", () => Assert.Null(user.ModifiedOn)); |
| 39 | + scenario.Fact("DeletedOn is not null after removal", () => Assert.NotNull(user.DeletedOn)); |
| 40 | + |
| 41 | + user.Name = "Jon"; |
| 42 | + dbcontext.SaveChanges(); |
| 43 | + |
| 44 | + scenario.Fact("ModifiedOn is not null after update", () => Assert.NotNull(user.ModifiedOn)); |
| 45 | + } |
| 46 | + } |
| 47 | +} |
0 commit comments