|
| 1 | +using Microsoft.Extensions.Logging; |
| 2 | +using Moq; |
| 3 | +using NUnit.Framework; |
| 4 | +using Umbraco.Cms.Core.IO; |
| 5 | +using Umbraco.Cms.Core.IO.MediaPathSchemes; |
| 6 | +using Umbraco.Cms.Core.Strings; |
| 7 | + |
| 8 | +namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.IO.MediaPathSchemes; |
| 9 | + |
| 10 | +[TestFixture] |
| 11 | +public class UniqueMediaPathSchemeTests |
| 12 | +{ |
| 13 | + private static MediaFileManager MediaFileManager => new( |
| 14 | + Mock.Of<IFileSystem>(), |
| 15 | + Mock.Of<IMediaPathScheme>(), |
| 16 | + Mock.Of<ILogger<MediaFileManager>>(), |
| 17 | + Mock.Of<IShortStringHelper>(), |
| 18 | + Mock.Of<IServiceProvider>()); |
| 19 | + |
| 20 | + [Test] |
| 21 | + public void GetFilePath_Creates_ExpectedPath() |
| 22 | + { |
| 23 | + var scheme = new UniqueMediaPathScheme(); |
| 24 | + var itemGuid = new Guid("00000000-0000-4000-0000-000000000001"); |
| 25 | + var propertyGuid = new Guid("00000000-0000-4000-0000-000000000002"); |
| 26 | + var filename = "test.txt"; |
| 27 | + string actualPath = scheme.GetFilePath(MediaFileManager, itemGuid, propertyGuid, filename); |
| 28 | + Assert.AreEqual("aaaaaaaa/test.txt", actualPath); |
| 29 | + } |
| 30 | + |
| 31 | + [TestCase(true, false)] |
| 32 | + [TestCase(false, true)] |
| 33 | + [TestCase(true, true)] |
| 34 | + public void GetFilePath_ShouldThrow_WhenUsingVersion7Guids(bool userVersion7ForItemGuid, bool userVersion7ForPropertyGuid) |
| 35 | + { |
| 36 | + var scheme = new UniqueMediaPathScheme(); |
| 37 | + var itemGuid = new Guid($"00000000-0000-{(userVersion7ForItemGuid ? "7" : "4")}000-0000-000000000001"); |
| 38 | + var propertyGuid = new Guid($"00000000-0000-{(userVersion7ForPropertyGuid ? "7" : "4")}000-0000-000000000002"); |
| 39 | + var filename = "test.txt"; |
| 40 | + |
| 41 | + Assert.Throws<ArgumentException>(() => scheme.GetFilePath(MediaFileManager, itemGuid, propertyGuid, filename)); |
| 42 | + } |
| 43 | +} |
0 commit comments