public void Can_Publish_Then_Unpublish_And_Republish_Child_Page_With_Children()
{
// Given
Trie structureInfo;
IPage start, child;
// When
using (var store = this.SetupContext())
{
using (var session = store.OpenSession())
{
start = new FakePage {Metadata = {Name = "Start"}};
session.Store(start, StoreAction.Publish);
child = new FakePage {Parent = new PageReference(start.Id), Metadata = {Name = "Child"}};
session.Store(child, StoreAction.Publish);
session.Store(
new FakePage {Parent = new PageReference(child.Id), Metadata = {Name = "Child2"}},
StoreAction.Publish);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
child = session.Load<FakePage>("FakePages/2");
session.Store(child, StoreAction.Save);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
child = session.Load<FakePage>("FakePages/2/Draft");
child.Metadata.Name = "Do it";
session.Store(child, StoreAction.Save);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId);
child = session.Load<FakePage>("FakePages/2/Draft");
}
// Then
Assert.NotEmpty(structureInfo.RootNode.Children);
Assert.NotNull(child);
//Assert.NotEmpty(structureInfo.RootNode.Children.Single(x => x.DraftId == "FakePages/2/draft").Children);
//Assert.NotNull(structureInfo.RootNode.Children.Single(x => x.DraftId == "FakePages/2/draft").ParentId);'}
}
}