Merge remote-tracking branch 'origin/v13/dev' into v14/dev
# Conflicts: # src/Umbraco.Core/DependencyInjection/UmbracoBuilder.cs # src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs # src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs # src/Umbraco.Infrastructure/PropertyEditors/MultiUrlPickerValueEditor.cs
This commit is contained in:
@@ -49,6 +49,7 @@ public class CacheTests
|
||||
var invocationCount = 0;
|
||||
propertyType.SetupGet(p => p.CacheLevel).Returns(cacheLevel);
|
||||
propertyType.SetupGet(p => p.DeliveryApiCacheLevel).Returns(cacheLevel);
|
||||
propertyType.SetupGet(p => p.DeliveryApiCacheLevelForExpansion).Returns(cacheLevel);
|
||||
propertyType
|
||||
.Setup(p => p.ConvertInterToDeliveryApiObject(It.IsAny<IPublishedElement>(), It.IsAny<PropertyCacheLevel>(), It.IsAny<object?>(), It.IsAny<bool>(), It.IsAny<bool>()))
|
||||
.Returns(() => $"Delivery API value: {++invocationCount}");
|
||||
|
||||
@@ -21,7 +21,7 @@ public class WebhookLogServiceTests : UmbracoIntegrationTest
|
||||
var createdWebhookLog = await WebhookLogService.CreateAsync(new WebhookLog
|
||||
{
|
||||
Date = DateTime.UtcNow,
|
||||
EventName = Constants.WebhookEvents.ContentPublish,
|
||||
EventAlias = Constants.WebhookEvents.Aliases.ContentPublish,
|
||||
RequestBody = "Test Request Body",
|
||||
ResponseBody = "Test response body",
|
||||
StatusCode = "200",
|
||||
@@ -37,14 +37,14 @@ public class WebhookLogServiceTests : UmbracoIntegrationTest
|
||||
Assert.IsNotNull(webhookLogsPaged);
|
||||
Assert.IsNotEmpty(webhookLogsPaged.Items);
|
||||
Assert.AreEqual(1, webhookLogsPaged.Items.Count());
|
||||
var webHookLog = webhookLogsPaged.Items.First();
|
||||
Assert.AreEqual(createdWebhookLog.Date.ToString(CultureInfo.InvariantCulture), webHookLog.Date.ToString(CultureInfo.InvariantCulture));
|
||||
Assert.AreEqual(createdWebhookLog.EventName, webHookLog.EventName);
|
||||
Assert.AreEqual(createdWebhookLog.RequestBody, webHookLog.RequestBody);
|
||||
Assert.AreEqual(createdWebhookLog.ResponseBody, webHookLog.ResponseBody);
|
||||
Assert.AreEqual(createdWebhookLog.StatusCode, webHookLog.StatusCode);
|
||||
Assert.AreEqual(createdWebhookLog.RetryCount, webHookLog.RetryCount);
|
||||
Assert.AreEqual(createdWebhookLog.Key, webHookLog.Key);
|
||||
var webhookLog = webhookLogsPaged.Items.First();
|
||||
Assert.AreEqual(createdWebhookLog.Date.ToString(CultureInfo.InvariantCulture), webhookLog.Date.ToString(CultureInfo.InvariantCulture));
|
||||
Assert.AreEqual(createdWebhookLog.EventAlias, webhookLog.EventAlias);
|
||||
Assert.AreEqual(createdWebhookLog.RequestBody, webhookLog.RequestBody);
|
||||
Assert.AreEqual(createdWebhookLog.ResponseBody, webhookLog.ResponseBody);
|
||||
Assert.AreEqual(createdWebhookLog.StatusCode, webhookLog.StatusCode);
|
||||
Assert.AreEqual(createdWebhookLog.RetryCount, webhookLog.RetryCount);
|
||||
Assert.AreEqual(createdWebhookLog.Key, webhookLog.Key);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Tests.Common.Testing;
|
||||
using Umbraco.Cms.Tests.Integration.Testing;
|
||||
|
||||
namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Services;
|
||||
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class WebhookRequestServiceTests : UmbracoIntegrationTest
|
||||
{
|
||||
private IWebhookRequestService WebhookRequestService => GetRequiredService<IWebhookRequestService>();
|
||||
|
||||
private IWebhookService WebhookService => GetRequiredService<IWebhookService>();
|
||||
|
||||
[Test]
|
||||
public async Task Can_Create_And_Get()
|
||||
{
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
var created = await WebhookRequestService.CreateAsync(createdWebhook.Result.Key, Constants.WebhookEvents.Aliases.ContentPublish, null);
|
||||
var webhooks = await WebhookRequestService.GetAllAsync();
|
||||
var webhook = webhooks.First(x => x.Id == created.Id);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.AreEqual(created.Id, webhook.Id);
|
||||
Assert.AreEqual(created.EventAlias, webhook.EventAlias);
|
||||
Assert.AreEqual(created.RetryCount, webhook.RetryCount);
|
||||
Assert.AreEqual(created.RequestObject, webhook.RequestObject);
|
||||
Assert.AreEqual(created.WebhookKey, webhook.WebhookKey);
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Can_Update()
|
||||
{
|
||||
var newRetryCount = 4;
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
var created = await WebhookRequestService.CreateAsync(createdWebhook.Result.Key, Constants.WebhookEvents.Aliases.ContentPublish, null);
|
||||
created.RetryCount = newRetryCount;
|
||||
await WebhookRequestService.UpdateAsync(created);
|
||||
var webhooks = await WebhookRequestService.GetAllAsync();
|
||||
var webhook = webhooks.First(x => x.Id == created.Id);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.AreEqual(newRetryCount, webhook.RetryCount);
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Can_Delete()
|
||||
{
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
var created = await WebhookRequestService.CreateAsync(createdWebhook.Result.Key, Constants.WebhookEvents.Aliases.ContentPublish, null);
|
||||
await WebhookRequestService.DeleteAsync(created);
|
||||
var webhooks = await WebhookRequestService.GetAllAsync();
|
||||
var webhook = webhooks.FirstOrDefault(x => x.Id == created.Id);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.IsNull(webhook);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -11,18 +11,18 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Services;
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class WebhookServiceTests : UmbracoIntegrationTest
|
||||
{
|
||||
private IWebHookService WebhookService => GetRequiredService<IWebHookService>();
|
||||
private IWebhookService WebhookService => GetRequiredService<IWebhookService>();
|
||||
|
||||
[Test]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.ContentPublish, "00000000-0000-0000-0000-010000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.ContentDelete, "00000000-0000-0000-0000-000200000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.ContentUnpublish, "00000000-0000-0000-0000-300000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.MediaDelete, "00000000-0000-0000-0000-000004000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.MediaSave, "00000000-0000-0000-0000-000000500000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.ContentPublish, "00000000-0000-0000-0000-010000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.ContentDelete, "00000000-0000-0000-0000-000200000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.ContentUnpublish, "00000000-0000-0000-0000-300000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.MediaDelete, "00000000-0000-0000-0000-000004000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.MediaSave, "00000000-0000-0000-0000-000000500000")]
|
||||
public async Task Can_Create_And_Get(string url, string webhookEvent, Guid key)
|
||||
{
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook(url, true, new[] { key }, new[] { webhookEvent }));
|
||||
var webhook = await WebhookService.GetAsync(createdWebhook.Key);
|
||||
var webhook = await WebhookService.GetAsync(createdWebhook.Result.Key);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
@@ -37,42 +37,42 @@ public class WebhookServiceTests : UmbracoIntegrationTest
|
||||
[Test]
|
||||
public async Task Can_Get_All()
|
||||
{
|
||||
var createdWebhookOne = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.ContentPublish }));
|
||||
var createdWebhookTwo = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.ContentDelete }));
|
||||
var createdWebhookThree = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.ContentUnpublish }));
|
||||
var createdWebhookOne = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
var createdWebhookTwo = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.Aliases.ContentDelete }));
|
||||
var createdWebhookThree = await WebhookService.CreateAsync(new Webhook("https://example.com", true, new[] { Guid.NewGuid() }, new[] { Constants.WebhookEvents.Aliases.ContentUnpublish }));
|
||||
var webhooks = await WebhookService.GetAllAsync(0, int.MaxValue);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.IsNotEmpty(webhooks.Items);
|
||||
Assert.IsNotNull(webhooks.Items.FirstOrDefault(x => x.Key == createdWebhookOne.Key));
|
||||
Assert.IsNotNull(webhooks.Items.FirstOrDefault(x => x.Key == createdWebhookTwo.Key));
|
||||
Assert.IsNotNull(webhooks.Items.FirstOrDefault(x => x.Key == createdWebhookThree.Key));
|
||||
Assert.IsNotNull(webhooks.Items.FirstOrDefault(x => x.Key == createdWebhookOne.Result.Key));
|
||||
Assert.IsNotNull(webhooks.Items.FirstOrDefault(x => x.Key == createdWebhookTwo.Result.Key));
|
||||
Assert.IsNotNull(webhooks.Items.FirstOrDefault(x => x.Key == createdWebhookThree.Result.Key));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.ContentPublish, "00000000-0000-0000-0000-010000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.ContentDelete, "00000000-0000-0000-0000-000200000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.ContentUnpublish, "00000000-0000-0000-0000-300000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.MediaDelete, "00000000-0000-0000-0000-000004000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.MediaSave, "00000000-0000-0000-0000-000000500000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.ContentPublish, "00000000-0000-0000-0000-010000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.ContentDelete, "00000000-0000-0000-0000-000200000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.ContentUnpublish, "00000000-0000-0000-0000-300000000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.MediaDelete, "00000000-0000-0000-0000-000004000000")]
|
||||
[TestCase("https://example.com", Constants.WebhookEvents.Aliases.MediaSave, "00000000-0000-0000-0000-000000500000")]
|
||||
public async Task Can_Delete(string url, string webhookEvent, Guid key)
|
||||
{
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook(url, true, new[] { key }, new[] { webhookEvent }));
|
||||
var webhook = await WebhookService.GetAsync(createdWebhook.Key);
|
||||
var webhook = await WebhookService.GetAsync(createdWebhook.Result.Key);
|
||||
|
||||
Assert.IsNotNull(webhook);
|
||||
await WebhookService.DeleteAsync(webhook.Key);
|
||||
var deletedWebhook = await WebhookService.GetAsync(createdWebhook.Key);
|
||||
var deletedWebhook = await WebhookService.GetAsync(createdWebhook.Result.Key);
|
||||
Assert.IsNull(deletedWebhook);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Can_Create_With_No_EntityKeys()
|
||||
{
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.ContentPublish }));
|
||||
var webhook = await WebhookService.GetAsync(createdWebhook.Key);
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
var webhook = await WebhookService.GetAsync(createdWebhook.Result.Key);
|
||||
|
||||
Assert.IsNotNull(webhook);
|
||||
Assert.IsEmpty(webhook.ContentTypeKeys);
|
||||
@@ -81,24 +81,24 @@ public class WebhookServiceTests : UmbracoIntegrationTest
|
||||
[Test]
|
||||
public async Task Can_Update()
|
||||
{
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.ContentPublish }));
|
||||
createdWebhook.Events = new[] { Constants.WebhookEvents.ContentDelete };
|
||||
await WebhookService.UpdateAsync(createdWebhook);
|
||||
var createdWebhook = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
createdWebhook.Result.Events = new[] { Constants.WebhookEvents.Aliases.ContentDelete };
|
||||
await WebhookService.UpdateAsync(createdWebhook.Result);
|
||||
|
||||
var updatedWebhook = await WebhookService.GetAsync(createdWebhook.Key);
|
||||
var updatedWebhook = await WebhookService.GetAsync(createdWebhook.Result.Key);
|
||||
Assert.IsNotNull(updatedWebhook);
|
||||
Assert.AreEqual(1, updatedWebhook.Events.Length);
|
||||
Assert.IsTrue(updatedWebhook.Events.Contains(Constants.WebhookEvents.ContentDelete));
|
||||
Assert.IsTrue(updatedWebhook.Events.Contains(Constants.WebhookEvents.Aliases.ContentDelete));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Can_Get_By_EventName()
|
||||
{
|
||||
var webhook1 = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.ContentPublish }));
|
||||
var webhook2 = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.ContentUnpublish }));
|
||||
var webhook3 = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.ContentUnpublish }));
|
||||
var webhook1 = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.Aliases.ContentPublish }));
|
||||
var webhook2 = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.Aliases.ContentUnpublish }));
|
||||
var webhook3 = await WebhookService.CreateAsync(new Webhook("https://example.com", events: new[] { Constants.WebhookEvents.Aliases.ContentUnpublish }));
|
||||
|
||||
var result = await WebhookService.GetByEventNameAsync(Constants.WebhookEvents.ContentUnpublish);
|
||||
var result = await WebhookService.GetByAliasAsync(Constants.WebhookEvents.Aliases.ContentUnpublish);
|
||||
|
||||
Assert.IsNotEmpty(result);
|
||||
Assert.AreEqual(2, result.Count());
|
||||
|
||||
Reference in New Issue
Block a user