summaryrefslogblamecommitdiff
path: root/Tests/UnitTest1.cs
blob: 3e4dc643b4b4644baaad7b768b77fe1f01c7cb4b (plain) (tree)



















































                                                                                 
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using WikiWaka.Api.Controllers;
using WikiWaka.Api.Models;

namespace Tests;

[TestClass]
public class UnitTest1
{
    private ContentApiController controller;
    private DbWikiWakaContext dbContext;

    [TestInitialize]
    public async Task TestInit()
    {
        SqliteConnection connection = new SqliteConnection("Filename=:memory:");
        connection.Open();

        var _contextOptions = new DbContextOptionsBuilder<DbWikiWakaContext>()
            .UseSqlite(connection)
            .Options;

        dbContext = new(_contextOptions);
        await dbContext.Database.EnsureCreatedAsync();
        await DbInit.InitializeLanguages(dbContext);
        controller = new(dbContext);
    }

    [TestCleanup]
    public async Task TestClean()
    {
        await dbContext.Database.EnsureDeletedAsync();
        await dbContext.DisposeAsync();
    }

    [TestMethod]
    public async Task TestMethod1()
    {
        WikiWaka.Api.Contract.NewContent parameter = new()
        {
            Text = "Hello, world",
            LanguageCode = "en-US",
        };
        Content newContent = await controller.PostContents(parameter);
        IAsyncEnumerable<Content> contents = controller.GetContents();
        Content newGetContent = contents.ToBlockingEnumerable().Single();

        Assert.AreEqual(parameter.Text, newContent.Properties.Single().Text);
        Assert.AreEqual(parameter.Text, newGetContent.Properties.Single().Text);
    }
}