Files
jobtrackingapp/JobTrackerApi.Tests/GmailControllerTests.cs
T

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();
}
}