public void ShouldReturnNullIfNoParentFound(GetParentCommand sut, Item item)
        {
            // arrange
            sut.Initialize(item);

            // act
            var result = ReflectionUtil.CallMethod(sut, "DoExecute");

            // assert
            result.Should().BeNull();
            sut.DataStorage.DidNotReceiveWithAnyArgs().GetSitecoreItem(null, null);
        }
        public void ShouldNotTryToLocateParentForSitecoreRoot(GetParentCommand sut, DbItem dbitem)
        {
            // arrange
            var rootId = ItemIDs.RootID;
            var item   = ItemHelper.CreateInstance(rootId);

            sut.DataStorage.GetFakeItem(rootId).Returns(dbitem);
            sut.Initialize(item);

            // act
            var result = ReflectionUtil.CallMethod(sut, "DoExecute");

            // assert
            result.Should().BeNull();
            sut.DataStorage.DidNotReceiveWithAnyArgs().GetSitecoreItem(null, null);
        }
        public void ShouldReturnRootItem(GetParentCommand sut, Item parentItem, Item childItem)
        {
            // arrange
            sut.DataStorage.GetFakeItem(childItem.ID).Returns(new DbItem("child", childItem.ID)
            {
                ParentID = parentItem.ID
            });
            sut.DataStorage.GetSitecoreItem(parentItem.ID, parentItem.Language).Returns(parentItem);

            sut.Initialize(childItem);

            // act
            var result = ReflectionUtil.CallMethod(sut, "DoExecute");

            // assert
            result.Should().Be(parentItem);
        }