PluginManagerTests.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.IO;
  3. using Emby.Server.Implementations.Plugins;
  4. using MediaBrowser.Common.Plugins;
  5. using Microsoft.Extensions.Logging.Abstractions;
  6. using Xunit;
  7. namespace Jellyfin.Server.Implementations.Tests.Plugins
  8. {
  9. public class PluginManagerTests
  10. {
  11. private static readonly string _testPathRoot = Path.Combine(Path.GetTempPath(), "jellyfin-test-data");
  12. [Fact]
  13. public void SaveManifest_RoundTrip_Success()
  14. {
  15. var pluginManager = new PluginManager(new NullLogger<PluginManager>(), null!, null!, null!, new Version(1, 0));
  16. var manifest = new PluginManifest()
  17. {
  18. Version = "1.0"
  19. };
  20. var tempPath = Path.Combine(_testPathRoot, "manifest-" + Path.GetRandomFileName());
  21. Directory.CreateDirectory(tempPath);
  22. Assert.True(pluginManager.SaveManifest(manifest, tempPath));
  23. var res = pluginManager.LoadManifest(tempPath);
  24. Assert.Equal(manifest.Category, res.Manifest.Category);
  25. Assert.Equal(manifest.Changelog, res.Manifest.Changelog);
  26. Assert.Equal(manifest.Description, res.Manifest.Description);
  27. Assert.Equal(manifest.Id, res.Manifest.Id);
  28. Assert.Equal(manifest.Name, res.Manifest.Name);
  29. Assert.Equal(manifest.Overview, res.Manifest.Overview);
  30. Assert.Equal(manifest.Owner, res.Manifest.Owner);
  31. Assert.Equal(manifest.TargetAbi, res.Manifest.TargetAbi);
  32. Assert.Equal(manifest.Timestamp, res.Manifest.Timestamp);
  33. Assert.Equal(manifest.Version, res.Manifest.Version);
  34. Assert.Equal(manifest.Status, res.Manifest.Status);
  35. Assert.Equal(manifest.AutoUpdate, res.Manifest.AutoUpdate);
  36. Assert.Equal(manifest.ImagePath, res.Manifest.ImagePath);
  37. }
  38. }
  39. }