2017-05-12 14:49:44 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2017-05-30 10:50:09 +02:00
|
|
|
|
using System.Linq;
|
2017-05-12 14:49:44 +02:00
|
|
|
|
using NUnit.Framework;
|
2017-06-23 18:54:42 +02:00
|
|
|
|
using Umbraco.Core.Composing;
|
2017-05-12 14:49:44 +02:00
|
|
|
|
using Umbraco.Core.Events;
|
|
|
|
|
|
using Umbraco.Core.Models;
|
|
|
|
|
|
using Umbraco.Core.Models.Membership;
|
|
|
|
|
|
using Umbraco.Core.Services;
|
|
|
|
|
|
using Umbraco.Tests.TestHelpers;
|
2017-06-23 18:54:42 +02:00
|
|
|
|
using Umbraco.Tests.Testing;
|
2017-05-12 14:49:44 +02:00
|
|
|
|
using Umbraco.Web.Cache;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Tests.Cache
|
|
|
|
|
|
{
|
|
|
|
|
|
[TestFixture]
|
2017-06-23 18:54:42 +02:00
|
|
|
|
[UmbracoTest(WithApplication = true)]
|
|
|
|
|
|
public class CacheRefresherEventHandlerTests : UmbracoTestBase
|
2017-05-12 14:49:44 +02:00
|
|
|
|
{
|
|
|
|
|
|
[Test]
|
|
|
|
|
|
public void Can_Find_All_Event_Handlers()
|
|
|
|
|
|
{
|
2017-06-23 18:54:42 +02:00
|
|
|
|
// fixme - cannot work with mocks
|
|
|
|
|
|
// because the events are defined on actual static classes, not on the interfaces, so name matching fails
|
|
|
|
|
|
// we should really refactor events entirely - in the meantime, let it be an UmbracoTestBase ;(
|
|
|
|
|
|
//var testObjects = new TestObjects(null);
|
|
|
|
|
|
//var serviceContext = testObjects.GetServiceContextMock();
|
|
|
|
|
|
var serviceContext = Current.Services;
|
|
|
|
|
|
|
2017-05-12 14:49:44 +02:00
|
|
|
|
var definitions = new IEventDefinition[]
|
|
|
|
|
|
{
|
|
|
|
|
|
//I would test these but they are legacy events and we don't need them for deploy, when we migrate to new/better events we can wire up the check
|
|
|
|
|
|
//Permission.New += PermissionNew;
|
|
|
|
|
|
//Permission.Updated += PermissionUpdated;
|
|
|
|
|
|
//Permission.Deleted += PermissionDeleted;
|
|
|
|
|
|
//PermissionRepository<IContent>.AssignedPermissions += CacheRefresherEventHandler_AssignedPermissions;
|
|
|
|
|
|
|
|
|
|
|
|
new EventDefinition<IApplicationTreeService, EventArgs>(null, serviceContext.ApplicationTreeService, new EventArgs(), "Deleted"),
|
|
|
|
|
|
new EventDefinition<IApplicationTreeService, EventArgs>(null, serviceContext.ApplicationTreeService, new EventArgs(), "Updated"),
|
|
|
|
|
|
new EventDefinition<IApplicationTreeService, EventArgs>(null, serviceContext.ApplicationTreeService, new EventArgs(), "New"),
|
|
|
|
|
|
|
|
|
|
|
|
new EventDefinition<ISectionService, EventArgs>(null, serviceContext.SectionService, new EventArgs(), "Deleted"),
|
|
|
|
|
|
new EventDefinition<ISectionService, EventArgs>(null, serviceContext.SectionService, new EventArgs(), "New"),
|
|
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IUserService, SaveEventArgs<IUser>>(null, serviceContext.UserService, new SaveEventArgs<IUser>(Enumerable.Empty<IUser>())),
|
|
|
|
|
|
new EventDefinition<IUserService, DeleteEventArgs<IUser>>(null, serviceContext.UserService, new DeleteEventArgs<IUser>(Enumerable.Empty<IUser>())),
|
2018-03-28 11:28:32 +02:00
|
|
|
|
new EventDefinition<IUserService, SaveEventArgs<UserGroupWithUsers>>(null, serviceContext.UserService, new SaveEventArgs<UserGroupWithUsers>(Enumerable.Empty<UserGroupWithUsers>())),
|
2017-09-14 19:29:12 +02:00
|
|
|
|
new EventDefinition<IUserService, DeleteEventArgs<IUserGroup>>(null, serviceContext.UserService, new DeleteEventArgs<IUserGroup>(Enumerable.Empty<IUserGroup>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<ILocalizationService, SaveEventArgs<IDictionaryItem>>(null, serviceContext.LocalizationService, new SaveEventArgs<IDictionaryItem>(Enumerable.Empty<IDictionaryItem>())),
|
|
|
|
|
|
new EventDefinition<ILocalizationService, DeleteEventArgs<IDictionaryItem>>(null, serviceContext.LocalizationService, new DeleteEventArgs<IDictionaryItem>(Enumerable.Empty<IDictionaryItem>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2018-01-10 12:48:51 +01:00
|
|
|
|
new EventDefinition<IDataTypeService, SaveEventArgs<IDataType>>(null, serviceContext.DataTypeService, new SaveEventArgs<IDataType>(Enumerable.Empty<IDataType>())),
|
|
|
|
|
|
new EventDefinition<IDataTypeService, DeleteEventArgs<IDataType>>(null, serviceContext.DataTypeService, new DeleteEventArgs<IDataType>(Enumerable.Empty<IDataType>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IFileService, SaveEventArgs<Stylesheet>>(null, serviceContext.FileService, new SaveEventArgs<Stylesheet>(Enumerable.Empty<Stylesheet>())),
|
|
|
|
|
|
new EventDefinition<IFileService, DeleteEventArgs<Stylesheet>>(null, serviceContext.FileService, new DeleteEventArgs<Stylesheet>(Enumerable.Empty<Stylesheet>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IDomainService, SaveEventArgs<IDomain>>(null, serviceContext.DomainService, new SaveEventArgs<IDomain>(Enumerable.Empty<IDomain>())),
|
|
|
|
|
|
new EventDefinition<IDomainService, DeleteEventArgs<IDomain>>(null, serviceContext.DomainService, new DeleteEventArgs<IDomain>(Enumerable.Empty<IDomain>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<ILocalizationService, SaveEventArgs<ILanguage>>(null, serviceContext.LocalizationService, new SaveEventArgs<ILanguage>(Enumerable.Empty<ILanguage>())),
|
|
|
|
|
|
new EventDefinition<ILocalizationService, DeleteEventArgs<ILanguage>>(null, serviceContext.LocalizationService, new DeleteEventArgs<ILanguage>(Enumerable.Empty<ILanguage>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IContentTypeService, SaveEventArgs<IContentType>>(null, serviceContext.ContentTypeService, new SaveEventArgs<IContentType>(Enumerable.Empty<IContentType>())),
|
|
|
|
|
|
new EventDefinition<IContentTypeService, DeleteEventArgs<IContentType>>(null, serviceContext.ContentTypeService, new DeleteEventArgs<IContentType>(Enumerable.Empty<IContentType>())),
|
2017-06-23 18:54:42 +02:00
|
|
|
|
new EventDefinition<IMediaTypeService, SaveEventArgs<IMediaType>>(null, serviceContext.MediaTypeService, new SaveEventArgs<IMediaType>(Enumerable.Empty<IMediaType>())),
|
|
|
|
|
|
new EventDefinition<IMediaTypeService, DeleteEventArgs<IMediaType>>(null, serviceContext.MediaTypeService, new DeleteEventArgs<IMediaType>(Enumerable.Empty<IMediaType>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IMemberTypeService, SaveEventArgs<IMemberType>>(null, serviceContext.MemberTypeService, new SaveEventArgs<IMemberType>(Enumerable.Empty<IMemberType>())),
|
|
|
|
|
|
new EventDefinition<IMemberTypeService, DeleteEventArgs<IMemberType>>(null, serviceContext.MemberTypeService, new DeleteEventArgs<IMemberType>(Enumerable.Empty<IMemberType>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IFileService, SaveEventArgs<ITemplate>>(null, serviceContext.FileService, new SaveEventArgs<ITemplate>(Enumerable.Empty<ITemplate>())),
|
|
|
|
|
|
new EventDefinition<IFileService, DeleteEventArgs<ITemplate>>(null, serviceContext.FileService, new DeleteEventArgs<ITemplate>(Enumerable.Empty<ITemplate>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IMacroService, SaveEventArgs<IMacro>>(null, serviceContext.MacroService, new SaveEventArgs<IMacro>(Enumerable.Empty<IMacro>())),
|
|
|
|
|
|
new EventDefinition<IMacroService, DeleteEventArgs<IMacro>>(null, serviceContext.MacroService, new DeleteEventArgs<IMacro>(Enumerable.Empty<IMacro>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IMemberService, SaveEventArgs<IMember>>(null, serviceContext.MemberService, new SaveEventArgs<IMember>(Enumerable.Empty<IMember>())),
|
|
|
|
|
|
new EventDefinition<IMemberService, DeleteEventArgs<IMember>>(null, serviceContext.MemberService, new DeleteEventArgs<IMember>(Enumerable.Empty<IMember>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IMemberGroupService, SaveEventArgs<IMemberGroup>>(null, serviceContext.MemberGroupService, new SaveEventArgs<IMemberGroup>(Enumerable.Empty<IMemberGroup>())),
|
|
|
|
|
|
new EventDefinition<IMemberGroupService, DeleteEventArgs<IMemberGroup>>(null, serviceContext.MemberGroupService, new DeleteEventArgs<IMemberGroup>(Enumerable.Empty<IMemberGroup>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IMediaService, SaveEventArgs<IMedia>>(null, serviceContext.MediaService, new SaveEventArgs<IMedia>(Enumerable.Empty<IMedia>())),
|
|
|
|
|
|
new EventDefinition<IMediaService, DeleteEventArgs<IMedia>>(null, serviceContext.MediaService, new DeleteEventArgs<IMedia>(Enumerable.Empty<IMedia>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
new EventDefinition<IMediaService, MoveEventArgs<IMedia>>(null, serviceContext.MediaService, new MoveEventArgs<IMedia>(new MoveEventInfo<IMedia>(null, "", -1)), "Moved"),
|
|
|
|
|
|
new EventDefinition<IMediaService, MoveEventArgs<IMedia>>(null, serviceContext.MediaService, new MoveEventArgs<IMedia>(new MoveEventInfo<IMedia>(null, "", -1)), "Trashed"),
|
2018-04-04 13:11:12 +10:00
|
|
|
|
new EventDefinition<IMediaService, RecycleBinEventArgs>(null, serviceContext.MediaService, new RecycleBinEventArgs(Guid.NewGuid())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-09-14 19:29:12 +02:00
|
|
|
|
new EventDefinition<IContentService, SaveEventArgs<IContent>>(null, serviceContext.ContentService, new SaveEventArgs<IContent>(Enumerable.Empty<IContent>()), "Saved"),
|
|
|
|
|
|
new EventDefinition<IContentService, DeleteEventArgs<IContent>>(null, serviceContext.ContentService, new DeleteEventArgs<IContent>(Enumerable.Empty<IContent>()), "Deleted"),
|
2017-09-20 20:06:46 +02:00
|
|
|
|
|
|
|
|
|
|
// not managed
|
|
|
|
|
|
//new EventDefinition<IContentService, SaveEventArgs<IContent>>(null, serviceContext.ContentService, new SaveEventArgs<IContent>(Enumerable.Empty<IContent>()), "SavedBlueprint"),
|
|
|
|
|
|
//new EventDefinition<IContentService, DeleteEventArgs<IContent>>(null, serviceContext.ContentService, new DeleteEventArgs<IContent>(Enumerable.Empty<IContent>()), "DeletedBlueprint"),
|
|
|
|
|
|
|
2017-05-12 14:49:44 +02:00
|
|
|
|
new EventDefinition<IContentService, CopyEventArgs<IContent>>(null, serviceContext.ContentService, new CopyEventArgs<IContent>(null, null, -1)),
|
|
|
|
|
|
new EventDefinition<IContentService, MoveEventArgs<IContent>>(null, serviceContext.ContentService, new MoveEventArgs<IContent>(new MoveEventInfo<IContent>(null, "", -1)), "Trashed"),
|
2018-04-04 13:11:12 +10:00
|
|
|
|
new EventDefinition<IContentService, RecycleBinEventArgs>(null, serviceContext.ContentService, new RecycleBinEventArgs(Guid.NewGuid())),
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IContentService, PublishEventArgs<IContent>>(null, serviceContext.ContentService, new PublishEventArgs<IContent>(Enumerable.Empty<IContent>()), "Published"),
|
|
|
|
|
|
new EventDefinition<IContentService, PublishEventArgs<IContent>>(null, serviceContext.ContentService, new PublishEventArgs<IContent>(Enumerable.Empty<IContent>()), "UnPublished"),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IPublicAccessService, SaveEventArgs<PublicAccessEntry>>(null, serviceContext.PublicAccessService, new SaveEventArgs<PublicAccessEntry>(Enumerable.Empty<PublicAccessEntry>())),
|
|
|
|
|
|
new EventDefinition<IPublicAccessService, DeleteEventArgs<PublicAccessEntry>>(null, serviceContext.PublicAccessService, new DeleteEventArgs<PublicAccessEntry>(Enumerable.Empty<PublicAccessEntry>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IRelationService, SaveEventArgs<IRelationType>>(null, serviceContext.RelationService, new SaveEventArgs<IRelationType>(Enumerable.Empty<IRelationType>())),
|
|
|
|
|
|
new EventDefinition<IRelationService, DeleteEventArgs<IRelationType>>(null, serviceContext.RelationService, new DeleteEventArgs<IRelationType>(Enumerable.Empty<IRelationType>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
|
2017-05-30 10:50:09 +02:00
|
|
|
|
new EventDefinition<IRelationService, SaveEventArgs<IRelationType>>(null, serviceContext.RelationService, new SaveEventArgs<IRelationType>(Enumerable.Empty<IRelationType>())),
|
|
|
|
|
|
new EventDefinition<IRelationService, DeleteEventArgs<IRelationType>>(null, serviceContext.RelationService, new DeleteEventArgs<IRelationType>(Enumerable.Empty<IRelationType>())),
|
2017-05-12 14:49:44 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
2017-06-23 18:54:42 +02:00
|
|
|
|
var ok = true;
|
2017-05-12 14:49:44 +02:00
|
|
|
|
foreach (var definition in definitions)
|
|
|
|
|
|
{
|
|
|
|
|
|
var found = CacheRefresherComponent.FindHandler(definition);
|
2017-06-23 18:54:42 +02:00
|
|
|
|
if (found == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Console.WriteLine("Couldn't find method for " + definition.EventName + " on " + definition.Sender.GetType());
|
|
|
|
|
|
ok = false;
|
|
|
|
|
|
}
|
2017-05-12 14:49:44 +02:00
|
|
|
|
}
|
2017-06-23 18:54:42 +02:00
|
|
|
|
Assert.IsTrue(ok, "see log for details");
|
2017-05-12 14:49:44 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-07-20 11:21:28 +02:00
|
|
|
|
}
|