public void Can_Publish_Second_Level_Child_With_Draft_As_Child()
{
// Given
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.Save);
session.Store(
new FakePage {Parent = new PageReference(child.Id), Metadata = {Name = "Child2"}},
StoreAction.Save);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
child = session.Load<IPage>("FakePages/2");
child.Metadata.Name = "Changed name";
session.Store(child, StoreAction.Publish);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
child = session.Load<IPage>("FakePages/3");
}
// Then
Assert.Equal(child.Parent.Id, "FakePages/2");
Assert.Equal(default(DateTime?), child.Metadata.Published);
}
}