mirror of
https://github.com/revenz/FileFlowsPlugins.git
synced 2026-04-28 21:59:51 -05:00
unit tests
This commit is contained in:
@@ -67,7 +67,7 @@ public class EmbyUpdater: Node
|
||||
|
||||
|
||||
string url = serverUrl;
|
||||
if (url.EndsWith("/") == false)
|
||||
if (url.EndsWith('/') == false)
|
||||
url += "/";
|
||||
url += "Library/Media/Updated";
|
||||
|
||||
@@ -119,5 +119,11 @@ public class EmbyUpdater: Node
|
||||
}
|
||||
return _GetWebRequest;
|
||||
}
|
||||
#if(DEBUG)
|
||||
set
|
||||
{
|
||||
_GetWebRequest = value;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
+50
-20
@@ -9,43 +9,73 @@ namespace FileFlows.Emby.Tests;
|
||||
[TestClass]
|
||||
public class EmbyTests : TestBase
|
||||
{
|
||||
private NodeParameters Args = null!;
|
||||
private EmbyUpdater element = null!;
|
||||
|
||||
protected override void TestStarting()
|
||||
{
|
||||
Args = GetNodeParameters(TempFile);
|
||||
Args.GetPluginSettingsJson = _ => string.Empty;
|
||||
element = new EmbyUpdater();
|
||||
element.ServerUrl = "http://emby.test/";
|
||||
element.AccessToken = "access-token";
|
||||
element.GetWebRequest = (client, url, accessToken, json)
|
||||
=> (true, "test");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void Emby_Basic()
|
||||
{
|
||||
var args = new NodeParameters(@"/media/movies/Citizen Kane (1941)/Citizen Kane (1941).mp4", Logger, false, string.Empty, new LocalFileService());
|
||||
args.GetPluginSettingsJson = (string input) =>
|
||||
{
|
||||
return File.ReadAllText("../../../settings.json");
|
||||
};
|
||||
|
||||
var node = new EmbyUpdater();
|
||||
Assert.AreEqual(1, node.Execute(args));
|
||||
Assert.AreEqual(1, element.Execute(Args));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void Emby_Fail()
|
||||
{
|
||||
var args = new NodeParameters(@"/media/unknownmovies/The Batman (2022)/The Batman.mkv", Logger, false, string.Empty, new LocalFileService());
|
||||
args.GetPluginSettingsJson = (string input) =>
|
||||
{
|
||||
return File.ReadAllText("../../../settings.invalid.json");
|
||||
};
|
||||
element.GetWebRequest = (client, url, accessToken, json)
|
||||
=> (false, "cant reach");
|
||||
|
||||
var node = new EmbyUpdater();
|
||||
Assert.AreEqual(2, node.Execute(args));
|
||||
Assert.AreEqual(2, element.Execute(Args));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void Emby_Mapped()
|
||||
{
|
||||
var args = new NodeParameters(@"/mnt/movies/Citizen Kane (1941)/Citizen Kane (1941).mp4", Logger, false, string.Empty, new LocalFileService());
|
||||
args.GetPluginSettingsJson = (string input) =>
|
||||
element.Mapping = new List<KeyValuePair<string, string>>()
|
||||
{
|
||||
return File.ReadAllText("../../../settings.json");
|
||||
new(TempPath, "/mapped")
|
||||
};
|
||||
|
||||
var node = new EmbyUpdater();
|
||||
Assert.AreEqual(1, node.Execute(args));
|
||||
element.GetWebRequest = (client, url, accessToken, json) =>
|
||||
{
|
||||
var payload = System.Text.Json.JsonSerializer.Deserialize<EmbyPayload>(json);
|
||||
bool success = payload!.Updates[0].Path.StartsWith("/mapped");
|
||||
return (success, "mapped");
|
||||
};
|
||||
|
||||
Assert.AreEqual(1, element.Execute(Args));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The emby payload
|
||||
/// </summary>
|
||||
internal class EmbyPayload
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the emby payload updates
|
||||
/// </summary>
|
||||
public EmbyUpdate[] Updates { get; set; } = null!;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A emby update
|
||||
/// </summary>
|
||||
internal class EmbyUpdate
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or stees the path that is updated
|
||||
/// </summary>
|
||||
public string Path { get; set; } = null!;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user