using GameAuthApi.Controllers; using GameAuthApi.Services; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Threading.Tasks; using GameAuthApi.Models; public class AdminControllerTests { [Fact] public async Task GetStatus_ReturnsOk() { var expected = new Dictionary { { "status", "ok" } }; var mockService = new Mock((LocationService)null, (ItemService)null, (PlayerService)null); mockService.Setup(s => s.GetStatusAsync()).ReturnsAsync(expected); var controller = new AdminController(mockService.Object); var result = await controller.GetStatus(); var ok = Assert.IsType(result); Assert.Equal(expected, ok.Value); } [Fact] public async Task ResetLocations_ReturnsOk() { var newLoc = new Location { LocationType = "World", X = 0, Y = 0, Z = 0 }; var mockService = new Mock((LocationService)null, (ItemService)null, (PlayerService)null); mockService.Setup(s => s.ResetLocationsAsync()).ReturnsAsync(newLoc); var controller = new AdminController(mockService.Object); var result = await controller.ResetLocations(); var ok = Assert.IsType(result); var origin = Assert.IsType(ok.Value); Assert.Equal("World", origin.LocationType); Assert.Equal(0, origin.X); Assert.Equal(0, origin.Y); Assert.Equal(0, origin.Z); } [Fact] public async Task ClearItems_ReturnsOk() { var mockService = new Mock((LocationService)null, (ItemService)null, (PlayerService)null); mockService.Setup(s => s.ClearItemsAsync()).Returns(Task.CompletedTask).Verifiable(); var controller = new AdminController(mockService.Object); var result = await controller.ClearItems(); var ok = Assert.IsType(result); Assert.Equal("All items cleared.", ok.Value); mockService.Verify(); } }