mirror of
https://github.com/Ikatono/ComiServ.git
synced 2025-10-28 20:45:35 -05:00
76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
using ComiServ.Background;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ComiServUnitTest.Mocks
|
|
{
|
|
internal class MockComicAnalyzer : IComicAnalyzer
|
|
{
|
|
//preseed these
|
|
public readonly Dictionary<string, ComicAnalysis> AnalysisResults = [];
|
|
public readonly HashSet<string> ComicsThatExist = [];
|
|
public readonly Dictionary<(string, int), ComicPage> ComicPages = [];
|
|
|
|
//check these afterwards
|
|
public readonly List<string> Analyzed = [];
|
|
public readonly List<string> CheckedForExistance = [];
|
|
public readonly List<string> Deleted = [];
|
|
public readonly List<(string, int)> RetreivedPages = [];
|
|
public MockComicAnalyzer()
|
|
{
|
|
|
|
}
|
|
public void Clear()
|
|
{
|
|
Analyzed.Clear();
|
|
CheckedForExistance.Clear();
|
|
Deleted.Clear();
|
|
RetreivedPages.Clear();
|
|
}
|
|
public ComicAnalysis? AnalyzeComic(string filename)
|
|
{
|
|
Analyzed.Add(filename);
|
|
if (AnalysisResults.TryGetValue(filename, out var analysis))
|
|
return analysis;
|
|
return null;
|
|
}
|
|
|
|
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
|
|
public async Task<ComicAnalysis?> AnalyzeComicAsync(string filename)
|
|
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
|
|
{
|
|
return AnalyzeComic(filename);
|
|
}
|
|
|
|
public bool ComicFileExists(string filename)
|
|
{
|
|
CheckedForExistance.Add(filename);
|
|
return ComicsThatExist.Contains(filename);
|
|
}
|
|
|
|
public void DeleteComicFile(string filename)
|
|
{
|
|
Deleted.Add(filename);
|
|
}
|
|
|
|
public ComicPage? GetComicPage(string filepath, int page)
|
|
{
|
|
var key = (filepath, page);
|
|
RetreivedPages.Add(key);
|
|
if (ComicPages.TryGetValue(key, out var comicPage))
|
|
return comicPage;
|
|
return null;
|
|
}
|
|
|
|
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
|
|
public async Task<ComicPage?> GetComicPageAsync(string filepath, int page)
|
|
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
|
|
{
|
|
return GetComicPage(filepath, page);
|
|
}
|
|
}
|
|
}
|