< Summary - Jellyfin

Information
Class: Jellyfin.Api.Extensions.DtoExtensions
Assembly: Jellyfin.Api
File(s): /srv/git/jellyfin/Jellyfin.Api/Extensions/DtoExtensions.cs
Line coverage
35%
Covered lines: 6
Uncovered lines: 11
Coverable lines: 17
Total lines: 83
Line coverage: 35.2%
Branch coverage
38%
Covered branches: 8
Total branches: 21
Branch coverage: 38%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 3/26/2026 - 12:14:14 AM Line coverage: 62.5% (5/8) Branch coverage: 50% (3/6) Total lines: 516/30/2026 - 12:15:32 AM Line coverage: 37.5% (6/16) Branch coverage: 33.3% (6/18) Total lines: 817/5/2026 - 12:16:51 AM Line coverage: 35.2% (6/17) Branch coverage: 38% (8/21) Total lines: 83 3/26/2026 - 12:14:14 AM Line coverage: 62.5% (5/8) Branch coverage: 50% (3/6) Total lines: 516/30/2026 - 12:15:32 AM Line coverage: 37.5% (6/16) Branch coverage: 33.3% (6/18) Total lines: 817/5/2026 - 12:16:51 AM Line coverage: 35.2% (6/17) Branch coverage: 38% (8/21) Total lines: 83

Coverage delta

Coverage delta 25 -25

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetBaseItemKindsForCollectionType(...)33.33%1731511.11%
AddAdditionalDtoOptions(...)50%8662.5%

File(s)

/srv/git/jellyfin/Jellyfin.Api/Extensions/DtoExtensions.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using Jellyfin.Data.Enums;
 3using MediaBrowser.Controller.Dto;
 4using MediaBrowser.Model.Entities;
 5
 6namespace Jellyfin.Api.Extensions;
 7
 8/// <summary>
 9/// Dto Extensions.
 10/// </summary>
 11public static class DtoExtensions
 12{
 13    /// <summary>
 14    /// Gets the BaseItemKind values associated with the specified CollectionType.
 15    /// </summary>
 16    /// <param name="collectionType">The collection type to map to BaseItemKind values.</param>
 17    /// <returns>An array of BaseItemKind values that correspond to the collection type.</returns>
 18    public static BaseItemKind[] GetBaseItemKindsForCollectionType(CollectionType? collectionType)
 19    {
 20        switch (collectionType)
 21        {
 22            case CollectionType.movies:
 023                return [BaseItemKind.Movie];
 24            case CollectionType.tvshows:
 025                return [BaseItemKind.Series];
 26            case CollectionType.music:
 027                return [BaseItemKind.MusicAlbum, BaseItemKind.MusicArtist];
 28            case CollectionType.musicvideos:
 029                return [BaseItemKind.MusicVideo];
 30            case CollectionType.books:
 031                return [BaseItemKind.Book, BaseItemKind.AudioBook];
 32            case CollectionType.boxsets:
 033                return [BaseItemKind.BoxSet];
 34            case CollectionType.homevideos:
 35            case CollectionType.photos:
 036                return [BaseItemKind.Video, BaseItemKind.Photo];
 37            case CollectionType.folders:
 038                return [];
 39            default:
 1440                return [BaseItemKind.Video, BaseItemKind.Audio, BaseItemKind.Photo, BaseItemKind.Movie, BaseItemKind.Ser
 41        }
 42    }
 43
 44    /// <summary>
 45    /// Add additional DtoOptions.
 46    /// </summary>
 47    /// <remarks>
 48    /// Converted from IHasDtoOptions.
 49    /// Legacy order: 3.
 50    /// </remarks>
 51    /// <param name="dtoOptions">DtoOptions object.</param>
 52    /// <param name="enableImages">Enable images.</param>
 53    /// <param name="enableUserData">Enable user data.</param>
 54    /// <param name="imageTypeLimit">Image type limit.</param>
 55    /// <param name="enableImageTypes">Enable image types.</param>
 56    /// <returns>Modified DtoOptions object.</returns>
 57    internal static DtoOptions AddAdditionalDtoOptions(
 58        this DtoOptions dtoOptions,
 59        bool? enableImages,
 60        bool? enableUserData,
 61        int? imageTypeLimit,
 62        IReadOnlyList<ImageType> enableImageTypes)
 63    {
 464        dtoOptions.EnableImages = enableImages ?? true;
 65
 466        if (imageTypeLimit.HasValue)
 67        {
 068            dtoOptions.ImageTypeLimit = imageTypeLimit.Value;
 69        }
 70
 471        if (enableUserData.HasValue)
 72        {
 073            dtoOptions.EnableUserData = enableUserData.Value;
 74        }
 75
 476        if (enableImageTypes.Count != 0)
 77        {
 078            dtoOptions.ImageTypes = enableImageTypes;
 79        }
 80
 481        return dtoOptions;
 82    }
 83}