Browse Source

Some fixes and more tests

pull/131/head
Sebastian Stehle 9 years ago
parent
commit
a23129ca12
  1. 2
      src/Squidex.Domain.Apps.Events/Apps/Old/AppClientChanged.cs
  2. 7
      src/Squidex.Domain.Apps.Read.MongoDb/Apps/MongoAppEntityClient.cs
  3. 5
      src/Squidex.Domain.Apps.Read/Apps/AppHistoryEventsCreator.cs
  4. 8
      src/Squidex/Controllers/Api/Apps/Models/UpdateAppClientDto.cs
  5. 1
      src/Squidex/app/features/settings/pages/clients/client.component.html
  6. 51
      tests/Squidex.Domain.Apps.Write.Tests/Apps/AppEventTests.cs

2
src/Squidex.Domain.Apps.Events/Apps/Old/AppClientChanged.cs

@ -12,7 +12,7 @@ using Squidex.Infrastructure.Reflection;
namespace Squidex.Domain.Apps.Events.Apps.Old
{
[EventType(nameof(AppClientUpdated))]
[EventType(nameof(AppClientChanged))]
public sealed class AppClientChanged : AppEvent, IMigratedEvent
{
public string Id { get; set; }

7
src/Squidex.Domain.Apps.Read.MongoDb/Apps/MongoAppEntityClient.cs

@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Apps
[BsonElement]
public string Name { get; set; }
[BsonIgnoreIfDefault]
[BsonRequired]
[BsonElement]
public AppClientPermission Permission { get; set; }
@ -34,5 +34,10 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Apps
{
get { return !string.IsNullOrWhiteSpace(Name) ? Name : Id; }
}
public MongoAppEntityClient()
{
Permission = AppClientPermission.Editor;
}
}
}

5
src/Squidex.Domain.Apps.Read/Apps/AppHistoryEventsCreator.cs

@ -32,8 +32,11 @@ namespace Squidex.Domain.Apps.Read.Apps
AddEventMessage<AppClientRevoked>(
"revoked client {[Id]}");
AddEventMessage<AppClientUpdated>(
"updated client {[Id]}");
AddEventMessage<AppClientRenamed>(
"named client {[Id]} as {[Name]}");
"renamed client {[Id]} to {[Name]}");
AddEventMessage<AppLanguageAdded>(
"added language {[Language]}");

8
src/Squidex/Controllers/Api/Apps/Models/UpdateAppClientDto.cs

@ -7,6 +7,9 @@
// ==========================================================================
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Squidex.Domain.Apps.Core.Apps;
namespace Squidex.Controllers.Api.Apps.Models
{
@ -19,8 +22,9 @@ namespace Squidex.Controllers.Api.Apps.Models
public string Name { get; set; }
/// <summary>
/// Determines if the client is a reader.
/// The permissions of the client.
/// </summary>
public bool? IsReader { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public AppClientPermission? Permission { get; set; }
}
}

1
src/Squidex/app/features/settings/pages/clients/client.component.html

@ -73,7 +73,6 @@
<td>Permission</td>
<td>
<select class="form-control" [ngModel]="client.permission" (ngModelChange)="updating.emit($event)">
<option></option>
<option *ngFor="let permission of clientPermissions" [ngValue]="permission">{{permission}}</option>
</select>
</td>

51
tests/Squidex.Domain.Apps.Write.Tests/Apps/AppEventTests.cs

@ -0,0 +1,51 @@
// ==========================================================================
// AppEventTests.cs
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex Group
// All rights reserved.
// ==========================================================================
using System;
using Squidex.Domain.Apps.Core.Apps;
using Squidex.Domain.Apps.Events;
using Squidex.Domain.Apps.Events.Apps;
using Squidex.Domain.Apps.Events.Apps.Old;
using Squidex.Domain.Apps.Write.TestHelpers;
using Squidex.Infrastructure;
using Xunit;
#pragma warning disable CS0612 // Type or member is obsolete
namespace Squidex.Domain.Apps.Write.Apps
{
public class AppEventTests
{
private readonly RefToken actor = new RefToken("User", Guid.NewGuid().ToString());
private readonly NamedId<Guid> appId = new NamedId<Guid>(Guid.NewGuid(), "my-app");
[Fact]
public void Should_migrate_client_changed_as_reader_to_client_updated()
{
var source = CreateEvent(new AppClientChanged { IsReader = true });
source.Migrate().ShouldBeSameEvent(CreateEvent(new AppClientUpdated { Permission = AppClientPermission.Reader }));
}
[Fact]
public void Should_migrate_client_changed_as_writer_to_client_updated()
{
var source = CreateEvent(new AppClientChanged { IsReader = false });
source.Migrate().ShouldBeSameEvent(CreateEvent(new AppClientUpdated { Permission = AppClientPermission.Editor }));
}
private T CreateEvent<T>(T contentEvent) where T : AppEvent
{
contentEvent.Actor = actor;
contentEvent.AppId = appId;
return contentEvent;
}
}
}
Loading…
Cancel
Save