// Copyright (c) Umbraco. // See LICENSE for more details. using System; using NUnit.Framework; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models.ContentEditing; using Umbraco.Cms.Tests.Common.Attributes; using Umbraco.Cms.Web.BackOffice.Controllers; namespace Umbraco.Cms.Tests.Integration.TestServerTest.Controllers; [TestFixture] public class EnsureNotAmbiguousActionNameControllerTests : UmbracoTestServerTestBase { [Test] [LongRunning] public void EnsureNotAmbiguousActionName() { var intId = 0; var guidId = Guid.Empty; var udiId = Udi.Create(Constants.UdiEntityType.Script, "test"); Assert.Multiple(() => { EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetNiceUrl(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetNiceUrl(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetNiceUrl(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetEmpty("test", 0))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetChildren(intId, string.Empty, 0, 0, "SortOrder", Direction.Ascending, true, string.Empty, string.Empty))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetPath(intId, UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetPath(guidId, UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetPath(udiId, UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetUrl(intId, UmbracoEntityTypes.Document, null))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetUrl(udiId, null))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetUrlAndAnchors(intId, null))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetUrlAndAnchors(udiId, null))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetById(intId, UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetById(guidId, UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetById(udiId, UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetByIds(new Guid[0], UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetByIds(new Udi[0], UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetByIds(new int[0], UmbracoEntityTypes.Document))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetPagedChildren(intId, UmbracoEntityTypes.Document, 0, 1, "SortOrder", Direction.Ascending, string.Empty, null))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetPagedChildren(guidId.ToString(), UmbracoEntityTypes.Document, 0, 1, "SortOrder", Direction.Ascending, string.Empty, null))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetPagedChildren(udiId.ToString(), UmbracoEntityTypes.Document, 0, 1, "SortOrder", Direction.Ascending, string.Empty, null))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetIcon(string.Empty))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetChildren(intId, 0, 1, "SortOrder", Direction.Ascending, true, string.Empty))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetChildren(guidId, 0, 1, "SortOrder", Direction.Ascending, true, string.Empty))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetChildren(udiId, 0, 1, "SortOrder", Direction.Ascending, true, string.Empty))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetAllowedChildren(intId))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetAllowedChildren(guidId))); EnsureNotAmbiguousActionName( PrepareApiControllerUrl(x => x.GetAllowedChildren(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(intId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(guidId))); EnsureNotAmbiguousActionName(PrepareApiControllerUrl(x => x.GetById(udiId))); }); } private void EnsureNotAmbiguousActionName(string url) => Assert.DoesNotThrowAsync(async () => await Client.GetAsync(url)); }