mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-03 19:17:16 -05:00 
			
		
		
		
	Testing the provider composite
This commit is contained in:
		
							parent
							
								
									d8da21ddec
								
							
						
					
					
						commit
						7e3f6763da
					
				
							
								
								
									
										115
									
								
								Kyoo.Tests/Identifier/ProviderTests.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								Kyoo.Tests/Identifier/ProviderTests.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,115 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Kyoo.Controllers;
 | 
				
			||||||
 | 
					using Kyoo.Models;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Logging;
 | 
				
			||||||
 | 
					using Moq;
 | 
				
			||||||
 | 
					using Xunit;
 | 
				
			||||||
 | 
					using Xunit.Abstractions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Kyoo.Tests.Identifier
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public class ProviderTests
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							private readonly ILoggerFactory _factory;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							public ProviderTests(ITestOutputHelper output)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								_factory = LoggerFactory.Create(x =>
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									x.ClearProviders();
 | 
				
			||||||
 | 
									x.AddXunit(output);
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							[Fact]
 | 
				
			||||||
 | 
							public async Task NoProviderGetTest()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AProviderComposite provider = new ProviderComposite(Array.Empty<IMetadataProvider>(),
 | 
				
			||||||
 | 
									_factory.CreateLogger<ProviderComposite>());
 | 
				
			||||||
 | 
								Show show = new()
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									ID = 4,
 | 
				
			||||||
 | 
									Genres = new[] { new Genre("genre") }
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								Show ret = await provider.Get(show);
 | 
				
			||||||
 | 
								KAssert.DeepEqual(show, ret);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							[Fact]
 | 
				
			||||||
 | 
							public async Task NoProviderSearchTest()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AProviderComposite provider = new ProviderComposite(Array.Empty<IMetadataProvider>(),
 | 
				
			||||||
 | 
									_factory.CreateLogger<ProviderComposite>());
 | 
				
			||||||
 | 
								ICollection<Show> ret = await provider.Search<Show>("show");
 | 
				
			||||||
 | 
								Assert.Empty(ret);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							[Fact]
 | 
				
			||||||
 | 
							public async Task OneProviderGetTest()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								Show show = new()
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									ID = 4,
 | 
				
			||||||
 | 
									Genres = new[] { new Genre("genre") }
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								Mock<IMetadataProvider> mock = new();
 | 
				
			||||||
 | 
								mock.Setup(x => x.Get(show)).ReturnsAsync(new Show
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Title = "title",
 | 
				
			||||||
 | 
									Genres = new[] { new Genre("ToMerge")}
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								AProviderComposite provider = new ProviderComposite(new []
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										mock.Object
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									_factory.CreateLogger<ProviderComposite>());
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								Show ret = await provider.Get(show);
 | 
				
			||||||
 | 
								Assert.Equal(4, ret.ID);
 | 
				
			||||||
 | 
								Assert.Equal("title", ret.Title);
 | 
				
			||||||
 | 
								Assert.Equal(2, ret.Genres.Count);
 | 
				
			||||||
 | 
								Assert.Contains("genre", ret.Genres.Select(x => x.Slug));
 | 
				
			||||||
 | 
								Assert.Contains("tomerge", ret.Genres.Select(x => x.Slug));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							[Fact]
 | 
				
			||||||
 | 
							public async Task TwoProviderGetTest()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								Show show = new()
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									ID = 4,
 | 
				
			||||||
 | 
									Genres = new[] { new Genre("genre") }
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
								Mock<IMetadataProvider> mock = new();
 | 
				
			||||||
 | 
								mock.Setup(x => x.Get(show)).ReturnsAsync(new Show
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Title = "title",
 | 
				
			||||||
 | 
									Genres = new[] { new Genre("ToMerge")}
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								Mock<IMetadataProvider> mockTwo = new();
 | 
				
			||||||
 | 
								mockTwo.Setup(x => x.Get(show)).ReturnsAsync(new Show
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Title = "title2",
 | 
				
			||||||
 | 
									Status = Status.Finished,
 | 
				
			||||||
 | 
									Genres = new[] { new Genre("ToMerge")}
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								AProviderComposite provider = new ProviderComposite(new []
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										mock.Object,
 | 
				
			||||||
 | 
										mockTwo.Object
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									_factory.CreateLogger<ProviderComposite>());
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								Show ret = await provider.Get(show);
 | 
				
			||||||
 | 
								Assert.Equal(4, ret.ID);
 | 
				
			||||||
 | 
								Assert.Equal("title", ret.Title);
 | 
				
			||||||
 | 
								Assert.Equal(Status.Finished, ret.Status);
 | 
				
			||||||
 | 
								Assert.Equal(2, ret.Genres.Count);
 | 
				
			||||||
 | 
								Assert.Contains("genre", ret.Genres.Select(x => x.Slug));
 | 
				
			||||||
 | 
								Assert.Contains("tomerge", ret.Genres.Select(x => x.Slug));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user