public async Task Test_IndexServiceNeverDuplicatesPathMasterRecords() { var _connection = new SqliteConnection("DataSource=:memory:"); _connection.Open(); var options = new DbContextOptionsBuilder <DbCtxt>() .UseSqlite(_connection) .EnableSensitiveDataLogging(true) .Options; var dbc = new DbCtxt(options); await dbc.Database.EnsureCreatedAsync(); var r = new IndexDbRepo(dbc, _logger); var indexService = new IndexService(r); var container = new ContainerDto { ContainerNumber = new ContainerNumberDto() { Number = "bcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxz :123456789012345678901234567890 12345678901234567890 12345678901234567890123456789012bcdefghijklmnopqrst uvwxyabcdefghijklmnopqrstuvwxz:12345678901234 567890123456789012345678 901234567890123456 78901234567890123456789012" }, AssignedTo = new ContainerDto.CarrierDto { Code = "aby", Name = "name", phones = new string[] { "bcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxz:1234567890123456789012345678901234567890123456789012345678901234567890123456789012bcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxz:1234567890123456789012345678901234567890123456789012345678901234567890123456789012" } } }; var cmd = indexService.CreateUpdateCommand("0001", container); await indexService.Handle(cmd); var attchs = new List <AttachmentDto>(); attchs.Add(new AttachmentDto { Type = "invoice", DownloadUrl = "hdhjdhjhsa" }); container.Attachments = attchs.ToArray(); var cmd2 = indexService.CreateUpdateCommand("0001", container); await indexService.Handle(cmd2); attchs.Add(new AttachmentDto { Type = "invoice3", DownloadUrl = "hdhjdhjhsa3" }); container.Attachments = attchs.ToArray(); var cmd3 = indexService.CreateUpdateCommand("0001", container); await indexService.Handle(cmd3); var paths = dbc.Set <DbDocSourcePath>().Select(p => p).Where(p => p.PathString == "$.Attachments.[].DownloadUrl").ToArray(); var tokens = dbc.Set <DbDocToken>().Select(t => t).ToArray(); // load paths from database //var paths = await dbc.Set<DbDocSourcePath>().Where(p=>p.PathString == "$.Attachments.[].DownloadUrl").ToArrayAsync(); Assert.AreEqual(1, paths.Length); }
private async Task <DbContext> GetDbContext() { var options = new DbContextOptionsBuilder <DbCtxt>() .UseSqlite(_connection) .EnableSensitiveDataLogging(true) .Options; var dbc = new DbCtxt(options); await dbc.Database.EnsureCreatedAsync(); return(dbc); }