< Summary

Information
Class: Anichron.Worker.Ingestion.SingleFileItem
Assembly: Anichron.Worker
File(s): /home/runner/work/anichron/anichron/src/Anichron.Worker/Ingestion/IngestionItem.cs
Tag: 228_36821334185
Line coverage
100%
Covered lines: 2
Uncovered lines: 0
Coverable lines: 2
Total lines: 33
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_PrimaryMediaType()100%11100%
get_SecondaryFile()100%11100%

File(s)

/home/runner/work/anichron/anichron/src/Anichron.Worker/Ingestion/IngestionItem.cs

#LineLine coverage
 1using Anichron.Core.Domain;
 2
 3namespace Anichron.Worker.Ingestion;
 4
 5internal sealed record SecondaryFileDescriptor(
 6    string AbsolutePath,
 7    string RelativePath,
 8    MediaType MediaType);
 9
 10internal abstract record IngestionItem(string AbsolutePath, string RelativePath)
 11{
 12    public abstract MediaType PrimaryMediaType { get; }
 13    public abstract SecondaryFileDescriptor? SecondaryFile { get; }
 14}
 15
 16internal sealed record SingleFileItem(
 17    string AbsolutePath,
 18    string RelativePath,
 19    MediaType MediaType) : IngestionItem(AbsolutePath, RelativePath)
 20{
 1621    public override MediaType PrimaryMediaType => MediaType;
 3022    public override SecondaryFileDescriptor? SecondaryFile => null;
 23}
 24
 25internal sealed record LivePhotoPairItem(
 26    string AbsolutePath,
 27    string RelativePath,
 28    string MovAbsolutePath,
 29    string MovRelativePath) : IngestionItem(AbsolutePath, RelativePath)
 30{
 31    public override MediaType PrimaryMediaType => MediaType.LivePhoto;
 32    public override SecondaryFileDescriptor? SecondaryFile => new(MovAbsolutePath, MovRelativePath, MediaType.Video);
 33}