BrickPile.Tests.Infrastructure.Listeners.StoreListenerTests.BeforeStore.Can_Publish_Second_Level_Child_With_Draft_As_Child C# (CSharp) Method

Can_Publish_Second_Level_Child_With_Draft_As_Child() private method

            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);
                }
            }