public void InitializePlugin_CheckPropertyIDs()
        {
            #region data

            // create db
            var graphDB = new SonesGraphDB();
            var transactionToken = 0L;
            var securityToken = new SecurityToken();

            // create vertex type with attribute
            var vertexType = graphDB.CreateVertexType<IVertexType>(securityToken,
                transactionToken,
                new RequestCreateVertexType(
                    new VertexTypePredefinition("dummy")
                    .AddProperty(new PropertyPredefinition("age", "Int32"))),
                    (stats, type) => type);

            // create persistent index on attribute
            var indexDef = graphDB.CreateIndex<IIndexDefinition>(securityToken,
                transactionToken,
                new RequestCreateIndex(new IndexPredefinition("myindex", "dummy").AddProperty("age").SetIndexType("binarytree")),
                (stats, index) => index);

            #endregion

            #region test

            var metaManager = GetMetaManager(graphDB);
            var sonesIdx = metaManager.IndexManager.GetIndex("myindex", securityToken, transactionToken);

            // propertyID stored at the index
            var indexPropertyIDs = (List<Int64>)new BinaryTreeIndex().GetType().GetField("_PropertyIDs", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(sonesIdx);

            // propertyID stored at the vertextype
            var propID = vertexType.GetPropertyDefinition("age").ID;

            Assert.IsTrue(indexPropertyIDs.Contains(propID), "indexed propertyID is not the same as propertyID at vertex type");

            #endregion

            #region Cleanup

            graphDB.Shutdown(securityToken);

            #endregion
        }