mirror of https://github.com/Squidex/squidex.git
97 changed files with 718 additions and 760 deletions
@ -0,0 +1,41 @@ |
|||
// ==========================================================================
|
|||
// Squidex Headless CMS
|
|||
// ==========================================================================
|
|||
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|||
// All rights reserved. Licensed under the MIT license.
|
|||
// ==========================================================================
|
|||
|
|||
using GraphQL.Language.AST; |
|||
using GraphQL.Types; |
|||
using NodaTime.Text; |
|||
|
|||
namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Utils |
|||
{ |
|||
public sealed class InstantGraphType : DateGraphType |
|||
{ |
|||
public override object Serialize(object value) |
|||
{ |
|||
return ParseValue(value); |
|||
} |
|||
|
|||
public override object ParseValue(object value) |
|||
{ |
|||
return InstantPattern.General.Parse(value.ToString()).Value; |
|||
} |
|||
|
|||
public override object ParseLiteral(IValue value) |
|||
{ |
|||
if (value is InstantValue timeValue) |
|||
{ |
|||
return ParseValue(timeValue.Value); |
|||
} |
|||
|
|||
if (value is StringValue stringValue) |
|||
{ |
|||
return ParseValue(stringValue.Value); |
|||
} |
|||
|
|||
return null; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
// ==========================================================================
|
|||
// Squidex Headless CMS
|
|||
// ==========================================================================
|
|||
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|||
// All rights reserved. Licensed under the MIT license.
|
|||
// ==========================================================================
|
|||
|
|||
using GraphQL.Language.AST; |
|||
using NodaTime; |
|||
|
|||
namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Utils |
|||
{ |
|||
public sealed class InstantValue : ValueNode<Instant> |
|||
{ |
|||
public InstantValue(Instant value) |
|||
{ |
|||
Value = value; |
|||
} |
|||
|
|||
protected override bool Equals(ValueNode<Instant> node) |
|||
{ |
|||
return Value.Equals(node.Value); |
|||
} |
|||
} |
|||
} |
|||
@ -1,161 +0,0 @@ |
|||
// ==========================================================================
|
|||
// Squidex Headless CMS
|
|||
// ==========================================================================
|
|||
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|||
// All rights reserved. Licensed under the MIT license.
|
|||
// ==========================================================================
|
|||
|
|||
using System; |
|||
using Newtonsoft.Json.Linq; |
|||
using Xunit; |
|||
|
|||
namespace Squidex.Domain.Apps.Entities.Backup |
|||
{ |
|||
public class GuidMapperTests |
|||
{ |
|||
private readonly Guid id1 = Guid.NewGuid(); |
|||
private readonly Guid id2 = Guid.NewGuid(); |
|||
private readonly GuidMapper map = new GuidMapper(); |
|||
|
|||
[Fact] |
|||
public void Should_map_guid_string_if_valid() |
|||
{ |
|||
var result = map.NewGuidString(id1.ToString()); |
|||
|
|||
Assert.Equal(map.NewGuid(id1).ToString(), result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_return_null_if_mapping_invalid_guid_string() |
|||
{ |
|||
var result = map.NewGuidString("invalid"); |
|||
|
|||
Assert.Null(result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_return_null_if_mapping_null_guid_string() |
|||
{ |
|||
var result = map.NewGuidString(null); |
|||
|
|||
Assert.Null(result); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_guid() |
|||
{ |
|||
var result = map.NewGuids(id1); |
|||
|
|||
Assert.Equal(map.NewGuid(id1), result.Value<Guid>()); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_return_old_guid() |
|||
{ |
|||
var newGuid = map.NewGuids(id1).Value<Guid>(); |
|||
|
|||
Assert.Equal(id1, map.OldGuid(newGuid)); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_guid_string() |
|||
{ |
|||
var result = map.NewGuids(id1.ToString()); |
|||
|
|||
Assert.Equal(map.NewGuid(id1).ToString(), result.Value<string>()); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_named_id() |
|||
{ |
|||
var result = map.NewGuids($"{id1},name"); |
|||
|
|||
Assert.Equal($"{map.NewGuid(id1)},name", result.Value<string>()); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_array_with_guid() |
|||
{ |
|||
var obj = |
|||
new JObject( |
|||
new JProperty("k", |
|||
new JArray(id1, id1, id2))); |
|||
|
|||
map.NewGuids(obj); |
|||
|
|||
Assert.Equal(map.NewGuid(id1), obj["k"][0].Value<Guid>()); |
|||
Assert.Equal(map.NewGuid(id1), obj["k"][1].Value<Guid>()); |
|||
Assert.Equal(map.NewGuid(id2), obj["k"][2].Value<Guid>()); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_objects_with_guid_keys() |
|||
{ |
|||
var obj = |
|||
new JObject( |
|||
new JProperty("k", |
|||
new JObject( |
|||
new JProperty(id1.ToString(), id1), |
|||
new JProperty(id2.ToString(), id2)))); |
|||
|
|||
map.NewGuids(obj); |
|||
|
|||
Assert.Equal(map.NewGuid(id1), obj["k"].Value<Guid>(map.NewGuid(id1).ToString())); |
|||
Assert.Equal(map.NewGuid(id2), obj["k"].Value<Guid>(map.NewGuid(id2).ToString())); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_objects_with_guid() |
|||
{ |
|||
var obj = |
|||
new JObject( |
|||
new JProperty("k", |
|||
new JObject( |
|||
new JProperty("v1", id1), |
|||
new JProperty("v2", id1), |
|||
new JProperty("v3", id2)))); |
|||
|
|||
map.NewGuids(obj); |
|||
|
|||
Assert.Equal(map.NewGuid(id1), obj["k"].Value<Guid>("v1")); |
|||
Assert.Equal(map.NewGuid(id1), obj["k"].Value<Guid>("v2")); |
|||
Assert.Equal(map.NewGuid(id2), obj["k"].Value<Guid>("v3")); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_objects_with_guid_string() |
|||
{ |
|||
var obj = |
|||
new JObject( |
|||
new JProperty("k", |
|||
new JObject( |
|||
new JProperty("v1", id1.ToString()), |
|||
new JProperty("v2", id1.ToString()), |
|||
new JProperty("v3", id2.ToString())))); |
|||
|
|||
map.NewGuids(obj); |
|||
|
|||
Assert.Equal(map.NewGuid(id1).ToString(), obj["k"].Value<string>("v1")); |
|||
Assert.Equal(map.NewGuid(id1).ToString(), obj["k"].Value<string>("v2")); |
|||
Assert.Equal(map.NewGuid(id2).ToString(), obj["k"].Value<string>("v3")); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_map_objects_with_named_id() |
|||
{ |
|||
var obj = |
|||
new JObject( |
|||
new JProperty("k", |
|||
new JObject( |
|||
new JProperty("v1", $"{id1},v1"), |
|||
new JProperty("v2", $"{id1},v2"), |
|||
new JProperty("v3", $"{id2},v3")))); |
|||
|
|||
map.NewGuids(obj); |
|||
|
|||
Assert.Equal($"{map.NewGuid(id1).ToString()},v1", obj["k"].Value<string>("v1")); |
|||
Assert.Equal($"{map.NewGuid(id1).ToString()},v2", obj["k"].Value<string>("v2")); |
|||
Assert.Equal($"{map.NewGuid(id2).ToString()},v3", obj["k"].Value<string>("v3")); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue