mirror of https://github.com/Squidex/squidex.git
2 changed files with 85 additions and 1 deletions
@ -0,0 +1,80 @@ |
|||||
|
// ==========================================================================
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
||||
|
// All rights reserved. Licensed under the MIT license.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System.Collections.Generic; |
||||
|
using FluentAssertions; |
||||
|
using Squidex.Domain.Apps.Core; |
||||
|
using Squidex.Domain.Apps.Core.Schemas; |
||||
|
using Squidex.Domain.Apps.Entities.Schemas.Commands; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Entities.Schemas |
||||
|
{ |
||||
|
public class SchemaCommandsTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_convert_upsert_command() |
||||
|
{ |
||||
|
var command = new SynchronizeSchema |
||||
|
{ |
||||
|
IsPublished = true, |
||||
|
Properties = new SchemaProperties { Hints = "MyHints" }, |
||||
|
Fields = new List<UpsertSchemaField> |
||||
|
{ |
||||
|
new UpsertSchemaField |
||||
|
{ |
||||
|
Name = "myString", |
||||
|
IsDisabled = true, |
||||
|
IsHidden = true, |
||||
|
IsLocked = true, |
||||
|
Properties = new StringFieldProperties |
||||
|
{ |
||||
|
IsRequired = true |
||||
|
}, |
||||
|
Partitioning = "language" |
||||
|
} |
||||
|
}, |
||||
|
FieldsInLists = new FieldNames("meta.id", "myString"), |
||||
|
FieldsInReferences = new FieldNames("myString"), |
||||
|
Scripts = new SchemaScripts |
||||
|
{ |
||||
|
Change = "change-script" |
||||
|
}, |
||||
|
PreviewUrls = new Dictionary<string, string> |
||||
|
{ |
||||
|
["mobile"] = "http://mobile" |
||||
|
}, |
||||
|
Category = "myCategory" |
||||
|
}; |
||||
|
|
||||
|
var expected = |
||||
|
new Schema("my-schema") |
||||
|
.Update(new SchemaProperties { Hints = "MyHints" }) |
||||
|
.AddString(1, "myString", Partitioning.Language, new StringFieldProperties |
||||
|
{ |
||||
|
IsRequired = true |
||||
|
}) |
||||
|
.HideField(1).DisableField(1).LockField(1) |
||||
|
.ChangeCategory("myCategory") |
||||
|
.ConfigureFieldsInLists(new FieldNames("meta.id", "myString")) |
||||
|
.ConfigureFieldsInReferences(new FieldNames("myString")) |
||||
|
.ConfigureScripts(new SchemaScripts |
||||
|
{ |
||||
|
Change = "change-script" |
||||
|
}) |
||||
|
.ConfigurePreviewUrls(new Dictionary<string, string> |
||||
|
{ |
||||
|
["mobile"] = "http://mobile" |
||||
|
}) |
||||
|
.Publish(); |
||||
|
|
||||
|
var actual = command.ToSchema("my-schema", false); |
||||
|
|
||||
|
actual.Should().BeEquivalentTo(expected); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue