using Microsoft.Extensions.Configuration; using Newsbot.Collector.Database.Repositories; using Newsbot.Collector.Domain.Models; namespace Newsbot.Collector.Tests.Tables; public class ArticlesTableTests { private IConfiguration GetConfiguration() { var inMemorySettings = new Dictionary { {"ConnectionStrings:database", "Host=localhost;Username=postgres;Password=postgres;Database=postgres;sslmode=disable"} }; IConfiguration configuration = new ConfigurationBuilder() .AddInMemoryCollection(inMemorySettings) .Build(); return configuration; } [Fact] public void ArticlesListTest() { var cfg = GetConfiguration(); var client = new ArticlesTable(cfg); client.List(); } [Fact] public void GetByIDTest() { var uid = Guid.Parse("4ac46772-253c-4c3d-8a2c-29239abd2ad4"); var cfg = GetConfiguration(); var client = new ArticlesTable(cfg); var res = client.GetById(uid); if (!res.ID.Equals(uid)) { Assert.Fail("Incorrect record or not found"); } } [Fact] public void NewRecordTest() { var cfg = GetConfiguration(); var client = new ArticlesTable(cfg); var m = new ArticlesModel { ID = Guid.NewGuid(), SourceID = Guid.NewGuid(), Tags = "thing, thing2", Title = "Unit Testing!", URL = "https://google.com", PubDate = DateTime.Now.ToLocalTime(), }; client.New(m); } }