42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
using JobTrackerApi.Controllers;
|
|
using JobTrackerApi.Models;
|
|
using JobTrackerApi.Services;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Moq;
|
|
using Xunit;
|
|
|
|
namespace JobTrackerApi.Tests;
|
|
|
|
public sealed class GmailControllerTests
|
|
{
|
|
[Fact]
|
|
public async Task Import_thread_rejects_missing_message_ids()
|
|
{
|
|
var controller = new GmailController(Mock.Of<IGmailOAuthService>(), null!, BuildConfig())
|
|
{
|
|
ControllerContext = new Microsoft.AspNetCore.Mvc.ControllerContext
|
|
{
|
|
HttpContext = new Microsoft.AspNetCore.Http.DefaultHttpContext
|
|
{
|
|
User = new System.Security.Claims.ClaimsPrincipal(new System.Security.Claims.ClaimsIdentity(new[]
|
|
{
|
|
new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.NameIdentifier, "user-1")
|
|
}, "test"))
|
|
}
|
|
}
|
|
};
|
|
|
|
var result = await controller.ImportThread(new GmailController.ImportGmailThreadRequest(1, "thread-1", Array.Empty<string>()), CancellationToken.None);
|
|
|
|
var badRequest = Assert.IsType<BadRequestObjectResult>(result.Result);
|
|
Assert.Equal("At least one messageId is required.", badRequest.Value);
|
|
}
|
|
|
|
private static Microsoft.Extensions.Configuration.IConfiguration BuildConfig()
|
|
{
|
|
return new Microsoft.Extensions.Configuration.ConfigurationBuilder()
|
|
.AddInMemoryCollection(new Dictionary<string, string?>())
|
|
.Build();
|
|
}
|
|
}
|