public void Can_Publish_Then_Unpublish_And_Republish_Root_Page_With_Children()
{
// Given
Trie structureInfo;
IPage start;
// When
using (var store = this.SetupContext())
{
using (var session = store.OpenSession())
{
start = new FakePage {Metadata = {Name = "Start"}};
session.Store(start, StoreAction.Publish);
session.Store(new FakePage {Parent = new PageReference(start.Id), Metadata = {Name = "Child"}},
StoreAction.Publish);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
start = session.Load<FakePage>("FakePages/1");
session.Store(start, StoreAction.Save);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
start = session.Load<FakePage>("FakePages/1/draft");
session.Store(start, StoreAction.Publish);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId);
}
// Then
Assert.NotEmpty(structureInfo.RootNode.Children);
}
}