public void Ensure_Path_Entity_Valid_Recursive_Parent()
    {
        var parentA = _builder
                      .WithId(999)
                      .Build();

        // Re-creating the class-level builder as we need to reset before usage when creating multiple entities.
        _builder = new EntitySlimBuilder();
        var parentB = _builder
                      .WithId(888)
                      .WithParentId(999)
                      .Build();

        _builder = new EntitySlimBuilder();
        var parentC = _builder
                      .WithId(777)
                      .WithParentId(888)
                      .Build();

        _builder = new EntitySlimBuilder();
        var entity = _builder
                     .WithId(1234)
                     .WithParentId(777)
                     .Build();

        IUmbracoEntity GetParent(IUmbracoEntity umbracoEntity)
        {
            switch (umbracoEntity.ParentId)
            {
            case 999:
                return(parentA);

            case 888:
                return(parentB);

            case 777:
                return(parentC);

            case 1234:
                return(entity);

            default:
                return(null);
            }
        }

        // this will recursively fix all paths
        entity.EnsureValidPath(Mock.Of <ILogger <IUmbracoEntity> >(), GetParent, umbracoEntity => { });

        Assert.AreEqual("-1,999", parentA.Path);
        Assert.AreEqual("-1,999,888", parentB.Path);
        Assert.AreEqual("-1,999,888,777", parentC.Path);
        Assert.AreEqual("-1,999,888,777,1234", entity.Path);
    }
 public void SetUp() => _builder = new EntitySlimBuilder();