public void Can_Save_Page_Draft()
{
// Given
IPage fakePage;
IPage draft;
var container = A.Fake<IContainer>();
// When
using (var store = this.SetupContext())
{
using (var session = store.OpenSession())
{
fakePage = new FakePage
{
Id = "fakepages/1",
Metadata =
{
Name = "Published version"
}
};
session.Store(fakePage, StoreAction.Publish);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
draft = session.Load<IPage>("fakepages/1");
draft.Metadata.Name = "Page draft";
session.Store(draft, StoreAction.Save);
session.SaveChanges();
}
using (var session = store.OpenSession())
{
fakePage = session.Load<IPage>("fakepages/1");
draft = session.Load<IPage>("fakepages/1/draft");
}
// Then
Assert.NotNull(fakePage);
Assert.Equal("fakepages/1", fakePage.Id);
Assert.Equal("Published version", fakePage.Metadata.Name);
Assert.NotNull(draft);
Assert.Equal("fakepages/1/draft", draft.Id);
Assert.Equal("Page draft", draft.Metadata.Name);
}
}