mirror of https://github.com/Squidex/squidex.git
20 changed files with 245 additions and 454 deletions
@ -1,79 +0,0 @@ |
|||||
// ==========================================================================
|
|
||||
// BooleanFieldPropertiesTests.cs
|
|
||||
// Squidex Headless CMS
|
|
||||
// ==========================================================================
|
|
||||
// Copyright (c) Squidex Group
|
|
||||
// All rights reserved.
|
|
||||
// ==========================================================================
|
|
||||
|
|
||||
using System; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Linq; |
|
||||
using System.Reflection; |
|
||||
using FluentAssertions; |
|
||||
using Squidex.Infrastructure; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace Squidex.Domain.Apps.Core.Schemas |
|
||||
{ |
|
||||
public class BooleanFieldPropertiesTests |
|
||||
{ |
|
||||
private readonly List<ValidationError> errors = new List<ValidationError>(); |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_add_error_if_editor_is_not_valid() |
|
||||
{ |
|
||||
var sut = new BooleanFieldProperties { Editor = (BooleanFieldEditor)123 }; |
|
||||
|
|
||||
sut.Validate(errors); |
|
||||
|
|
||||
errors.ShouldBeEquivalentTo( |
|
||||
new List<ValidationError> |
|
||||
{ |
|
||||
new ValidationError("Editor is not a valid value", "Editor") |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_set_or_freeze_sut() |
|
||||
{ |
|
||||
var sut = new BooleanFieldProperties(); |
|
||||
|
|
||||
foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen")) |
|
||||
{ |
|
||||
var value = |
|
||||
property.PropertyType.GetTypeInfo().IsValueType ? |
|
||||
Activator.CreateInstance(property.PropertyType) : |
|
||||
null; |
|
||||
|
|
||||
property.SetValue(sut, value); |
|
||||
|
|
||||
var result = property.GetValue(sut); |
|
||||
|
|
||||
Assert.Equal(value, result); |
|
||||
} |
|
||||
|
|
||||
sut.Freeze(); |
|
||||
|
|
||||
foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen")) |
|
||||
{ |
|
||||
var value = |
|
||||
property.PropertyType.GetTypeInfo().IsValueType ? |
|
||||
Activator.CreateInstance(property.PropertyType) : |
|
||||
null; |
|
||||
|
|
||||
Assert.Throws<InvalidOperationException>(() => |
|
||||
{ |
|
||||
try |
|
||||
{ |
|
||||
property.SetValue(sut, value); |
|
||||
} |
|
||||
catch (Exception ex) |
|
||||
{ |
|
||||
throw ex.InnerException; |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,46 @@ |
|||||
|
// ==========================================================================
|
||||
|
// DateTimePropertiesTests.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System; |
||||
|
using NodaTime; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Core.Schemas |
||||
|
{ |
||||
|
public class DateTimePropertiesTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_provide_today_default_value() |
||||
|
{ |
||||
|
var sut = new DateTimeFieldProperties { CalculatedDefaultValue = DateTimeCalculatedDefaultValue.Today }; |
||||
|
|
||||
|
Assert.Equal(DateTime.UtcNow.Date.ToString("o"), sut.GetDefaultValue().ToString()); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Should_provide_now_default_value() |
||||
|
{ |
||||
|
var sut = new DateTimeFieldProperties { CalculatedDefaultValue = DateTimeCalculatedDefaultValue.Now }; |
||||
|
|
||||
|
Assert.Equal(DateTime.UtcNow.ToString("o").Substring(0, 16), sut.GetDefaultValue().ToString().Substring(0, 16)); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Should_provide_specific_default_value() |
||||
|
{ |
||||
|
var sut = new DateTimeFieldProperties { DefaultValue = FutureDays(15) }; |
||||
|
|
||||
|
Assert.Equal(FutureDays(15).ToString(), sut.GetDefaultValue()); |
||||
|
} |
||||
|
|
||||
|
private static Instant FutureDays(int days) |
||||
|
{ |
||||
|
return Instant.FromDateTimeUtc(DateTime.UtcNow.Date.AddDays(days)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,79 +0,0 @@ |
|||||
// ==========================================================================
|
|
||||
// GeolocationPropertiesTests.cs
|
|
||||
// Squidex Headless CMS
|
|
||||
// ==========================================================================
|
|
||||
// Copyright (c) Squidex Group
|
|
||||
// All rights reserved.
|
|
||||
// ==========================================================================
|
|
||||
|
|
||||
using System; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Linq; |
|
||||
using System.Reflection; |
|
||||
using FluentAssertions; |
|
||||
using Squidex.Infrastructure; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace Squidex.Domain.Apps.Core.Schemas |
|
||||
{ |
|
||||
public class GeolocationFieldPropertiesTests |
|
||||
{ |
|
||||
private readonly List<ValidationError> errors = new List<ValidationError>(); |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_add_error_if_editor_is_not_valid() |
|
||||
{ |
|
||||
var sut = new GeolocationFieldProperties { Editor = (GeolocationFieldEditor)123 }; |
|
||||
|
|
||||
sut.Validate(errors); |
|
||||
|
|
||||
errors.ShouldBeEquivalentTo( |
|
||||
new List<ValidationError> |
|
||||
{ |
|
||||
new ValidationError("Editor is not a valid value", "Editor") |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_set_or_freeze_sut() |
|
||||
{ |
|
||||
var sut = new GeolocationFieldProperties(); |
|
||||
|
|
||||
foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen")) |
|
||||
{ |
|
||||
var value = |
|
||||
property.PropertyType.GetTypeInfo().IsValueType ? |
|
||||
Activator.CreateInstance(property.PropertyType) : |
|
||||
null; |
|
||||
|
|
||||
property.SetValue(sut, value); |
|
||||
|
|
||||
var result = property.GetValue(sut); |
|
||||
|
|
||||
Assert.Equal(value, result); |
|
||||
} |
|
||||
|
|
||||
sut.Freeze(); |
|
||||
|
|
||||
foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen")) |
|
||||
{ |
|
||||
var value = |
|
||||
property.PropertyType.GetTypeInfo().IsValueType ? |
|
||||
Activator.CreateInstance(property.PropertyType) : |
|
||||
null; |
|
||||
|
|
||||
Assert.Throws<InvalidOperationException>(() => |
|
||||
{ |
|
||||
try |
|
||||
{ |
|
||||
property.SetValue(sut, value); |
|
||||
} |
|
||||
catch (Exception ex) |
|
||||
{ |
|
||||
throw ex.InnerException; |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,79 +0,0 @@ |
|||||
// ==========================================================================
|
|
||||
// ReferencesFieldPropertiesTests.cs
|
|
||||
// Squidex Headless CMS
|
|
||||
// ==========================================================================
|
|
||||
// Copyright (c) Squidex Group
|
|
||||
// All rights reserved.
|
|
||||
// ==========================================================================
|
|
||||
|
|
||||
using System; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Linq; |
|
||||
using System.Reflection; |
|
||||
using FluentAssertions; |
|
||||
using Squidex.Infrastructure; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace Squidex.Domain.Apps.Core.Schemas |
|
||||
{ |
|
||||
public class ReferencesFieldPropertiesTests |
|
||||
{ |
|
||||
private readonly List<ValidationError> errors = new List<ValidationError>(); |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_add_error_if_min_greater_than_max() |
|
||||
{ |
|
||||
var sut = new ReferencesFieldProperties { MinItems = 10, MaxItems = 5 }; |
|
||||
|
|
||||
sut.Validate(errors); |
|
||||
|
|
||||
errors.ShouldBeEquivalentTo( |
|
||||
new List<ValidationError> |
|
||||
{ |
|
||||
new ValidationError("Max items must be greater than min items", "MinItems", "MaxItems") |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_set_or_freeze_sut() |
|
||||
{ |
|
||||
var sut = new ReferencesFieldProperties(); |
|
||||
|
|
||||
foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen")) |
|
||||
{ |
|
||||
var value = |
|
||||
property.PropertyType.GetTypeInfo().IsValueType ? |
|
||||
Activator.CreateInstance(property.PropertyType) : |
|
||||
null; |
|
||||
|
|
||||
property.SetValue(sut, value); |
|
||||
|
|
||||
var result = property.GetValue(sut); |
|
||||
|
|
||||
Assert.Equal(value, result); |
|
||||
} |
|
||||
|
|
||||
sut.Freeze(); |
|
||||
|
|
||||
foreach (var property in sut.GetType().GetRuntimeProperties().Where(x => x.Name != "IsFrozen")) |
|
||||
{ |
|
||||
var value = |
|
||||
property.PropertyType.GetTypeInfo().IsValueType ? |
|
||||
Activator.CreateInstance(property.PropertyType) : |
|
||||
null; |
|
||||
|
|
||||
Assert.Throws<InvalidOperationException>(() => |
|
||||
{ |
|
||||
try |
|
||||
{ |
|
||||
property.SetValue(sut, value); |
|
||||
} |
|
||||
catch (Exception ex) |
|
||||
{ |
|
||||
throw ex.InnerException; |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,34 @@ |
|||||
|
// ==========================================================================
|
||||
|
// AssetsFieldPropertiesTests.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using FluentAssertions; |
||||
|
using Squidex.Domain.Apps.Core.Schemas; |
||||
|
using Squidex.Infrastructure; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Write.Schemas.Guards.FieldPro |
||||
|
{ |
||||
|
public class AssetsFieldPropertiesTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_add_error_if_min_greater_than_max() |
||||
|
{ |
||||
|
var sut = new AssetsFieldProperties { MinItems = 10, MaxItems = 5 }; |
||||
|
|
||||
|
var errors = SchemaFieldGuard.ValidateProperties(sut).ToList(); |
||||
|
|
||||
|
errors.ShouldBeEquivalentTo( |
||||
|
new List<ValidationError> |
||||
|
{ |
||||
|
new ValidationError("Max items must be greater than min items", "MinItems", "MaxItems") |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
// ==========================================================================
|
||||
|
// BooleanFieldPropertiesTests.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using FluentAssertions; |
||||
|
using Squidex.Domain.Apps.Core.Schemas; |
||||
|
using Squidex.Infrastructure; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Write.Schemas.Guards.FieldProperties |
||||
|
{ |
||||
|
public class BooleanFieldPropertiesTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_add_error_if_editor_is_not_valid() |
||||
|
{ |
||||
|
var sut = new BooleanFieldProperties { Editor = (BooleanFieldEditor)123 }; |
||||
|
|
||||
|
var errors = SchemaFieldGuard.ValidateProperties(sut).ToList(); |
||||
|
|
||||
|
errors.ShouldBeEquivalentTo( |
||||
|
new List<ValidationError> |
||||
|
{ |
||||
|
new ValidationError("Editor is not a valid value", "Editor") |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
// ==========================================================================
|
||||
|
// GeolocationPropertiesTests.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using FluentAssertions; |
||||
|
using Squidex.Domain.Apps.Core.Schemas; |
||||
|
using Squidex.Infrastructure; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Write.Schemas.Guards.FieldProperties |
||||
|
{ |
||||
|
public class GeolocationFieldPropertiesTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_add_error_if_editor_is_not_valid() |
||||
|
{ |
||||
|
var sut = new GeolocationFieldProperties { Editor = (GeolocationFieldEditor)123 }; |
||||
|
|
||||
|
var errors = SchemaFieldGuard.ValidateProperties(sut).ToList(); |
||||
|
|
||||
|
errors.ShouldBeEquivalentTo( |
||||
|
new List<ValidationError> |
||||
|
{ |
||||
|
new ValidationError("Editor is not a valid value", "Editor") |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
// ==========================================================================
|
||||
|
// ReferencesFieldPropertiesTests.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using FluentAssertions; |
||||
|
using Squidex.Domain.Apps.Core.Schemas; |
||||
|
using Squidex.Infrastructure; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Write.Schemas.Guards.FieldProperties |
||||
|
{ |
||||
|
public class ReferencesFieldPropertiesTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_add_error_if_min_greater_than_max() |
||||
|
{ |
||||
|
var sut = new ReferencesFieldProperties { MinItems = 10, MaxItems = 5 }; |
||||
|
|
||||
|
var errors = SchemaFieldGuard.ValidateProperties(sut).ToList(); |
||||
|
|
||||
|
errors.ShouldBeEquivalentTo( |
||||
|
new List<ValidationError> |
||||
|
{ |
||||
|
new ValidationError("Max items must be greater than min items", "MinItems", "MaxItems") |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue