Publish from private repository

This commit is contained in:
Gitea Actions
2026-08-01 11:58:54 +00:00
commit 39698fed40
695 changed files with 69563 additions and 0 deletions
@@ -0,0 +1,54 @@
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using MyOffice.DbContext;
namespace MyOffice.Tests.Data;
public class DemoDataSeederTests
{
[Fact]
public async Task SeedIfEmpty_creates_demo_users_catalog_and_motions()
{
var path = Path.Combine(Path.GetTempPath(), $"myoffice-seed-{Guid.NewGuid():N}.db");
var connection = new ConnectionConfiguration("sqlite", $"Data Source={path}");
var options = new DbContextOptionsBuilder<AppDbContext>();
DbContextServiceCollectionExtensions.ConfigureDbContextOptions(options, connection);
await using (var db = new AppDbContext(AppDbContextProvidersEnum.sqlite, options.Options))
{
await DatabaseBootstrapper.InitializeAsync(db);
Assert.Equal(3, await db.Users.CountAsync());
Assert.Equal(9, await db.Currencies.CountAsync());
Assert.Equal(9, await db.CurrencyRates.CountAsync());
Assert.Equal(9, await db.AccountCategories.CountAsync());
Assert.Equal(27, await db.Accounts.CountAsync());
Assert.Equal(300, await db.Motions.CountAsync());
var uahUser = await db.Users.SingleAsync(x => x.Email == "user_UAH@user_UAH.userUAH");
Assert.Equal("UAH", uahUser.CurrencyId);
var uahRates = await db.CurrencyRates
.Include(x => x.Currency)
.Where(x => x.Currency!.UserId == uahUser.Id)
.ToListAsync();
Assert.Equal(1m, uahRates.Single(x => x.Currency!.CurrencyGlobalId == "UAH").Rate);
Assert.Equal(42m, uahRates.Single(x => x.Currency!.CurrencyGlobalId == "USD").Rate);
Assert.Equal(50m, uahRates.Single(x => x.Currency!.CurrencyGlobalId == "EUR").Rate);
Assert.Contains(await db.AccountCategories.Where(x => x.UserId == uahUser.Id).Select(x => x.Name).ToListAsync(),
x => x == "Готівка");
Assert.Contains(await db.ItemCategories.Where(x => x.UserId == uahUser.Id).Select(x => x.Name).ToListAsync(),
x => x == "Доходи");
await DemoDataSeeder.SeedIfEmptyAsync(db);
Assert.Equal(3, await db.Users.CountAsync());
}
SqliteConnection.ClearAllPools();
if (File.Exists(path))
{
File.Delete(path);
}
}
}