using GameAuthApi.Controllers; using GameAuthApi.Models; using GameAuthApi.Services; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; public class LocationControllerTests { private static IConfiguration config = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary { {"MongoDB:ConnectionString","mongodb://localhost"}, {"MongoDB:DatabaseName","test"} }).Build(); [Fact] public async Task Create_ReturnsOk() { var mockLoc = new Mock(config); mockLoc.Setup(l => l.CreateAsync(It.IsAny())).Returns(Task.CompletedTask).Verifiable(); var controller = new LocationController(mockLoc.Object, new Mock(config).Object); var result = await controller.Create(new CreateLocationRequest { X = 1, Y = 2, Z = 3 }); Assert.IsType(result); mockLoc.Verify(); } [Fact] public async Task CreateInventory_ReturnsOk() { var mockLoc = new Mock(config); mockLoc.Setup(l => l.CreateAsync(It.IsAny())).Returns(Task.CompletedTask).Verifiable(); var controller = new LocationController(mockLoc.Object, new Mock(config).Object); var result = await controller.CreateInventory(); Assert.IsType(result); mockLoc.Verify(); } [Fact] public async Task GetById_NotFound() { var mockLoc = new Mock(config); mockLoc.Setup(l => l.GetByIdAsync("id")).ReturnsAsync((Location?)null); var controller = new LocationController(mockLoc.Object, new Mock(config).Object); var result = await controller.GetById("id"); Assert.IsType(result); } [Fact] public async Task Update_NotFound() { var svc = new Mock(config); svc.Setup(l => l.GetByIdAsync("id")).ReturnsAsync((Location?)null); var controller = new LocationController(svc.Object, new Mock(config).Object); var result = await controller.Update("id", new UpdateLocationRequest()); Assert.IsType(result); } }