using System; using Jellyfin.LiveTv.Configuration; using Jellyfin.LiveTv.Listings; using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Tasks; using Microsoft.Extensions.Logging; using Moq; using Xunit; namespace Jellyfin.LiveTv.Tests.Listings; public class ListingsManagerTests { private readonly IConfigurationManager _config; private readonly IListingsProvider[] _listingsProviders; private readonly ILogger _logger; private readonly ITaskManager _taskManager; private readonly ITunerHostManager _tunerHostManager; public ListingsManagerTests() { _logger = Mock.Of>(); _config = Mock.Of(); _taskManager = Mock.Of(); _tunerHostManager = Mock.Of(); _listingsProviders = new[] { Mock.Of() }; } [Fact] public void DeleteListingsProvider_DeletesProvider() { // Arrange var id = "MockId"; var manager = new ListingsManager(_logger, _config, _taskManager, _tunerHostManager, _listingsProviders); Mock.Get(_config) .Setup(x => x.GetConfiguration(It.IsAny())) .Returns(new LiveTvOptions { ListingProviders = [new ListingsProviderInfo { Id = id }] }); // Act manager.DeleteListingsProvider(id); // Assert Assert.DoesNotContain( _config.GetLiveTvConfiguration().ListingProviders, p => p.Id.Equals(id, StringComparison.Ordinal)); } }