diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsField.cs deleted file mode 100644 index fd769b013..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class AssetsField : Field - { - public AssetsField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new AssetsFieldProperties()) - { - } - - public AssetsField(long id, string name, Partitioning partitioning, AssetsFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsFieldProperties.cs index d3ed6270a..182030e50 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/AssetsFieldProperties.cs @@ -10,7 +10,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(AssetsField))] + [TypeName("AssetsField")] public sealed class AssetsFieldProperties : FieldProperties { public bool MustBeImage { get; set; } @@ -42,9 +42,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new AssetsField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanField.cs deleted file mode 100644 index fc590e022..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class BooleanField : Field - { - public BooleanField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new BooleanFieldProperties()) - { - } - - public BooleanField(long id, string name, Partitioning partitioning, BooleanFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanFieldProperties.cs index 531507e37..363a1a6fa 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/BooleanFieldProperties.cs @@ -9,7 +9,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(BooleanField))] + [TypeName("BooleanField")] public sealed class BooleanFieldProperties : FieldProperties { public bool? DefaultValue { get; set; } @@ -23,9 +23,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new BooleanField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeField.cs deleted file mode 100644 index 5c4cf1a1e..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class DateTimeField : Field - { - public DateTimeField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new DateTimeFieldProperties()) - { - } - - public DateTimeField(long id, string name, Partitioning partitioning, DateTimeFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeFieldProperties.cs index 8dcdd85d5..0a740490f 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/DateTimeFieldProperties.cs @@ -10,7 +10,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(DateTimeField))] + [TypeName("DateTimeField")] public sealed class DateTimeFieldProperties : FieldProperties { public Instant? MaxValue { get; set; } @@ -28,9 +28,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new DateTimeField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/Field.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/Field.cs index 073c01a42..b69071fb3 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/Field.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/Field.cs @@ -10,7 +10,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - public abstract class Field : Cloneable + public abstract class Field : Cloneable, IField { private readonly long fieldId; private readonly Partitioning partitioning; diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldProperties.cs index 606f90b3a..35da7cf8b 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/FieldProperties.cs @@ -19,6 +19,8 @@ namespace Squidex.Domain.Apps.Core.Schemas public abstract T Accept(IFieldPropertiesVisitor visitor); + public abstract T Accept(IFieldVisitor visitor, IField field); + public abstract Field CreateField(long id, string name, Partitioning partitioning); } } \ No newline at end of file diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/Fields.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/Fields.cs new file mode 100644 index 000000000..a74402b24 --- /dev/null +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/Fields.cs @@ -0,0 +1,102 @@ +// ========================================================================== +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex UG (haftungsbeschraenkt) +// All rights reserved. Licensed under the MIT license. +// ========================================================================== + +namespace Squidex.Domain.Apps.Core.Schemas +{ + public static class Fields + { + public static Field Assets(long id, string name, Partitioning partitioning, AssetsFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new AssetsFieldProperties()); + } + + public static Field Boolean(long id, string name, Partitioning partitioning, BooleanFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new BooleanFieldProperties()); + } + + public static Field DateTime(long id, string name, Partitioning partitioning, DateTimeFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new DateTimeFieldProperties()); + } + + public static Field Geolocation(long id, string name, Partitioning partitioning, GeolocationFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new GeolocationFieldProperties()); + } + + public static Field Json(long id, string name, Partitioning partitioning, JsonFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new JsonFieldProperties()); + } + + public static Field Number(long id, string name, Partitioning partitioning, NumberFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new NumberFieldProperties()); + } + + public static Field References(long id, string name, Partitioning partitioning, ReferencesFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new ReferencesFieldProperties()); + } + + public static Field String(long id, string name, Partitioning partitioning, StringFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new StringFieldProperties()); + } + + public static Field Tags(long id, string name, Partitioning partitioning, TagsFieldProperties properties = null) + { + return new Field(id, name, partitioning, properties ?? new TagsFieldProperties()); + } + + public static Schema AddAssets(this Schema schema, long id, string name, Partitioning partitioning, AssetsFieldProperties properties = null) + { + return schema.AddField(Assets(id, name, partitioning, properties)); + } + + public static Schema AddBoolean(this Schema schema, long id, string name, Partitioning partitioning, BooleanFieldProperties properties = null) + { + return schema.AddField(Boolean(id, name, partitioning, properties)); + } + + public static Schema AddDateTime(this Schema schema, long id, string name, Partitioning partitioning, DateTimeFieldProperties properties = null) + { + return schema.AddField(DateTime(id, name, partitioning, properties)); + } + + public static Schema AddGeolocation(this Schema schema, long id, string name, Partitioning partitioning, GeolocationFieldProperties properties = null) + { + return schema.AddField(Geolocation(id, name, partitioning, properties)); + } + + public static Schema AddJson(this Schema schema, long id, string name, Partitioning partitioning, JsonFieldProperties properties = null) + { + return schema.AddField(Json(id, name, partitioning, properties)); + } + + public static Schema AddNumber(this Schema schema, long id, string name, Partitioning partitioning, NumberFieldProperties properties = null) + { + return schema.AddField(Number(id, name, partitioning, properties)); + } + + public static Schema AddReferences(this Schema schema, long id, string name, Partitioning partitioning, ReferencesFieldProperties properties = null) + { + return schema.AddField(References(id, name, partitioning, properties)); + } + + public static Schema AddString(this Schema schema, long id, string name, Partitioning partitioning, StringFieldProperties properties = null) + { + return schema.AddField(String(id, name, partitioning, properties)); + } + + public static Schema AddTags(this Schema schema, long id, string name, Partitioning partitioning, TagsFieldProperties properties = null) + { + return schema.AddField(Tags(id, name, partitioning, properties)); + } + } +} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/Field{T}.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/Field{T}.cs index adfb366a1..b32425c4d 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/Field{T}.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/Field{T}.cs @@ -11,7 +11,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - public abstract class Field : Field where T : FieldProperties, new() + public sealed class Field : Field where T : FieldProperties, new() { private T properties; @@ -25,7 +25,7 @@ namespace Squidex.Domain.Apps.Core.Schemas get { return properties; } } - protected Field(long id, string name, Partitioning partitioning, T properties) + public Field(long id, string name, Partitioning partitioning, T properties) : base(id, name, partitioning) { Guard.NotNull(properties, nameof(properties)); @@ -57,5 +57,10 @@ namespace Squidex.Domain.Apps.Core.Schemas return typedProperties; } + + public override TResult Accept(IFieldVisitor visitor) + { + return RawProperties.Accept(visitor, this); + } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationField.cs deleted file mode 100644 index 078c6e18f..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class GeolocationField : Field - { - public GeolocationField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new GeolocationFieldProperties()) - { - } - - public GeolocationField(long id, string name, Partitioning partitioning, GeolocationFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationFieldProperties.cs index 4cc7b239b..d5a48136c 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/GeolocationFieldProperties.cs @@ -9,7 +9,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(GeolocationField))] + [TypeName("GeolocationField")] public sealed class GeolocationFieldProperties : FieldProperties { public GeolocationFieldEditor Editor { get; set; } @@ -19,9 +19,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new GeolocationField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/IField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/IField.cs new file mode 100644 index 000000000..552a24eda --- /dev/null +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/IField.cs @@ -0,0 +1,26 @@ +// ========================================================================== +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex UG (haftungsbeschraenkt) +// All rights reserved. Licensed under the MIT license. +// ========================================================================== + +namespace Squidex.Domain.Apps.Core.Schemas +{ + public interface IField + { + long Id { get; } + + string Name { get; } + + bool IsDisabled { get; } + + bool IsHidden { get; } + + bool IsLocked { get; } + + FieldProperties RawProperties { get; } + + T Accept(IFieldVisitor visitor); + } +} \ No newline at end of file diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/IFieldVisitor.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/IFieldVisitor.cs index fd4ce2589..3bfad913a 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/IFieldVisitor.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/IFieldVisitor.cs @@ -9,22 +9,22 @@ namespace Squidex.Domain.Apps.Core.Schemas { public interface IFieldVisitor { - T Visit(AssetsField field); + T Visit(IField field); - T Visit(BooleanField field); + T Visit(IField field); - T Visit(DateTimeField field); + T Visit(IField field); - T Visit(GeolocationField field); + T Visit(IField field); - T Visit(JsonField field); + T Visit(IField field); - T Visit(NumberField field); + T Visit(IField field); - T Visit(ReferencesField field); + T Visit(IField field); - T Visit(StringField field); + T Visit(IField field); - T Visit(TagsField field); + T Visit(IField field); } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/IField{T}.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/IField{T}.cs new file mode 100644 index 000000000..07d387456 --- /dev/null +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/IField{T}.cs @@ -0,0 +1,14 @@ +// ========================================================================== +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex UG (haftungsbeschraenkt) +// All rights reserved. Licensed under the MIT license. +// ========================================================================== + +namespace Squidex.Domain.Apps.Core.Schemas +{ + public interface IField : IField + { + T Properties { get; } + } +} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonField.cs deleted file mode 100644 index 9651d6ac0..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class JsonField : Field - { - public JsonField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new JsonFieldProperties()) - { - } - - public JsonField(long id, string name, Partitioning partitioning, JsonFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonFieldProperties.cs index 25f4beb18..b0801ef60 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/JsonFieldProperties.cs @@ -9,7 +9,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(JsonField))] + [TypeName("JsonField")] public sealed class JsonFieldProperties : FieldProperties { public override T Accept(IFieldPropertiesVisitor visitor) @@ -17,9 +17,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new JsonField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberField.cs deleted file mode 100644 index 791698441..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class NumberField : Field - { - public NumberField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new NumberFieldProperties()) - { - } - - public NumberField(long id, string name, Partitioning partitioning, NumberFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberFieldProperties.cs index 5732601a9..4f08f1972 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/NumberFieldProperties.cs @@ -10,7 +10,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(NumberField))] + [TypeName("NumberField")] public sealed class NumberFieldProperties : FieldProperties { public ImmutableList AllowedValues { get; set; } @@ -30,9 +30,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new NumberField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesField.cs deleted file mode 100644 index 51ba26839..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class ReferencesField : Field - { - public ReferencesField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new ReferencesFieldProperties()) - { - } - - public ReferencesField(long id, string name, Partitioning partitioning, ReferencesFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs index cc3740bda..2bb64e682 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/ReferencesFieldProperties.cs @@ -10,7 +10,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(ReferencesField))] + [TypeName("ReferencesField")] public sealed class ReferencesFieldProperties : FieldProperties { public int? MinItems { get; set; } @@ -24,9 +24,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new ReferencesField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/StringField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/StringField.cs deleted file mode 100644 index 533d88601..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/StringField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class StringField : Field - { - public StringField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new StringFieldProperties()) - { - } - - public StringField(long id, string name, Partitioning partitioning, StringFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/StringFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/StringFieldProperties.cs index df46bdf6d..288e36bf5 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/StringFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/StringFieldProperties.cs @@ -10,7 +10,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(StringField))] + [TypeName("StringField")] public sealed class StringFieldProperties : FieldProperties { public ImmutableList AllowedValues { get; set; } @@ -34,9 +34,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new StringField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsField.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsField.cs deleted file mode 100644 index 5a792760f..000000000 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsField.cs +++ /dev/null @@ -1,27 +0,0 @@ -// ========================================================================== -// Squidex Headless CMS -// ========================================================================== -// Copyright (c) Squidex UG (haftungsbeschränkt) -// All rights reserved. Licensed under the MIT license. -// ========================================================================== - -namespace Squidex.Domain.Apps.Core.Schemas -{ - public sealed class TagsField : Field - { - public TagsField(long id, string name, Partitioning partitioning) - : base(id, name, partitioning, new TagsFieldProperties()) - { - } - - public TagsField(long id, string name, Partitioning partitioning, TagsFieldProperties properties) - : base(id, name, partitioning, properties) - { - } - - public override T Accept(IFieldVisitor visitor) - { - return visitor.Visit(this); - } - } -} diff --git a/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsFieldProperties.cs b/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsFieldProperties.cs index a87e2fd44..61f3298a2 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsFieldProperties.cs +++ b/src/Squidex.Domain.Apps.Core.Model/Schemas/TagsFieldProperties.cs @@ -9,7 +9,7 @@ using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Schemas { - [TypeName(nameof(TagsField))] + [TypeName("TagsField")] public sealed class TagsFieldProperties : FieldProperties { public int? MinItems { get; set; } @@ -21,9 +21,14 @@ namespace Squidex.Domain.Apps.Core.Schemas return visitor.Visit(this); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return visitor.Visit((IField)field); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { - return new TagsField(id, name, partitioning, this); + return new Field(id, name, partitioning, this); } } } diff --git a/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs b/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs index 944d6c579..b842ef7a0 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs @@ -208,7 +208,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent { return (data, field) => { - if (field is JsonField) + if (field is IField) { var result = new ContentFieldData(); @@ -237,7 +237,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent { return (data, field) => { - if (field is JsonField) + if (field is IField) { var result = new ContentFieldData(); diff --git a/src/Squidex.Domain.Apps.Core.Operations/EnrichContent/ContentEnricher.cs b/src/Squidex.Domain.Apps.Core.Operations/EnrichContent/ContentEnricher.cs index 540e5f43d..ab618c783 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/EnrichContent/ContentEnricher.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/EnrichContent/ContentEnricher.cs @@ -69,9 +69,9 @@ namespace Squidex.Domain.Apps.Core.EnrichContent } } - private static bool ShouldApplyDefaultValue(Field field, JToken value) + private static bool ShouldApplyDefaultValue(IField field, JToken value) { - return value.IsNull() || (field is StringField && value is JValue jValue && Equals(jValue.Value, string.Empty)); + return value.IsNull() || (field is IField && value is JValue jValue && Equals(jValue.Value, string.Empty)); } } } diff --git a/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesCleaner.cs b/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesCleaner.cs index e45771ea8..54f1e95fa 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesCleaner.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesCleaner.cs @@ -18,16 +18,16 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds { private static readonly List EmptyIds = new List(); - public static JToken CleanReferences(this Field field, JToken value, ISet oldReferences) + public static JToken CleanReferences(this IField field, JToken value, ISet oldReferences) { - if ((field is AssetsField || field is ReferencesField) && !value.IsNull()) + if ((field is IField || field is IField) && !value.IsNull()) { switch (field) { - case AssetsField assetsField: + case IField assetsField: return Visit(assetsField, value, oldReferences); - case ReferencesField referencesField: + case IField referencesField: return Visit(referencesField, value, oldReferences); } } @@ -35,7 +35,7 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds return value; } - private static JToken Visit(AssetsField field, JToken value, IEnumerable oldReferences) + private static JToken Visit(IField field, JToken value, IEnumerable oldReferences) { var oldIds = GetIds(value); var newIds = oldIds.Except(oldReferences).ToList(); @@ -43,7 +43,7 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds return oldIds.Count != newIds.Count ? JToken.FromObject(newIds) : value; } - private static JToken Visit(ReferencesField field, JToken value, ICollection oldReferences) + private static JToken Visit(IField field, JToken value, ICollection oldReferences) { if (oldReferences.Contains(field.Properties.SchemaId)) { diff --git a/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs b/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs index 1bef60ef3..216172bc0 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ReferencesExtractor.cs @@ -15,21 +15,21 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds { public static class ReferencesExtractor { - public static IEnumerable ExtractReferences(this Field field, JToken value) + public static IEnumerable ExtractReferences(this IField field, JToken value) { switch (field) { - case AssetsField assetsField: + case IField assetsField: return Visit(assetsField, value); - case ReferencesField referencesField: + case IField referencesField: return Visit(referencesField, value); } return Enumerable.Empty(); } - public static IEnumerable Visit(AssetsField field, JToken value) + public static IEnumerable Visit(IField field, JToken value) { IEnumerable result; try @@ -44,7 +44,7 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds return result ?? Enumerable.Empty(); } - private static IEnumerable Visit(ReferencesField field, JToken value) + private static IEnumerable Visit(IField field, JToken value) { IEnumerable result; try diff --git a/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs b/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs index 30f6d3e98..83d3b1a47 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/GenerateEdmSchema/EdmTypeVisitor.cs @@ -18,57 +18,57 @@ namespace Squidex.Domain.Apps.Core.GenerateEdmSchema { } - public static IEdmTypeReference CreateEdmType(Field field) + public static IEdmTypeReference CreateEdmType(IField field) { return field.Accept(Instance); } - public IEdmTypeReference Visit(AssetsField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.String, field); } - public IEdmTypeReference Visit(BooleanField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.Boolean, field); } - public IEdmTypeReference Visit(DateTimeField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.DateTimeOffset, field); } - public IEdmTypeReference Visit(GeolocationField field) + public IEdmTypeReference Visit(IField field) { return null; } - public IEdmTypeReference Visit(JsonField field) + public IEdmTypeReference Visit(IField field) { return null; } - public IEdmTypeReference Visit(NumberField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.Double, field); } - public IEdmTypeReference Visit(ReferencesField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.String, field); } - public IEdmTypeReference Visit(StringField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.String, field); } - public IEdmTypeReference Visit(TagsField field) + public IEdmTypeReference Visit(IField field) { return CreatePrimitive(EdmPrimitiveTypeKind.String, field); } - private static IEdmTypeReference CreatePrimitive(EdmPrimitiveTypeKind kind, Field field) + private static IEdmTypeReference CreatePrimitive(EdmPrimitiveTypeKind kind, IField field) { return EdmCoreModel.Instance.GetPrimitive(kind, !field.RawProperties.IsRequired); } diff --git a/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/JsonTypeVisitor.cs b/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/JsonTypeVisitor.cs index 06c5095b5..baff80ccb 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/JsonTypeVisitor.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/GenerateJsonSchema/JsonTypeVisitor.cs @@ -21,7 +21,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema this.schemaResolver = schemaResolver; } - public JsonProperty Visit(AssetsField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -32,7 +32,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(BooleanField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -40,7 +40,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(DateTimeField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -49,7 +49,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(GeolocationField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -81,7 +81,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(JsonField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -89,7 +89,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(NumberField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -107,7 +107,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(ReferencesField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -118,7 +118,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(StringField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -139,7 +139,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - public JsonProperty Visit(TagsField field) + public JsonProperty Visit(IField field) { return CreateProperty(field, jsonProperty => { @@ -150,7 +150,7 @@ namespace Squidex.Domain.Apps.Core.GenerateJsonSchema }); } - private static JsonProperty CreateProperty(Field field, Action updater) + private static JsonProperty CreateProperty(IField field, Action updater) { var property = new JsonProperty { IsRequired = field.RawProperties.IsRequired }; diff --git a/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/JsonValueConverter.cs b/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/JsonValueConverter.cs index 54475f433..9de8f0716 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/JsonValueConverter.cs +++ b/src/Squidex.Domain.Apps.Core.Operations/ValidateContent/JsonValueConverter.cs @@ -23,22 +23,22 @@ namespace Squidex.Domain.Apps.Core.ValidateContent Value = value; } - public static object ConvertValue(Field field, JToken json) + public static object ConvertValue(IField field, JToken json) { return field.Accept(new JsonValueConverter(json)); } - public object Visit(AssetsField field) + public object Visit(IField field) { return Value.ToObject>(); } - public object Visit(BooleanField field) + public object Visit(IField field) { return (bool?)Value; } - public object Visit(DateTimeField field) + public object Visit(IField field) { if (Value.Type == JTokenType.String) { @@ -55,7 +55,7 @@ namespace Squidex.Domain.Apps.Core.ValidateContent throw new InvalidCastException("Invalid json type, expected string."); } - public object Visit(GeolocationField field) + public object Visit(IField field) { var geolocation = (JObject)Value; @@ -84,27 +84,27 @@ namespace Squidex.Domain.Apps.Core.ValidateContent return Value; } - public object Visit(JsonField field) + public object Visit(IField field) { return Value; } - public object Visit(NumberField field) + public object Visit(IField field) { return (double?)Value; } - public object Visit(ReferencesField field) + public object Visit(IField field) { return Value.ToObject>(); } - public object Visit(StringField field) + public object Visit(IField field) { return Value.ToString(); } - public object Visit(TagsField field) + public object Visit(IField field) { return Value.ToObject>(); } diff --git a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs index 03ceeec54..186c63e18 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/GraphQLModel.cs @@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { public sealed class GraphQLModel : IGraphModel { - private readonly Dictionary> fieldInfos; + private readonly Dictionary> fieldInfos; private readonly Dictionary inputFieldInfos; private readonly Dictionary contentTypes = new Dictionary(); private readonly Dictionary contentDataTypes = new Dictionary(); @@ -53,75 +53,75 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL inputFieldInfos = new Dictionary { { - typeof(StringField), + typeof(StringFieldProperties), AllTypes.String }, { - typeof(BooleanField), + typeof(BooleanFieldProperties), AllTypes.Boolean }, { - typeof(NumberField), + typeof(NumberFieldProperties), AllTypes.Boolean }, { - typeof(DateTimeField), + typeof(DateTimeFieldProperties), AllTypes.Date }, { - typeof(GeolocationField), + typeof(GeolocationFieldProperties), AllTypes.GeolocationInput }, { - typeof(TagsField), + typeof(TagsFieldProperties), AllTypes.ListOfNonNullString }, { - typeof(AssetsField), + typeof(AssetsFieldProperties), AllTypes.ListOfNonNullGuid }, { - typeof(ReferencesField), + typeof(ReferencesFieldProperties), AllTypes.ListOfNonNullGuid } }; - fieldInfos = new Dictionary> + fieldInfos = new Dictionary> { { - typeof(StringField), + typeof(StringFieldProperties), field => ResolveDefault(AllTypes.NoopString) }, { - typeof(BooleanField), + typeof(BooleanFieldProperties), field => ResolveDefault(AllTypes.NoopBoolean) }, { - typeof(NumberField), + typeof(NumberFieldProperties), field => ResolveDefault(AllTypes.NoopFloat) }, { - typeof(DateTimeField), + typeof(DateTimeFieldProperties), field => ResolveDefault(AllTypes.NoopDate) }, { - typeof(JsonField), + typeof(JsonFieldProperties), field => ResolveDefault(AllTypes.NoopJson) }, { - typeof(GeolocationField), + typeof(GeolocationFieldProperties), field => ResolveDefault(AllTypes.NoopGeolocation) }, { - typeof(TagsField), + typeof(TagsFieldProperties), field => ResolveDefault(AllTypes.NoopTags) }, { - typeof(AssetsField), + typeof(AssetsFieldProperties), field => ResolveAssets(assetListType) }, { - typeof(ReferencesField), + typeof(ReferencesFieldProperties), field => ResolveReferences(field) } }; @@ -210,9 +210,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL return (assetListType, resolver); } - private ValueTuple ResolveReferences(Field field) + private ValueTuple ResolveReferences(IField field) { - var schemaId = ((ReferencesField)field).Properties.SchemaId; + var schemaId = ((ReferencesFieldProperties)field.RawProperties).SchemaId; var contentType = GetContentType(schemaId); @@ -260,9 +260,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL return assetType; } - public (IGraphType ResolveType, IFieldResolver Resolver) GetGraphType(Field field) + public (IGraphType ResolveType, IFieldResolver Resolver) GetGraphType(IField field) { - return fieldInfos[field.GetType()](field); + return fieldInfos[field.RawProperties.GetType()](field); } public IComplexGraphType GetContentDataType(Guid schemaId) @@ -289,9 +289,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL return contentTypes.GetOrAdd(schema, s => new ContentGraphType()); } - public IGraphType GetInputGraphType(Field field) + public IGraphType GetInputGraphType(IField field) { - return inputFieldInfos.GetOrAddDefault(field.GetType()); + return inputFieldInfos.GetOrAddDefault(field.RawProperties.GetType()); } } } diff --git a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/IGraphModel.cs b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/IGraphModel.cs index 29834fa71..7f7330cb9 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/IGraphModel.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/IGraphModel.cs @@ -34,8 +34,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL IFieldResolver ResolveContentUrl(ISchemaEntity schema); - IGraphType GetInputGraphType(Field field); + IGraphType GetInputGraphType(IField field); - (IGraphType ResolveType, IFieldResolver Resolver) GetGraphType(Field field); + (IGraphType ResolveType, IFieldResolver Resolver) GetGraphType(IField field); } } diff --git a/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs b/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs index 2c1c0ceea..b8754a86b 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/QueryContext.cs @@ -10,7 +10,6 @@ using System.Collections.Generic; using System.Security.Claims; using Squidex.Domain.Apps.Entities.Apps; using Squidex.Infrastructure; -using Squidex.Infrastructure.Reflection; using Squidex.Infrastructure.Security; namespace Squidex.Domain.Apps.Entities.Contents diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldRegistryTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldRegistryTests.cs index a3c881b93..95a56d739 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldRegistryTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/FieldRegistryTests.cs @@ -23,6 +23,11 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas return default(T); } + public override T Accept(IFieldVisitor visitor, IField field) + { + return default(T); + } + public override Field CreateField(long id, string name, Partitioning partitioning) { return null; @@ -36,41 +41,22 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas } [Theory] - [InlineData( - typeof(AssetsFieldProperties), - typeof(AssetsField))] - [InlineData( - typeof(BooleanFieldProperties), - typeof(BooleanField))] - [InlineData( - typeof(DateTimeFieldProperties), - typeof(DateTimeField))] - [InlineData( - typeof(GeolocationFieldProperties), - typeof(GeolocationField))] - [InlineData( - typeof(JsonFieldProperties), - typeof(JsonField))] - [InlineData( - typeof(NumberFieldProperties), - typeof(NumberField))] - [InlineData( - typeof(ReferencesFieldProperties), - typeof(ReferencesField))] - [InlineData( - typeof(StringFieldProperties), - typeof(StringField))] - [InlineData( - typeof(TagsFieldProperties), - typeof(TagsField))] - public void Should_create_field_by_properties(Type propertyType, Type fieldType) + [InlineData(typeof(AssetsFieldProperties))] + [InlineData(typeof(BooleanFieldProperties))] + [InlineData(typeof(DateTimeFieldProperties))] + [InlineData(typeof(GeolocationFieldProperties))] + [InlineData(typeof(JsonFieldProperties))] + [InlineData(typeof(NumberFieldProperties))] + [InlineData(typeof(ReferencesFieldProperties))] + [InlineData(typeof(StringFieldProperties))] + [InlineData(typeof(TagsFieldProperties))] + public void Should_create_field_by_properties(Type propertyType) { var properties = (FieldProperties)Activator.CreateInstance(propertyType); var field = sut.CreateField(1, "name", Partitioning.Invariant, properties); Assert.Equal(properties, field.RawProperties); - Assert.Equal(fieldType, field.GetType()); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaFieldTests.cs index 4360b5673..2878a87e0 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaFieldTests.cs @@ -24,7 +24,7 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas .Select(x => new object[] { x }) .ToList(); - private readonly NumberField field_0 = new NumberField(1, "my-field", Partitioning.Invariant); + private readonly Field field_0 = Fields.Number(1, "my-field", Partitioning.Invariant); [Fact] public void Should_instantiate_field() @@ -36,7 +36,7 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas [Fact] public void Should_throw_exception_if_creating_field_with_invalid_name() { - Assert.Throws(() => new NumberField(1, string.Empty, Partitioning.Invariant)); + Assert.Throws(() => Fields.Number(1, string.Empty, Partitioning.Invariant)); } [Fact] diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs index ef38ea0c5..cd267b57e 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Model/Schemas/SchemaTests.cs @@ -62,7 +62,7 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas { var schema_1 = schema_0.AddField(CreateField(1)); - Assert.Throws(() => schema_1.AddField(new NumberField(2, "my-field-1", Partitioning.Invariant))); + Assert.Throws(() => schema_1.AddNumber(2, "my-field-1", Partitioning.Invariant)); } [Fact] @@ -70,7 +70,7 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas { var schema_1 = schema_0.AddField(CreateField(1)); - Assert.Throws(() => schema_1.AddField(new NumberField(1, "my-field-2", Partitioning.Invariant))); + Assert.Throws(() => schema_1.AddNumber(1, "my-field-2", Partitioning.Invariant)); } [Fact] @@ -287,9 +287,9 @@ namespace Squidex.Domain.Apps.Core.Model.Schemas schemaTarget.ShouldBeEquivalentTo(schemaSource); } - private static NumberField CreateField(int id) + private static Field CreateField(int id) { - return new NumberField(id, $"my-field-{id}", Partitioning.Invariant); + return Fields.Number(id, $"my-field-{id}", Partitioning.Invariant); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionFlatTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionFlatTests.cs index eaab86267..ecd72adef 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionFlatTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionFlatTests.cs @@ -27,12 +27,12 @@ namespace Squidex.Domain.Apps.Core.Operations.ConvertContent { schema = new Schema("my-schema") - .AddField(new NumberField(1, "field1", Partitioning.Language)) - .AddField(new NumberField(2, "field2", Partitioning.Invariant)) - .AddField(new NumberField(3, "field3", Partitioning.Invariant)) - .AddField(new AssetsField(5, "assets1", Partitioning.Invariant)) - .AddField(new AssetsField(6, "assets2", Partitioning.Invariant)) - .AddField(new JsonField(4, "json", Partitioning.Language)) + .AddNumber(1, "field1", Partitioning.Language) + .AddNumber(2, "field2", Partitioning.Invariant) + .AddNumber(3, "field3", Partitioning.Invariant) + .AddAssets(5, "assets1", Partitioning.Invariant) + .AddAssets(6, "assets2", Partitioning.Invariant) + .AddJson(4, "json", Partitioning.Language) .HideField(3); } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionTests.cs index ffd21cdc0..c6631888c 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ContentConversionTests.cs @@ -20,12 +20,12 @@ namespace Squidex.Domain.Apps.Core.Operations.ConvertContent { schema = new Schema("my-schema") - .AddField(new NumberField(1, "field1", Partitioning.Language)) - .AddField(new NumberField(2, "field2", Partitioning.Invariant)) - .AddField(new NumberField(3, "field3", Partitioning.Invariant)) - .AddField(new AssetsField(5, "assets1", Partitioning.Invariant)) - .AddField(new AssetsField(6, "assets2", Partitioning.Invariant)) - .AddField(new JsonField(4, "json", Partitioning.Language)) + .AddNumber(1, "field1", Partitioning.Language) + .AddNumber(2, "field2", Partitioning.Invariant) + .AddNumber(3, "field3", Partitioning.Invariant) + .AddAssets(5, "assets1", Partitioning.Invariant) + .AddAssets(6, "assets2", Partitioning.Invariant) + .AddJson(4, "json", Partitioning.Language) .HideField(3); } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs index bbdf26965..75413bf6a 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs @@ -19,9 +19,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ConvertContent public class FieldConvertersTests { private readonly LanguagesConfig languagesConfig = LanguagesConfig.Build(Language.EN, Language.DE); - private readonly StringField stringLanguageField = new StringField(1, "1", Partitioning.Language); - private readonly StringField stringInvariantField = new StringField(1, "1", Partitioning.Invariant); - private readonly NumberField numberField = new NumberField(1, "1", Partitioning.Invariant); + private readonly Field stringLanguageField = Fields.String(1, "1", Partitioning.Language); + private readonly Field stringInvariantField = Fields.String(1, "1", Partitioning.Invariant); + private readonly Field numberField = Fields.Number(1, "1", Partitioning.Invariant); [Fact] public void Should_encode_json_values() @@ -31,7 +31,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ConvertContent .AddValue("en", null) .AddValue("de", JToken.FromObject(new { Value = 1 })); - var result = FieldConverters.EncodeJson()(source, new JsonField(1, "1", Partitioning.Invariant)); + var result = FieldConverters.EncodeJson()(source, Fields.Json(1, "1", Partitioning.Invariant)); Assert.Null(result["en"]); Assert.True(result["de"].Type == JTokenType.String); @@ -57,7 +57,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ConvertContent .AddValue("en", null) .AddValue("de", "e30="); - var result = FieldConverters.DecodeJson()(source, new JsonField(1, "1", Partitioning.Invariant)); + var result = FieldConverters.DecodeJson()(source, Fields.Json(1, "1", Partitioning.Invariant)); Assert.Null(result["en"]); Assert.True(result["de"] is JObject); diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/EnrichContent/ContentEnrichmentTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/EnrichContent/ContentEnrichmentTests.cs index dafcf93c1..8c35f5e19 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/EnrichContent/ContentEnrichmentTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/EnrichContent/ContentEnrichmentTests.cs @@ -29,14 +29,14 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent { schema = new Schema("my-schema") - .AddField(new StringField(1, "my-string", Partitioning.Language, - new StringFieldProperties { DefaultValue = "en-string" })) - .AddField(new NumberField(2, "my-number", Partitioning.Invariant, - new NumberFieldProperties())) - .AddField(new DateTimeField(3, "my-datetime", Partitioning.Invariant, - new DateTimeFieldProperties { DefaultValue = Now })) - .AddField(new BooleanField(4, "my-boolean", Partitioning.Invariant, - new BooleanFieldProperties { DefaultValue = true })); + .AddString(1, "my-string", Partitioning.Language, + new StringFieldProperties { DefaultValue = "en-string" }) + .AddNumber(2, "my-number", Partitioning.Invariant, + new NumberFieldProperties()) + .AddDateTime(3, "my-datetime", Partitioning.Invariant, + new DateTimeFieldProperties { DefaultValue = Now }) + .AddBoolean(4, "my-boolean", Partitioning.Invariant, + new BooleanFieldProperties { DefaultValue = true }); } [Fact] @@ -85,7 +85,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_assets_field() { var field = - new AssetsField(1, "1", Partitioning.Invariant, + Fields.Assets(1, "1", Partitioning.Invariant, new AssetsFieldProperties()); Assert.Equal(new JArray(), DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -95,7 +95,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_boolean_field() { var field = - new BooleanField(1, "1", Partitioning.Invariant, + Fields.Boolean(1, "1", Partitioning.Invariant, new BooleanFieldProperties { DefaultValue = true }); Assert.Equal(true, DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -105,7 +105,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_datetime_field() { var field = - new DateTimeField(1, "1", Partitioning.Invariant, + Fields.DateTime(1, "1", Partitioning.Invariant, new DateTimeFieldProperties { DefaultValue = FutureDays(15) }); Assert.Equal(FutureDays(15).ToString(), DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -115,7 +115,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_datetime_field_when_set_to_today() { var field = - new DateTimeField(1, "1", Partitioning.Invariant, + Fields.DateTime(1, "1", Partitioning.Invariant, new DateTimeFieldProperties { CalculatedDefaultValue = DateTimeCalculatedDefaultValue.Today }); Assert.Equal("2017-10-12", DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -125,7 +125,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_datetime_field_when_set_to_now() { var field = - new DateTimeField(1, "1", Partitioning.Invariant, + Fields.DateTime(1, "1", Partitioning.Invariant, new DateTimeFieldProperties { CalculatedDefaultValue = DateTimeCalculatedDefaultValue.Now }); Assert.Equal("2017-10-12T16:30:10Z", DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -135,7 +135,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_json_field() { var field = - new JsonField(1, "1", Partitioning.Invariant, + Fields.Json(1, "1", Partitioning.Invariant, new JsonFieldProperties()); Assert.Equal(new JObject(), DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -145,7 +145,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_geolocation_field() { var field = - new GeolocationField(1, "1", Partitioning.Invariant, + Fields.Geolocation(1, "1", Partitioning.Invariant, new GeolocationFieldProperties()); Assert.Equal(JValue.CreateNull(), DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -155,7 +155,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_number_field() { var field = - new NumberField(1, "1", Partitioning.Invariant, + Fields.Number(1, "1", Partitioning.Invariant, new NumberFieldProperties { DefaultValue = 12 }); Assert.Equal(12, DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -165,7 +165,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_references_field() { var field = - new ReferencesField(1, "1", Partitioning.Invariant, + Fields.References(1, "1", Partitioning.Invariant, new ReferencesFieldProperties()); Assert.Equal(new JArray(), DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -175,7 +175,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_string_field() { var field = - new StringField(1, "1", Partitioning.Invariant, + Fields.String(1, "1", Partitioning.Invariant, new StringFieldProperties { DefaultValue = "default" }); Assert.Equal("default", DefaultValueFactory.CreateDefaultValue(field, Now)); @@ -185,7 +185,7 @@ namespace Squidex.Domain.Apps.Core.Operations.EnrichContent public void Should_get_default_value_from_tags_field() { var field = - new TagsField(1, "1", Partitioning.Invariant, + Fields.Tags(1, "1", Partitioning.Invariant, new TagsFieldProperties()); Assert.Equal(new JArray(), DefaultValueFactory.CreateDefaultValue(field, Now)); diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs index 4df64854a..43d2c5522 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ExtractReferenceIds/ReferenceExtractionTests.cs @@ -31,12 +31,12 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds { schema = new Schema("my-schema") - .AddField(new NumberField(1, "field1", Partitioning.Language)) - .AddField(new NumberField(2, "field2", Partitioning.Invariant)) - .AddField(new NumberField(3, "field3", Partitioning.Invariant)) - .AddField(new AssetsField(5, "assets1", Partitioning.Invariant)) - .AddField(new AssetsField(6, "assets2", Partitioning.Invariant)) - .AddField(new JsonField(4, "json", Partitioning.Language)) + .AddNumber(1, "field1", Partitioning.Language) + .AddNumber(2, "field2", Partitioning.Invariant) + .AddNumber(3, "field3", Partitioning.Invariant) + .AddAssets(5, "assets1", Partitioning.Invariant) + .AddAssets(6, "assets2", Partitioning.Invariant) + .AddJson(4, "json", Partitioning.Language) .HideField(3); } @@ -83,7 +83,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new AssetsField(1, "my-asset", Partitioning.Invariant); + var sut = Fields.Assets(1, "my-asset", Partitioning.Invariant); var result = sut.ExtractReferences(CreateValue(id1, id2)).ToArray(); @@ -93,7 +93,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_empty_list_from_assets_field_for_referenced_ids_when_null() { - var sut = new AssetsField(1, "my-asset", Partitioning.Invariant); + var sut = Fields.Assets(1, "my-asset", Partitioning.Invariant); var result = sut.ExtractReferences(null).ToArray(); @@ -103,7 +103,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_empty_list_from_assets_field_for_referenced_ids_when_other_type() { - var sut = new AssetsField(1, "my-asset", Partitioning.Invariant); + var sut = Fields.Assets(1, "my-asset", Partitioning.Invariant); var result = sut.ExtractReferences("invalid").ToArray(); @@ -113,7 +113,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_empty_list_from_non_references_field() { - var sut = new StringField(1, "my-string", Partitioning.Invariant); + var sut = Fields.String(1, "my-string", Partitioning.Invariant); var result = sut.ExtractReferences("invalid").ToArray(); @@ -123,7 +123,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_return_null_from_assets_field_when_removing_references_from_null_array() { - var sut = new AssetsField(1, "my-asset", Partitioning.Invariant); + var sut = Fields.Assets(1, "my-asset", Partitioning.Invariant); var result = sut.CleanReferences(null, null); @@ -136,7 +136,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new AssetsField(1, "my-asset", Partitioning.Invariant); + var sut = Fields.Assets(1, "my-asset", Partitioning.Invariant); var result = sut.CleanReferences(CreateValue(id1, id2), new HashSet(new[] { id2 })); @@ -149,7 +149,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new AssetsField(1, "my-asset", Partitioning.Invariant); + var sut = Fields.Assets(1, "my-asset", Partitioning.Invariant); var token = CreateValue(id1, id2); var result = sut.CleanReferences(token, new HashSet(new[] { Guid.NewGuid() })); @@ -163,7 +163,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant, + var sut = Fields.References(1, "my-refs", Partitioning.Invariant, new ReferencesFieldProperties { SchemaId = schemaId }); var result = sut.ExtractReferences(CreateValue(id1, id2)).ToArray(); @@ -174,7 +174,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_return_list_from_references_field_with_schema_id_list_for_referenced_ids_when_null() { - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant, + var sut = Fields.References(1, "my-refs", Partitioning.Invariant, new ReferencesFieldProperties { SchemaId = schemaId }); var result = sut.ExtractReferences(null).ToArray(); @@ -185,7 +185,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_return_list_from_references_field_with_schema_id_for_referenced_ids_when_other_type() { - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant, + var sut = Fields.References(1, "my-refs", Partitioning.Invariant, new ReferencesFieldProperties { SchemaId = schemaId }); var result = sut.ExtractReferences("invalid").ToArray(); @@ -196,7 +196,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds [Fact] public void Should_return_null_from_references_field_when_removing_references_from_null_array() { - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant); + var sut = Fields.References(1, "my-refs", Partitioning.Invariant); var result = sut.CleanReferences(null, null); @@ -209,7 +209,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant, + var sut = Fields.References(1, "my-refs", Partitioning.Invariant, new ReferencesFieldProperties { SchemaId = schemaId }); var result = sut.CleanReferences(CreateValue(id1, id2), new HashSet(new[] { id2 })); @@ -223,7 +223,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant, + var sut = Fields.References(1, "my-refs", Partitioning.Invariant, new ReferencesFieldProperties { SchemaId = schemaId }); var result = sut.CleanReferences(CreateValue(id1, id2), new HashSet(new[] { schemaId })); @@ -237,7 +237,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ExtractReferenceIds var id1 = Guid.NewGuid(); var id2 = Guid.NewGuid(); - var sut = new ReferencesField(1, "my-refs", Partitioning.Invariant); + var sut = Fields.References(1, "my-refs", Partitioning.Invariant); var token = CreateValue(id1, id2); var result = sut.CleanReferences(token, new HashSet(new[] { Guid.NewGuid() })); diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/AssetsFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/AssetsFieldTests.cs index d5d302839..2e3794ac8 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/AssetsFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/AssetsFieldTests.cs @@ -268,9 +268,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return ids == null ? JValue.CreateNull() : (JToken)new JArray(ids.OfType().ToArray()); } - private static AssetsField Field(AssetsFieldProperties properties) + private static Field Field(AssetsFieldProperties properties) { - return new AssetsField(1, "my-assets", Partitioning.Invariant, properties); + return Fields.Assets(1, "my-assets", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/BooleanFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/BooleanFieldTests.cs index a120babcc..918e10f93 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/BooleanFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/BooleanFieldTests.cs @@ -73,9 +73,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return new JValue(v); } - private static BooleanField Field(BooleanFieldProperties properties) + private static Field Field(BooleanFieldProperties properties) { - return new BooleanField(1, "my-boolean", Partitioning.Invariant, properties); + return Fields.Boolean(1, "my-boolean", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ContentValidationTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ContentValidationTests.cs index 90188d575..29d809c2b 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ContentValidationTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ContentValidationTests.cs @@ -44,8 +44,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_validating_data_with_invalid_field() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, - new NumberFieldProperties { MaxValue = 100 })); + schema = schema.AddNumber(1, "my-field", Partitioning.Invariant, + new NumberFieldProperties { MaxValue = 100 }); var data = new NamedContentData() @@ -65,7 +65,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_non_localizable_data_field_contains_language() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant)); + schema = schema.AddNumber(1, "my-field", Partitioning.Invariant); var data = new NamedContentData() @@ -87,8 +87,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_validating_data_with_invalid_localizable_field() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language, - new NumberFieldProperties { IsRequired = true })); + schema = schema.AddNumber(1, "my-field", Partitioning.Language, + new NumberFieldProperties { IsRequired = true }); var data = new NamedContentData(); @@ -106,8 +106,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_required_data_field_is_not_in_bag() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, - new NumberFieldProperties { IsRequired = true })); + schema = schema.AddNumber(1, "my-field", Partitioning.Invariant, + new NumberFieldProperties { IsRequired = true }); var data = new NamedContentData(); @@ -124,7 +124,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_data_contains_invalid_language() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language)); + schema = schema.AddNumber(1, "my-field", Partitioning.Language); var data = new NamedContentData() @@ -150,8 +150,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent new LanguageConfig(Language.ES, false), new LanguageConfig(Language.IT, true)); - schema = schema.AddField(new StringField(1, "my-field", Partitioning.Language, - new StringFieldProperties { IsRequired = true })); + schema = schema.AddString(1, "my-field", Partitioning.Language, + new StringFieldProperties { IsRequired = true }); var data = new NamedContentData() @@ -167,7 +167,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_data_contains_unsupported_language() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language)); + schema = schema.AddNumber(1, "my-field", Partitioning.Language); var data = new NamedContentData() @@ -206,8 +206,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_validating_partial_data_with_invalid_field() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, - new NumberFieldProperties { MaxValue = 100 })); + schema = schema.AddNumber(1, "my-field", Partitioning.Invariant, + new NumberFieldProperties { MaxValue = 100 }); var data = new NamedContentData() @@ -227,7 +227,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_non_localizable_partial_data_field_contains_language() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant)); + schema = schema.AddNumber(1, "my-field", Partitioning.Invariant); var data = new NamedContentData() @@ -249,8 +249,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_not_add_error_if_validating_partial_data_with_invalid_localizable_field() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language, - new NumberFieldProperties { IsRequired = true })); + schema = schema.AddNumber(1, "my-field", Partitioning.Language, + new NumberFieldProperties { IsRequired = true }); var data = new NamedContentData(); @@ -263,8 +263,8 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_not_add_error_if_required_partial_data_field_is_not_in_bag() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Invariant, - new NumberFieldProperties { IsRequired = true })); + schema = schema.AddNumber(1, "my-field", Partitioning.Invariant, + new NumberFieldProperties { IsRequired = true }); var data = new NamedContentData(); @@ -277,7 +277,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_partial_data_contains_invalid_language() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language)); + schema = schema.AddNumber(1, "my-field", Partitioning.Language); var data = new NamedContentData() @@ -298,7 +298,7 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent [Fact] public async Task Should_add_error_if_partial_data_contains_unsupported_language() { - schema = schema.AddField(new NumberField(1, "my-field", Partitioning.Language)); + schema = schema.AddNumber(1, "my-field", Partitioning.Language); var data = new NamedContentData() diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/DateTimeFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/DateTimeFieldTests.cs index cc06a2d19..bb2c88f3b 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/DateTimeFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/DateTimeFieldTests.cs @@ -103,9 +103,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return v is Instant ? new JValue(v.ToString()) : new JValue(v); } - private static DateTimeField Field(DateTimeFieldProperties properties) + private static Field Field(DateTimeFieldProperties properties) { - return new DateTimeField(1, "my-datetime", Partitioning.Invariant, properties); + return Fields.DateTime(1, "my-datetime", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/GeolocationFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/GeolocationFieldTests.cs index b35e218fa..2e38c8dc2 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/GeolocationFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/GeolocationFieldTests.cs @@ -112,9 +112,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return v; } - private static GeolocationField Field(GeolocationFieldProperties properties) + private static Field Field(GeolocationFieldProperties properties) { - return new GeolocationField(1, "my-geolocation", Partitioning.Invariant, properties); + return Fields.Geolocation(1, "my-geolocation", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/JsonFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/JsonFieldTests.cs index edc064e79..35f6d9e68 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/JsonFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/JsonFieldTests.cs @@ -52,9 +52,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return v; } - private static JsonField Field(JsonFieldProperties properties) + private static Field Field(JsonFieldProperties properties) { - return new JsonField(1, "my-json", Partitioning.Invariant, properties); + return Fields.Json(1, "my-json", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/NumberFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/NumberFieldTests.cs index 3c4e73ed5..009f1c266 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/NumberFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/NumberFieldTests.cs @@ -97,9 +97,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return new JValue(v); } - private static NumberField Field(NumberFieldProperties properties) + private static Field Field(NumberFieldProperties properties) { - return new NumberField(1, "my-number", Partitioning.Invariant, properties); + return Fields.Number(1, "my-number", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ReferencesFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ReferencesFieldTests.cs index f09be6e1e..ba6936e56 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ReferencesFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/ReferencesFieldTests.cs @@ -124,9 +124,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return ids == null ? JValue.CreateNull() : (JToken)new JArray(ids.OfType().ToArray()); } - private static ReferencesField Field(ReferencesFieldProperties properties) + private static Field Field(ReferencesFieldProperties properties) { - return new ReferencesField(1, "my-refs", Partitioning.Invariant, properties); + return Fields.References(1, "my-refs", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/StringFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/StringFieldTests.cs index acdcf27b6..0e4a41e4a 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/StringFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/StringFieldTests.cs @@ -108,9 +108,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return new JValue(v); } - private static StringField Field(StringFieldProperties properties) + private static Field Field(StringFieldProperties properties) { - return new StringField(1, "my-string", Partitioning.Invariant, properties); + return Fields.String(1, "my-string", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/TagsFieldTests.cs b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/TagsFieldTests.cs index a7e3d677a..18aaebc1b 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/TagsFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/Operations/ValidateContent/TagsFieldTests.cs @@ -110,9 +110,9 @@ namespace Squidex.Domain.Apps.Core.Operations.ValidateContent return ids == null ? JValue.CreateNull() : (JToken)new JArray(ids.OfType().ToArray()); } - private static TagsField Field(TagsFieldProperties properties) + private static Field Field(TagsFieldProperties properties) { - return new TagsField(1, "my-tags", Partitioning.Invariant, properties); + return Fields.Tags(1, "my-tags", Partitioning.Invariant, properties); } } } diff --git a/tests/Squidex.Domain.Apps.Core.Tests/TestData.cs b/tests/Squidex.Domain.Apps.Core.Tests/TestData.cs index 988a2d483..3fc8ed13c 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/TestData.cs +++ b/tests/Squidex.Domain.Apps.Core.Tests/TestData.cs @@ -61,38 +61,38 @@ namespace Squidex.Domain.Apps.Core schema = schema.Publish(); schema = schema.Update(new SchemaProperties { Hints = "The User" }); - schema = schema.AddField(new JsonField(1, "my-json", inv, - new JsonFieldProperties())); + schema = schema.AddJson(1, "my-json", inv, + new JsonFieldProperties()); - schema = schema.AddField(new AssetsField(2, "my-assets", inv, - new AssetsFieldProperties())); + schema = schema.AddAssets(2, "my-assets", inv, + new AssetsFieldProperties()); - schema = schema.AddField(new StringField(3, "my-string1", inv, - new StringFieldProperties { Label = "My String1", IsRequired = true, AllowedValues = ImmutableList.Create("a", "b") })); + schema = schema.AddString(3, "my-string1", inv, + new StringFieldProperties { Label = "My String1", IsRequired = true, AllowedValues = ImmutableList.Create("a", "b") }); - schema = schema.AddField(new StringField(4, "my-string2", inv, - new StringFieldProperties { Hints = "My String1" })); + schema = schema.AddString(4, "my-string2", inv, + new StringFieldProperties { Hints = "My String1" }); - schema = schema.AddField(new NumberField(5, "my-number", inv, - new NumberFieldProperties { MinValue = 1, MaxValue = 10 })); + schema = schema.AddNumber(5, "my-number", inv, + new NumberFieldProperties { MinValue = 1, MaxValue = 10 }); - schema = schema.AddField(new BooleanField(6, "my-boolean", inv, - new BooleanFieldProperties())); + schema = schema.AddBoolean(6, "my-boolean", inv, + new BooleanFieldProperties()); - schema = schema.AddField(new DateTimeField(7, "my-datetime", inv, - new DateTimeFieldProperties { Editor = DateTimeFieldEditor.DateTime })); + schema = schema.AddDateTime(7, "my-datetime", inv, + new DateTimeFieldProperties { Editor = DateTimeFieldEditor.DateTime }); - schema = schema.AddField(new DateTimeField(8, "my-date", inv, - new DateTimeFieldProperties { Editor = DateTimeFieldEditor.Date })); + schema = schema.AddDateTime(8, "my-date", inv, + new DateTimeFieldProperties { Editor = DateTimeFieldEditor.Date }); - schema = schema.AddField(new GeolocationField(9, "my-geolocation", inv, - new GeolocationFieldProperties())); + schema = schema.AddGeolocation(9, "my-geolocation", inv, + new GeolocationFieldProperties()); - schema = schema.AddField(new ReferencesField(10, "my-references", inv, - new ReferencesFieldProperties())); + schema = schema.AddReferences(10, "my-references", inv, + new ReferencesFieldProperties()); - schema = schema.AddField(new TagsField(11, "my-tags", Partitioning.Language, - new TagsFieldProperties())); + schema = schema.AddTags(11, "my-tags", Partitioning.Language, + new TagsFieldProperties()); schema = schema.HideField(7); schema = schema.LockField(8); diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentGrainTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentGrainTests.cs index 75fd58000..9963c20a4 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentGrainTests.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/ContentGrainTests.cs @@ -78,10 +78,10 @@ namespace Squidex.Domain.Apps.Entities.Contents { var schemaDef = new Schema("my-schema") - .AddField(new NumberField(1, "my-field1", Partitioning.Invariant, - new NumberFieldProperties { IsRequired = true })) - .AddField(new NumberField(2, "my-field2", Partitioning.Invariant, - new NumberFieldProperties { IsRequired = false })); + .AddNumber(1, "my-field1", Partitioning.Invariant, + new NumberFieldProperties { IsRequired = true }) + .AddNumber(2, "my-field2", Partitioning.Invariant, + new NumberFieldProperties { IsRequired = false }); A.CallTo(() => app.LanguagesConfig).Returns(languagesConfig); diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLTestBase.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLTestBase.cs index e682d704b..652e23f6e 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLTestBase.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLTestBase.cs @@ -53,26 +53,26 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL { schemaDef = new Schema("my-schema") - .AddField(new JsonField(1, "my-json", Partitioning.Invariant, - new JsonFieldProperties())) - .AddField(new StringField(2, "my-string", Partitioning.Language, - new StringFieldProperties())) - .AddField(new NumberField(3, "my-number", Partitioning.Invariant, - new NumberFieldProperties())) - .AddField(new AssetsField(4, "my-assets", Partitioning.Invariant, - new AssetsFieldProperties())) - .AddField(new BooleanField(5, "my-boolean", Partitioning.Invariant, - new BooleanFieldProperties())) - .AddField(new DateTimeField(6, "my-datetime", Partitioning.Invariant, - new DateTimeFieldProperties())) - .AddField(new ReferencesField(7, "my-references", Partitioning.Invariant, - new ReferencesFieldProperties { SchemaId = schemaId })) - .AddField(new ReferencesField(9, "my-invalid", Partitioning.Invariant, - new ReferencesFieldProperties { SchemaId = Guid.NewGuid() })) - .AddField(new GeolocationField(10, "my-geolocation", Partitioning.Invariant, - new GeolocationFieldProperties())) - .AddField(new TagsField(11, "my-tags", Partitioning.Invariant, - new TagsFieldProperties())); + .AddJson(1, "my-json", Partitioning.Invariant, + new JsonFieldProperties()) + .AddString(2, "my-string", Partitioning.Language, + new StringFieldProperties()) + .AddNumber(3, "my-number", Partitioning.Invariant, + new NumberFieldProperties()) + .AddAssets(4, "my-assets", Partitioning.Invariant, + new AssetsFieldProperties()) + .AddBoolean(5, "my-boolean", Partitioning.Invariant, + new BooleanFieldProperties()) + .AddDateTime(6, "my-datetime", Partitioning.Invariant, + new DateTimeFieldProperties()) + .AddReferences(7, "my-references", Partitioning.Invariant, + new ReferencesFieldProperties { SchemaId = schemaId }) + .AddReferences(9, "my-invalid", Partitioning.Invariant, + new ReferencesFieldProperties { SchemaId = Guid.NewGuid() }) + .AddGeolocation(10, "my-geolocation", Partitioning.Invariant, + new GeolocationFieldProperties()) + .AddTags(11, "my-tags", Partitioning.Invariant, + new TagsFieldProperties()); A.CallTo(() => app.Id).Returns(appId); A.CallTo(() => app.Name).Returns(appName); diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/OData/ODataQueryTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/OData/ODataQueryTests.cs index 81a87ff25..8c7b9ae61 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/OData/ODataQueryTests.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/OData/ODataQueryTests.cs @@ -45,22 +45,22 @@ namespace Squidex.Domain.Apps.Entities.Contents.OData { schemaDef = new Schema("user") - .AddField(new StringField(1, "firstName", Partitioning.Language, - new StringFieldProperties { Label = "FirstName", IsRequired = true, AllowedValues = ImmutableList.Create("1", "2") })) - .AddField(new StringField(2, "lastName", Partitioning.Language, - new StringFieldProperties { Hints = "Last Name", Editor = StringFieldEditor.Input })) - .AddField(new BooleanField(3, "isAdmin", Partitioning.Invariant, - new BooleanFieldProperties())) - .AddField(new NumberField(4, "age", Partitioning.Invariant, - new NumberFieldProperties { MinValue = 1, MaxValue = 10 })) - .AddField(new DateTimeField(5, "birthday", Partitioning.Invariant, - new DateTimeFieldProperties())) - .AddField(new AssetsField(6, "pictures", Partitioning.Invariant, - new AssetsFieldProperties())) - .AddField(new ReferencesField(7, "friends", Partitioning.Invariant, - new ReferencesFieldProperties())) - .AddField(new StringField(8, "dashed-field", Partitioning.Invariant, - new StringFieldProperties())) + .AddString(1, "firstName", Partitioning.Language, + new StringFieldProperties { Label = "FirstName", IsRequired = true, AllowedValues = ImmutableList.Create("1", "2") }) + .AddString(2, "lastName", Partitioning.Language, + new StringFieldProperties { Hints = "Last Name", Editor = StringFieldEditor.Input }) + .AddBoolean(3, "isAdmin", Partitioning.Invariant, + new BooleanFieldProperties()) + .AddNumber(4, "age", Partitioning.Invariant, + new NumberFieldProperties { MinValue = 1, MaxValue = 10 }) + .AddDateTime(5, "birthday", Partitioning.Invariant, + new DateTimeFieldProperties()) + .AddAssets(6, "pictures", Partitioning.Invariant, + new AssetsFieldProperties()) + .AddReferences(7, "friends", Partitioning.Invariant, + new ReferencesFieldProperties()) + .AddString(8, "dashed-field", Partitioning.Invariant, + new StringFieldProperties()) .Update(new SchemaProperties { Hints = "The User" }); var builder = new EdmModelBuilder(new MemoryCache(Options.Create(new MemoryCacheOptions()))); diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaFieldTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaFieldTests.cs index 7636f0faa..2b2511a54 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaFieldTests.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaFieldTests.cs @@ -25,8 +25,8 @@ namespace Squidex.Domain.Apps.Entities.Schemas.Guards { schema_0 = new Schema("my-schema") - .AddField(new StringField(1, "field1", Partitioning.Invariant)) - .AddField(new StringField(2, "field2", Partitioning.Invariant)); + .AddString(1, "field1", Partitioning.Invariant) + .AddString(2, "field2", Partitioning.Invariant); } [Fact] diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaTests.cs index 7f723fa68..3f9ad2cfd 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaTests.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Schemas/Guards/GuardSchemaTests.cs @@ -29,8 +29,8 @@ namespace Squidex.Domain.Apps.Entities.Schemas.Guards { schema_0 = new Schema("my-schema") - .AddField(new StringField(1, "field1", Partitioning.Invariant)) - .AddField(new StringField(2, "field2", Partitioning.Invariant)); + .AddString(1, "field1", Partitioning.Invariant) + .AddString(2, "field2", Partitioning.Invariant); A.CallTo(() => appProvider.GetSchemaAsync(A.Ignored, "new-schema")) .Returns(Task.FromResult(null));