mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
3.3 KiB
134 lines
3.3 KiB
// ==========================================================================
|
|
// Squidex Headless CMS
|
|
// ==========================================================================
|
|
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|
// All rights reserved. Licensed under the MIT license.
|
|
// ==========================================================================
|
|
|
|
using Squidex.Domain.Apps.Core.Schemas;
|
|
|
|
namespace Squidex.Domain.Apps.Core.Model.Schemas;
|
|
|
|
public class FieldNamesTests
|
|
{
|
|
[Theory]
|
|
[InlineData("id")]
|
|
[InlineData("lastModified")]
|
|
[InlineData("lastModifiedBy.avatar")]
|
|
public void Should_return_true_for_valid_meta_field(string fieldName)
|
|
{
|
|
Assert.True(FieldNames.IsMetaField(fieldName));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null)]
|
|
[InlineData("")]
|
|
[InlineData("metaField")]
|
|
public void Should_return_false_for_invalid_meta_field(string? fieldName)
|
|
{
|
|
Assert.False(FieldNames.IsMetaField(fieldName));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("data.fieldName")]
|
|
public void Should_return_true_for_valid_data_field(string fieldName)
|
|
{
|
|
Assert.True(FieldNames.IsDataField(fieldName));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null)]
|
|
[InlineData("")]
|
|
[InlineData("data")]
|
|
[InlineData("data_field")]
|
|
public void Should_return_false_for_invalid_data_field(string? fieldName)
|
|
{
|
|
Assert.False(FieldNames.IsDataField(fieldName));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null)]
|
|
[InlineData("")]
|
|
[InlineData("data")]
|
|
[InlineData("data_field")]
|
|
public void Should_return_false_for_invalid_data_field_with_out(string? fieldName)
|
|
{
|
|
Assert.False(FieldNames.IsDataField(fieldName, out _));
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_extract_data_field()
|
|
{
|
|
Assert.True(FieldNames.IsDataField("data.dataField", out var dataField));
|
|
Assert.Equal("dataField", dataField);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_migrate_empty_names()
|
|
{
|
|
var source = FieldNames.Empty;
|
|
|
|
var migrated = source.Migrate();
|
|
|
|
Assert.Same(source, migrated);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_migrate_new_format_with_meta()
|
|
{
|
|
var source = FieldNames.Create(
|
|
"id",
|
|
"lastModifiedBy.avatar");
|
|
|
|
var migrated = source.Migrate();
|
|
|
|
Assert.Same(source, migrated);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_migrate_new_format_with_data()
|
|
{
|
|
var source = FieldNames.Create(
|
|
"data.field1",
|
|
"data.field2.iv");
|
|
|
|
var migrated = source.Migrate();
|
|
|
|
Assert.Same(source, migrated);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_migrate_new_format_with_mixed_fields()
|
|
{
|
|
var source = FieldNames.Create(
|
|
"id",
|
|
"data.field1",
|
|
"data.field2.iv");
|
|
|
|
var migrated = source.Migrate();
|
|
|
|
Assert.Same(source, migrated);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_migrate_old_format()
|
|
{
|
|
var source = FieldNames.Create(
|
|
"meta.id",
|
|
"meta.lastModified",
|
|
"meta.lastModifiedBy.avatar",
|
|
"data1",
|
|
"data2.iv");
|
|
|
|
var migrated = source.Migrate();
|
|
|
|
Assert.Equal(new[]
|
|
{
|
|
"id",
|
|
"lastModified",
|
|
"lastModifiedBy.avatar",
|
|
"data.data1",
|
|
"data.data2.iv",
|
|
}, migrated.ToArray());
|
|
}
|
|
}
|
|
|