Skip to content

Commit 2aad208

Browse files
Merge branch 'v8/8.17' into v8/dev
# Conflicts: # src/Umbraco.Web.UI.Client/src/common/services/contenttypehelper.service.js
2 parents 7b98cc3 + 5123799 commit 2aad208

File tree

5 files changed

+418
-43
lines changed

5 files changed

+418
-43
lines changed

src/SolutionInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@
1818
[assembly: AssemblyVersion("8.0.0")]
1919

2020
// these are FYI and changed automatically
21-
[assembly: AssemblyFileVersion("8.17.0")]
22-
[assembly: AssemblyInformationalVersion("8.17.0")]
21+
[assembly: AssemblyFileVersion("8.17.1")]
22+
[assembly: AssemblyInformationalVersion("8.17.1")]

src/Umbraco.Tests/Cache/DistributedCacheBinderTests.cs

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.Linq;
34
using System.Threading;
45
using Moq;
@@ -10,6 +11,7 @@
1011
using Umbraco.Core.Models.Membership;
1112
using Umbraco.Core.Services;
1213
using Umbraco.Core.Services.Changes;
14+
using Umbraco.Tests.TestHelpers.Entities;
1315
using Umbraco.Tests.Testing;
1416
using Umbraco.Tests.Testing.Objects.Accessors;
1517
using Umbraco.Web;
@@ -168,17 +170,73 @@ public void CanHandleEvent()
168170
}
169171

170172
[Test]
171-
public void OnlyHandlesOnContentTypeEvent()
173+
public void GroupsContentTypeEvents()
172174
{
173-
var definitions = new IEventDefinition[]
175+
var num = 30;
176+
var contentTypes = Enumerable.Repeat(MockedContentTypes.CreateBasicContentType(), num);
177+
var mediaTypes = Enumerable.Repeat(MockedContentTypes.CreateImageMediaType(), num);
178+
var memberTypes = Enumerable.Repeat(MockedContentTypes.CreateSimpleMemberType(), num);
179+
var definitionsContent = contentTypes.SelectMany(x => new IEventDefinition[]
174180
{
175-
new EventDefinition<IContentTypeService, ContentTypeChange<IContentType>.EventArgs>(null, Current.Services.ContentTypeService, new ContentTypeChange<IContentType>.EventArgs(Enumerable.Empty<ContentTypeChange<IContentType>>()), "Changed"),
176-
new EventDefinition<IContentTypeService, SaveEventArgs<IContentType>>(null, Current.Services.ContentTypeService, new SaveEventArgs<IContentType>(Enumerable.Empty<IContentType>()), "Saved"),
177-
new EventDefinition<IContentTypeService, ContentTypeChange<IContentType>.EventArgs>(null, Current.Services.ContentTypeService, new ContentTypeChange<IContentType>.EventArgs(Enumerable.Empty<ContentTypeChange<IContentType>>()), "Changed"),
178-
new EventDefinition<IContentTypeService, SaveEventArgs<IContentType>>(null, Current.Services.ContentTypeService, new SaveEventArgs<IContentType>(Enumerable.Empty<IContentType>()), "Saved"),
179-
};
180-
var result = DistributedCacheBinder.GetReducedEventList(definitions);
181-
Assert.AreEqual(1, result.Count());
181+
new EventDefinition<IContentTypeService, ContentTypeChange<IContentType>.EventArgs>(null, Current.Services.ContentTypeService, new ContentTypeChange<IContentType>.EventArgs(new ContentTypeChange<IContentType>(x, ContentTypeChangeTypes.Create)), "Changed"),
182+
new EventDefinition<IContentTypeService, SaveEventArgs<IContentType>>(null, Current.Services.ContentTypeService, new SaveEventArgs<IContentType>(x), "Saved"),
183+
});
184+
185+
var definitionsMedia = mediaTypes.SelectMany(x => new IEventDefinition[]
186+
{
187+
new EventDefinition<IMediaTypeService, ContentTypeChange<IMediaType>.EventArgs>(null, Current.Services.MediaTypeService, new ContentTypeChange<IMediaType>.EventArgs(new ContentTypeChange<IMediaType>(x, ContentTypeChangeTypes.Create)), "Changed"),
188+
new EventDefinition<IMediaTypeService, SaveEventArgs<IMediaType>>(null, Current.Services.MediaTypeService, new SaveEventArgs<IMediaType>(x), "Saved"),
189+
});
190+
var definitionsMember = memberTypes.SelectMany(x => new IEventDefinition[]
191+
{
192+
new EventDefinition<IMemberTypeService, ContentTypeChange<IMemberType>.EventArgs>(null, Current.Services.MemberTypeService, new ContentTypeChange<IMemberType>.EventArgs(new ContentTypeChange<IMemberType>(x, ContentTypeChangeTypes.Create)), "Changed"),
193+
new EventDefinition<IMemberTypeService, SaveEventArgs<IMemberType>>(null, Current.Services.MemberTypeService, new SaveEventArgs<IMemberType>(x), "Saved"),
194+
});
195+
196+
var definitions = new List<IEventDefinition>();
197+
definitions.AddRange(definitionsContent);
198+
definitions.AddRange(definitionsMedia);
199+
definitions.AddRange(definitionsMember);
200+
201+
var result = DistributedCacheBinder.GetGroupedEventList(definitions);
202+
203+
Assert.Multiple(() =>
204+
{
205+
Assert.AreEqual(num * 6, definitions.Count(), "Precondition is we have many definitions");
206+
Assert.AreEqual(6, result.Count(), "Unexpected number of reduced definitions");
207+
foreach (var eventDefinition in result)
208+
{
209+
if (eventDefinition.Args is SaveEventArgs<IContentType> saveContentEventArgs)
210+
{
211+
Assert.AreEqual(num, saveContentEventArgs.SavedEntities.Count());
212+
}
213+
214+
if (eventDefinition.Args is ContentTypeChange<IContentType>.EventArgs changeContentEventArgs)
215+
{
216+
Assert.AreEqual(num, changeContentEventArgs.Changes.Count());
217+
}
218+
219+
if (eventDefinition.Args is SaveEventArgs<IMediaType> saveMediaEventArgs)
220+
{
221+
Assert.AreEqual(num, saveMediaEventArgs.SavedEntities.Count());
222+
}
223+
224+
if (eventDefinition.Args is ContentTypeChange<IMediaType>.EventArgs changeMediaEventArgs)
225+
{
226+
Assert.AreEqual(num, changeMediaEventArgs.Changes.Count());
227+
}
228+
229+
if (eventDefinition.Args is SaveEventArgs<IMemberType> saveMemberEventArgs)
230+
{
231+
Assert.AreEqual(num, saveMemberEventArgs.SavedEntities.Count());
232+
}
233+
234+
if (eventDefinition.Args is ContentTypeChange<IMemberType>.EventArgs changeMemberEventArgs)
235+
{
236+
Assert.AreEqual(num, changeMemberEventArgs.Changes.Count());
237+
}
238+
}
239+
});
182240
}
183241
}
184242
}

src/Umbraco.Web.UI/Umbraco.Web.UI.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,9 +348,9 @@
348348
<WebProjectProperties>
349349
<UseIIS>False</UseIIS>
350350
<AutoAssignPort>True</AutoAssignPort>
351-
<DevelopmentServerPort>8170</DevelopmentServerPort>
351+
<DevelopmentServerPort>8171</DevelopmentServerPort>
352352
<DevelopmentServerVPath>/</DevelopmentServerVPath>
353-
<IISUrl>http://localhost:8170</IISUrl>
353+
<IISUrl>http://localhost:8171</IISUrl>
354354
<NTLMAuthentication>False</NTLMAuthentication>
355355
<UseCustomServer>False</UseCustomServer>
356356
<CustomServerUrl>

0 commit comments

Comments
 (0)