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.
182 lines
5.2 KiB
182 lines
5.2 KiB
// ==========================================================================
|
|
// Squidex Headless CMS
|
|
// ==========================================================================
|
|
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|
// All rights reserved. Licensed under the MIT license.
|
|
// ==========================================================================
|
|
|
|
using Squidex.Domain.Apps.Core.Assets;
|
|
using Squidex.Domain.Apps.Core.TestHelpers;
|
|
using Squidex.Infrastructure;
|
|
|
|
namespace Squidex.Domain.Apps.Core.Model.Assets;
|
|
|
|
#pragma warning disable SA1310 // Field names must not contain underscore
|
|
|
|
public class AssetTests
|
|
{
|
|
private readonly Asset asset_0 = new Asset();
|
|
|
|
[Fact]
|
|
public void Should_move()
|
|
{
|
|
var newParentId = DomainId.NewGuid();
|
|
|
|
var asset_1 = asset_0.Move(newParentId);
|
|
var asset_2 = asset_1.Move(newParentId);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newParentId, asset_1.ParentId);
|
|
Assert.Equal(newParentId, asset_2.ParentId);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_annotate_with_null_file_name()
|
|
{
|
|
var asset_1 = asset_0.Annotate(fileName: null);
|
|
|
|
Assert.Same(asset_1, asset_0);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_annotate_with_file_name()
|
|
{
|
|
var newFileName = "MyFile.png";
|
|
|
|
var asset_1 = asset_0.Annotate(fileName: newFileName);
|
|
var asset_2 = asset_1.Annotate(fileName: newFileName);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newFileName, asset_1.FileName);
|
|
Assert.Equal(newFileName, asset_2.FileName);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_annotate_with_null_slug()
|
|
{
|
|
var asset_1 = asset_0.Annotate(slug: null);
|
|
|
|
Assert.Same(asset_1, asset_0);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_annotate_with_slug()
|
|
{
|
|
var newSlug = "my-file.png";
|
|
|
|
var asset_1 = asset_0.Annotate(slug: newSlug);
|
|
var asset_2 = asset_1.Annotate(slug: newSlug);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newSlug, asset_1.Slug);
|
|
Assert.Equal(newSlug, asset_2.Slug);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_annotate_with_null_protected()
|
|
{
|
|
var asset_1 = asset_0.Annotate(isProtected: null);
|
|
|
|
Assert.Same(asset_1, asset_0);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_annotate_with_protected()
|
|
{
|
|
var newProtected = true;
|
|
|
|
var asset_1 = asset_0.Annotate(isProtected: newProtected);
|
|
var asset_2 = asset_1.Annotate(isProtected: newProtected);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newProtected, asset_1.IsProtected);
|
|
Assert.Equal(newProtected, asset_2.IsProtected);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_annotate_with_null_tags()
|
|
{
|
|
var asset_1 = asset_0.Annotate(tags: null);
|
|
|
|
Assert.Same(asset_1, asset_0);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_annotate_with_tags()
|
|
{
|
|
var newTags1 = new HashSet<string> { "tag1" };
|
|
var newTags2 = new HashSet<string> { "tag1" };
|
|
|
|
var asset_1 = asset_0.Annotate(tags: newTags1);
|
|
var asset_2 = asset_1.Annotate(tags: newTags2);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newTags1, asset_1.Tags);
|
|
Assert.Equal(newTags2, asset_2.Tags);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_not_annotate_with_null_metadata()
|
|
{
|
|
var asset_1 = asset_0.Annotate(metadata: null);
|
|
|
|
Assert.Same(asset_1, asset_0);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_annotate_with_metadata()
|
|
{
|
|
var newMetadata1 = new AssetMetadata { [KnownMetadataKeys.PixelWidth] = 1024 };
|
|
var newMetadata2 = new AssetMetadata { [KnownMetadataKeys.PixelWidth] = 1024 };
|
|
|
|
var asset_1 = asset_0.Annotate(metadata: newMetadata1);
|
|
var asset_2 = asset_1.Annotate(metadata: newMetadata2);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newMetadata1, asset_1.Metadata);
|
|
Assert.Equal(newMetadata2, asset_2.Metadata);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_annotate_with_multiple_properties()
|
|
{
|
|
var newSlug = "my-file.png";
|
|
var newFile = "My File";
|
|
|
|
var asset_1 = asset_0.Annotate(fileName: newFile, slug: newSlug);
|
|
var asset_2 = asset_1.Annotate(fileName: newFile, slug: newSlug);
|
|
|
|
Assert.NotSame(asset_0, asset_1);
|
|
Assert.Equal(newSlug, asset_1.Slug);
|
|
Assert.Equal(newSlug, asset_2.Slug);
|
|
Assert.Equal(newFile, asset_1.FileName);
|
|
Assert.Equal(newFile, asset_2.FileName);
|
|
Assert.Same(asset_1, asset_2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_deserialize_state()
|
|
{
|
|
var json = File.ReadAllText("Model/Assets/Asset.json");
|
|
|
|
var deserialized = TestUtils.DefaultSerializer.Deserialize<Asset>(json);
|
|
|
|
Assert.NotNull(deserialized);
|
|
}
|
|
|
|
[Fact]
|
|
public void Should_serialize_deserialize_state()
|
|
{
|
|
var json = File.ReadAllText("Model/Assets/Asset.json").CleanJson();
|
|
|
|
var serialized = TestUtils.SerializeWithoutNulls(TestUtils.DefaultSerializer.Deserialize<Asset>(json));
|
|
|
|
Assert.Equal(json, serialized);
|
|
}
|
|
}
|
|
|