public void Rename_SubtreeCheck()
{
EnsureNode("[TestRoot]/AA/BB/DD");
EnsureNode("[TestRoot]/AA/BB/EE");
EnsureNode("[TestRoot]/AA/CC/FF");
Assert.IsNotNull(LoadNode("[TestRoot]/AA"));
Assert.IsNotNull(LoadNode("[TestRoot]/AA/BB"));
Assert.IsNotNull(LoadNode("[TestRoot]/AA/BB/DD"));
Assert.IsNotNull(LoadNode("[TestRoot]/AA/BB/EE"));
Assert.IsNotNull(LoadNode("[TestRoot]/AA/CC"));
Assert.IsNotNull(LoadNode("[TestRoot]/AA/CC/FF"));
var node = LoadNode("[TestRoot]/AA");
node.Name = "XX";
node.Save();
Assert.IsNull(LoadNode("[TestRoot]/AA"));
Assert.IsNull(LoadNode("[TestRoot]/AA/BB"));
Assert.IsNull(LoadNode("[TestRoot]/AA/BB/DD"));
Assert.IsNull(LoadNode("[TestRoot]/AA/BB/EE"));
Assert.IsNull(LoadNode("[TestRoot]/AA/CC"));
Assert.IsNull(LoadNode("[TestRoot]/AA/CC/FF"));
Assert.IsNotNull(LoadNode("[TestRoot]/XX"));
Assert.IsNotNull(LoadNode("[TestRoot]/XX/BB"));
Assert.IsNotNull(LoadNode("[TestRoot]/XX/BB/DD"));
Assert.IsNotNull(LoadNode("[TestRoot]/XX/BB/EE"));
Assert.IsNotNull(LoadNode("[TestRoot]/XX/CC"));
Assert.IsNotNull(LoadNode("[TestRoot]/XX/CC/FF"));
var q1 = new SenseNet.ContentRepository.Storage.Search.NodeQuery(
new SenseNet.ContentRepository.Storage.Search.StringExpression(
SenseNet.ContentRepository.Storage.Search.StringAttribute.Path,
SenseNet.ContentRepository.Storage.Search.StringOperator.StartsWith,
String.Concat(_testRootPath, "/AA")));
var result1 = q1.Execute();
Assert.IsTrue(result1.Count == 0, "#1");
var q2 = new SenseNet.ContentRepository.Storage.Search.NodeQuery(
new SenseNet.ContentRepository.Storage.Search.StringExpression(
SenseNet.ContentRepository.Storage.Search.StringAttribute.Path,
SenseNet.ContentRepository.Storage.Search.StringOperator.StartsWith,
String.Concat(_testRootPath, "/XX")));
var result2 = q2.Execute();
Assert.IsTrue(result2.Count == 6, "#2");
}