using FluentAssertions; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging.Abstractions; using Moq; using SatelliteProvider.Common.DTO; using SatelliteProvider.Common.Interfaces; using SatelliteProvider.DataAccess.Models; using SatelliteProvider.DataAccess.Repositories; using SatelliteProvider.Services.TileDownloader; using SatelliteProvider.Tests.Fixtures; namespace SatelliteProvider.Tests; public class InfrastructureTests { [Fact] public void AllMockableInterfaces_CanBeMocked() { // Arrange + Act var downloader = new Mock(); var tileRepo = new Mock(); var regionRepo = new Mock(); var routeRepo = new Mock(); var queue = new Mock(); var tileService = new Mock(); var regionService = new Mock(); var routeService = new Mock(); // Assert downloader.Object.Should().NotBeNull(); tileRepo.Object.Should().NotBeNull(); regionRepo.Object.Should().NotBeNull(); routeRepo.Object.Should().NotBeNull(); queue.Object.Should().NotBeNull(); tileService.Object.Should().NotBeNull(); regionService.Object.Should().NotBeNull(); routeService.Object.Should().NotBeNull(); } [Fact] public void TestCoordinates_TileCenter_MatchesPrimaryTilePoint() { // Assert TestCoordinates.TileCenter.Lat.Should().Be(47.461747); TestCoordinates.TileCenter.Lon.Should().Be(37.647063); TestCoordinates.DefaultZoom.Should().Be(18); } [Fact] public void TestCoordinates_RoutePoints_HaveExpectedCounts() { // Assert TestCoordinates.Route.Route01Points.Should().HaveCount(2); TestCoordinates.Route.Route04Points.Should().HaveCount(10); TestCoordinates.Route.Route06Points.Should().HaveCount(20); } [Fact] public void TileService_ConstructsWithMockedDependencies() { // Arrange var downloader = new Mock().Object; var tileRepo = new Mock().Object; var cache = new MemoryCache(new MemoryCacheOptions()); var logger = NullLogger.Instance; // Act var service = new TileService(downloader, tileRepo, cache, logger); // Assert service.Should().NotBeNull(); } }