mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-30 18:22:48 -04:00 
			
		
		
		
	Merge pull request #12251 from honestlywhoknows/premieredatecompare-unittests
Add unit tests for PremiereDateComparer
This commit is contained in:
		
						commit
						2fb5984869
					
				| @ -184,6 +184,7 @@ | |||||||
|  - [GeorgeH005](https://github.com/GeorgeH005) |  - [GeorgeH005](https://github.com/GeorgeH005) | ||||||
|  - [Vedant](https://github.com/viktory36/) |  - [Vedant](https://github.com/viktory36/) | ||||||
|  - [NotSaifA](https://github.com/NotSaifA) |  - [NotSaifA](https://github.com/NotSaifA) | ||||||
|  |  - [HonestlyWhoKnows](https://github.com/honestlywhoknows) | ||||||
| 
 | 
 | ||||||
| # Emby Contributors | # Emby Contributors | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -0,0 +1,76 @@ | |||||||
|  | using System; | ||||||
|  | using Emby.Server.Implementations.Sorting; | ||||||
|  | using MediaBrowser.Controller.Entities; | ||||||
|  | using MediaBrowser.Controller.Entities.Movies; | ||||||
|  | using Xunit; | ||||||
|  | 
 | ||||||
|  | namespace Jellyfin.Server.Implementations.Tests.Sorting | ||||||
|  | { | ||||||
|  |     public class PremiereDateComparerTests | ||||||
|  |     { | ||||||
|  |         private readonly PremiereDateComparer _cmp = new PremiereDateComparer(); | ||||||
|  | 
 | ||||||
|  |         [Theory] | ||||||
|  |         [ClassData(typeof(PremiereDateTestData))] | ||||||
|  |         public void PremiereDateCompareTest(BaseItem x, BaseItem y, int expected) | ||||||
|  |         { | ||||||
|  |             Assert.Equal(expected, _cmp.Compare(x, y)); | ||||||
|  |             Assert.Equal(-expected, _cmp.Compare(y, x)); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private sealed class PremiereDateTestData : TheoryData<BaseItem, BaseItem, int> | ||||||
|  |         { | ||||||
|  |             public PremiereDateTestData() | ||||||
|  |             { | ||||||
|  |                 // Happy case - Both have premier date | ||||||
|  |                 // Expected: x listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2018, 1, 1) }, | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2018, 1, 3) }, | ||||||
|  |                     -1); | ||||||
|  | 
 | ||||||
|  |                 // Both have premiere date, but y has invalid date | ||||||
|  |                 // Expected: y listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2019, 1, 1) }, | ||||||
|  |                     new Movie { PremiereDate = new DateTime(03, 1, 1) }, | ||||||
|  |                     1); | ||||||
|  | 
 | ||||||
|  |                 // Only x has premiere date, with earlier year than y | ||||||
|  |                 // Expected: x listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2020, 1, 1) }, | ||||||
|  |                     new Movie { ProductionYear = 2021 }, | ||||||
|  |                     -1); | ||||||
|  | 
 | ||||||
|  |                 // Only x has premiere date, with same year as y | ||||||
|  |                 // Expected: y listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2022, 1, 2) }, | ||||||
|  |                     new Movie { ProductionYear = 2022 }, | ||||||
|  |                     1); | ||||||
|  | 
 | ||||||
|  |                 // Only x has a premiere date, with later year than y | ||||||
|  |                 // Expected: y listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2024, 3, 1) }, | ||||||
|  |                     new Movie { ProductionYear = 2023 }, | ||||||
|  |                     1); | ||||||
|  | 
 | ||||||
|  |                 // Only x has a premiere date, y has an invalid year | ||||||
|  |                 // Expected: y listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2025, 1, 1) }, | ||||||
|  |                     new Movie { ProductionYear = 0 }, | ||||||
|  |                     1); | ||||||
|  | 
 | ||||||
|  |                 // Only x has a premiere date, y has neither date nor year | ||||||
|  |                 // Expected: y listed first | ||||||
|  |                 Add( | ||||||
|  |                     new Movie { PremiereDate = new DateTime(2026, 1, 1) }, | ||||||
|  |                     new Movie(), | ||||||
|  |                     1); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user