// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Xml.Linq; using FakeItEasy; using Squidex.Infrastructure; using Squidex.Infrastructure.States; using Xunit; namespace Squidex.Domain.Users { public class DefaultXmlRepositoryTests { private readonly ISnapshotStore store = A.Fake>(); private readonly DefaultXmlRepository sut; public DefaultXmlRepositoryTests() { sut = new DefaultXmlRepository(store); } [Fact] public void Should_write_new_item_to_store_with_friendly_name() { sut.StoreElement(new XElement("a"), "friendly-name"); A.CallTo(() => store.WriteAsync("friendly-name", A.That.Matches(x => x.Xml == ""), EtagVersion.Any, EtagVersion.Any)) .MustHaveHappened(); } [Fact] public void Should_return_items_from_store() { A.CallTo(() => store.ReadAllAsync(A>.Ignored, A.Ignored)) .Invokes((Func callback, CancellationToken ct) => { callback(new DefaultXmlRepository.State { Xml = "" }, EtagVersion.Any); callback(new DefaultXmlRepository.State { Xml = "" }, EtagVersion.Any); callback(new DefaultXmlRepository.State { Xml = "" }, EtagVersion.Any); }); var result = sut.GetAllElements().ToList(); Assert.Equal("", result[0].ToString()); Assert.Equal("", result[1].ToString()); Assert.Equal("", result[2].ToString()); } } }