handler2 = function (oEvent) {
			oBinding.detachChange(handler2);

			// Tree is correctly filtered, since it's done on the client, and the inner child nodes are collected for the filtered tree
			// Level: 0
			var aContexts = oBinding.getRootContexts(0, 10);
			assert.equal(aContexts.length, 7, "TreeBinding returned rootContexts length");

			var oContext = aContexts[0];
			assert.equal(oModel.getProperty("FinStatementHierarchyLevelVal", oContext), 2, "Level filter was correct");
			assert.equal(oModel.getProperty("HierarchyNode", oContext), "000002", "HierachyNode ID is correct");
			assert.equal(oModel.getProperty("FinancialStatementItemText", oContext)[0], "A", "Item Text filter was correct");

			//Level: 1
			aContexts = oBinding.getNodeContexts(aContexts[0], 0, 20);

			assert.equal(aContexts.length, 5, "Correct child count on level 1");
			assert.notEqual(aContexts[3].getProperty("FinancialStatementItemText")[0], "A", "0.3 - doesn't match filter - it's an inner node");
			assert.equal(aContexts[4].getProperty("FinancialStatementItemText")[0], "A", "0.4 - FinancialStatementItemText starts with 'A'");

			//Level: 2
			aContexts = oBinding.getNodeContexts(aContexts[3], 0, 20);
			assert.equal(aContexts.length, 1, "Inner node has exactly 1 child");

			done();
		}
Handler 2 is called after the filtering is done on the clientside