BetterCms.Test.Module.Pages.ServiceTests.SitemapServiceTests.Should_Archive_Unarchive_Sitemap_Successfully C# (CSharp) Метод

Should_Archive_Unarchive_Sitemap_Successfully() приватный Метод

private Should_Archive_Unarchive_Sitemap_Successfully ( ) : void
Результат void
        public void Should_Archive_Unarchive_Sitemap_Successfully()
        {
            var sitemap = TestDataProvider.CreateNewSitemap();
            sitemap.Nodes = new List<SitemapNode>
                {
                    TestDataProvider.CreateNewSitemapNode(sitemap),
                    TestDataProvider.CreateNewSitemapNode(sitemap),
                    TestDataProvider.CreateNewSitemapNode(sitemap)
                };
            var rootNode = TestDataProvider.CreateNewSitemapNode(sitemap);
            foreach (var node in sitemap.Nodes)
            {
                node.ParentNode = rootNode;
            }
            sitemap.Nodes.Add(rootNode);

            var repositoryMock = new Mock<IRepository>();
            repositoryMock
                .Setup(f => f.AsQueryable<Sitemap>())
                .Returns(new[] { sitemap }.AsQueryable());

            var savedMaps = new List<SitemapArchive>();
            repositoryMock
                .Setup(f => f.Save(It.IsAny<SitemapArchive>()))
                .Callback<SitemapArchive>(savedMaps.Add);

            repositoryMock
                .Setup(f => f.AsQueryable<SitemapArchive>())
                .Returns(savedMaps.AsQueryable);

            var cmsConfigurationMock = new Mock<ICmsConfiguration>();
            cmsConfigurationMock.Setup(f => f.EnableMacros).Returns(false);

            var service = new DefaultSitemapService(repositoryMock.Object, null, cmsConfigurationMock.Object, null);
            service.ArchiveSitemap(sitemap.Id);

            Assert.AreEqual(savedMaps.Count, 1);
            Assert.AreEqual(savedMaps[0].Sitemap.Id, sitemap.Id);
            Assert.IsNotEmpty(savedMaps[0].ArchivedVersion);

            var unarchivedSitemap = service.GetArchivedSitemapVersionForPreview(savedMaps[0].Id);
            Assert.IsNotNull(unarchivedSitemap);
            Assert.AreEqual(sitemap.Nodes.Count, unarchivedSitemap.Nodes.Count);

            unarchivedSitemap.Nodes = unarchivedSitemap.Nodes.OrderBy(node => node.Title).ToList();
            sitemap.Nodes = sitemap.Nodes.OrderBy(node => node.Title).ToList();

            for (var i = 0; i < sitemap.Nodes.Count; i++)
            {
                var orig = sitemap.Nodes[i];
                var unarchived = unarchivedSitemap.Nodes[i];

                Assert.AreEqual(orig.Title, unarchived.Title);
                Assert.AreEqual(orig.Url, unarchived.Url);
                Assert.AreEqual(orig.UrlHash, unarchived.UrlHash);
            }
        }
    }