public string ToFindString() {
using(var tran = this.engine.GetTransaction()) {
MappedObject root = null;
List<MappedObject> objects = new List<MappedObject>();
foreach (var row in tran.SelectForward<string, DbCustomSerializer<MappedObject>>(MappedObjectsTable)) {
var value = row.Value;
if (value == null) {
continue;
}
var data = value.Get;
if (data == null) {
continue;
}
if (data.ParentId == null) {
root = data;
} else {
objects.Add(data);
}
}
if (root == null) {
return string.Empty;
}
string result = this.PrintFindLines(objects, root, string.Empty);
var sb = new StringBuilder();
sb.Append(result);
foreach (var obj in objects) {
sb.Append(Environment.NewLine).Append(obj.ToString());
}
return sb.ToString();
}
}
public void ToLinePrintReturnsOneLinePerNotFittingEntry() { var storage = new MetaDataStorage(this.engine, Mock.Of<IPathMatcher>(), false); var rootFolder = new MappedObject("name", "rootId", MappedObjectType.Folder, null, "token"); var child1Folder = new MappedObject("sub1", "subId1", MappedObjectType.Folder, "WRONGID", "token"); storage.SaveMappedObject(rootFolder); storage.SaveMappedObject(child1Folder); string src = storage.ToFindString(); int count = src.Select((c, i) => src.Substring(i)).Count(sub => sub.StartsWith(Environment.NewLine)); Assert.That(count, Is.EqualTo(2), string.Format("Newlines Counting {0}:{2} {1}", count, src, Environment.NewLine)); }