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.
161 lines
5.1 KiB
161 lines
5.1 KiB
// ==========================================================================
|
|
// 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"));
|
|
}
|
|
}
|
|
}
|
|
|