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 }