// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System.Linq; using FluentAssertions; using Squidex.Domain.Apps.Core.Apps; using Squidex.Infrastructure; using Xunit; #pragma warning disable SA1310 // Field names must not contain underscore namespace Squidex.Domain.Apps.Core.Model.Apps { public class AppPatternsTests { private readonly AppPatterns patterns_0; private readonly DomainId firstId = DomainId.NewGuid(); private readonly DomainId id = DomainId.NewGuid(); public AppPatternsTests() { patterns_0 = AppPatterns.Empty.Add(firstId, "Default", "Default Pattern", "Message"); } [Fact] public void Should_add_pattern() { var patterns_1 = patterns_0.Add(id, "NewPattern", "New Pattern", "Message"); patterns_1[id].Should().BeEquivalentTo(new AppPattern("NewPattern", "New Pattern") with { Message = "Message" }); } [Fact] public void Should_do_nothing_if_adding_pattern_with_same_id() { var patterns_1 = patterns_0.Add(firstId, "Default", "Default Pattern", "Message"); Assert.Same(patterns_1, patterns_0); } [Fact] public void Should_update_pattern() { var patterns_1 = patterns_0.Update(firstId, "UpdatePattern", "Update Pattern"); patterns_1[firstId].Should().BeEquivalentTo(new AppPattern("UpdatePattern", "Update Pattern")); } [Fact] public void Should_return_same_patterns_if_pattern_is_updated_with_same_values() { var patterns_1 = patterns_0.Update(firstId, "Default", "Default Pattern", "Message"); Assert.Same(patterns_0, patterns_1); } [Fact] public void Should_return_same_patterns_if_pattern_to_update_not_found() { var patterns_1 = patterns_0.Update(id, "NewPattern", "NewPattern", "Message"); Assert.Same(patterns_0, patterns_1); } [Fact] public void Should_remove_pattern() { var patterns_1 = patterns_0.Add(id, "Name1", "Pattern1"); var patterns_2 = patterns_1.Remove(firstId); Assert.Equal(id, patterns_2.Keys.Single()); } [Fact] public void Should_do_nothing_if_remove_pattern_not_found() { var patterns_1 = patterns_0.Remove(id); Assert.Same(patterns_0, patterns_1); } } }