public void IntPropTest() { const int hvo = 1; var clid = SilDataAccess.MetaDataCache.GetClassId("ClassB"); const int tag = (int)CmObjectFields.kflidCmObject_Class; SilDataAccess.SetInt(hvo, tag, clid); var clid1 = SilDataAccess.get_IntProp(hvo, tag); Assert.AreEqual(clid, clid1, "Wrong clid in cache."); // See if the int is there via another method. // It should be there. bool isInCache; var clid2 = VwCacheDa.get_CachedIntProp(hvo, tag, out isInCache); Assert.IsTrue(isInCache, "Int not in cache."); Assert.AreEqual(clid1, clid2, "Clids are not the same."); // See if the int is there via another method. // It should not be there. var ownerHvo = VwCacheDa.get_CachedIntProp(hvo, (int)CmObjectFields.kflidCmObject_Owner, out isInCache); Assert.IsFalse(isInCache, "Int is in cache."); Assert.AreEqual(0, ownerHvo, "Wrong owner."); }
public void IntPropTest() { CheckDisposed(); int hvo = 1; uint clid = SilDataAccess.MetaDataCache.GetClassId("PartOfSpeech"); int tag = (int)CmObjectFields.kflidCmObject_Class; SilDataAccess.SetInt(hvo, tag, (int)clid); int clid1 = SilDataAccess.get_IntProp(hvo, tag); Assert.AreEqual((int)clid, clid1, "Wrong clid in cache."); // See if the int is there via another method. // It should be there. bool isInCache = false; int clid2 = VwCacheDa.get_CachedIntProp(hvo, tag, out isInCache); Assert.IsTrue(isInCache, "Int not in cache."); Assert.AreEqual(clid1, clid2, "Clids are not the same."); // See if the int is there via another method. // It should not be there. isInCache = true; int ownerHvo = VwCacheDa.get_CachedIntProp(hvo, (int)CmObjectFields.kflidCmObject_Owner, out isInCache); Assert.IsFalse(isInCache, "Int is in cache."); Assert.AreEqual(0, ownerHvo, "Wrong owner."); }
public void MakeNewObjectTest_UnownedObject() { int hvoNew = SilDataAccess.MakeNewObject(1, 0, -1, 0); Assert.IsTrue(SilDataAccess.get_IsValidObject(hvoNew)); Assert.AreEqual(1, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Class)); }
public void BinaryPropTest() { CheckDisposed(); // ScrImportSet::ImportSettings:Binary // Set class first, or it will throw an exception. int hvo = 1; uint clidAnal = SilDataAccess.MetaDataCache.GetClassId("ScrImportSet"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clidAnal); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("ScrImportSet", "ImportSettings", false); using (ArrayPtr arrayPtr = MarshalEx.ArrayToNative(3, typeof(int))) { int chvo; byte[] prgb = new byte[] { 3, 4, 5 }; SilDataAccess.SetBinary(hvo, tag, prgb, prgb.Length); SilDataAccess.BinaryPropRgb(hvo, tag, arrayPtr, 3, out chvo); byte[] prgbNew = (byte[])MarshalEx.NativeToArray(arrayPtr, chvo, typeof(byte)); Assert.AreEqual(prgb.Length, prgbNew.Length); for (int i = 0; i < prgbNew.Length; i++) { Assert.AreEqual(prgb[i], prgbNew[i]); } } }
public void UnicodePropWrongLengthTest() { CheckDisposed(); // Set class first, or it will throw an exception. int hvo = 1; uint clidAnal = SilDataAccess.MetaDataCache.GetClassId("LangProject"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clidAnal); // Set its 'EthnologueCode' property, using the 'BSTR' method. int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("LangProject", "EthnologueCode", false); string ec = "ZPI"; SilDataAccess.set_UnicodeProp(hvo, tag, ec); string ec2 = SilDataAccess.get_UnicodeProp(hvo, tag); Assert.AreEqual(ec, ec2, "Wrong Unicode string in cache."); // Set its 'EthnologueCode' property, using non-bstr method. string ecNew = "ZPR"; SilDataAccess.SetUnicode(hvo, tag, ecNew, ecNew.Length); int len; SilDataAccess.UnicodePropRgch(hvo, tag, null, 0, out len); Assert.AreEqual(ecNew.Length, len); using (ArrayPtr arrayPtr = MarshalEx.StringToNative(len, true)) { int cch; // Should throw the exception here. SilDataAccess.UnicodePropRgch(hvo, tag, arrayPtr, len, out cch); } }
public void UnicodePropWrongLengthTest() { // Set class first, or it will throw an exception. const int hvo = 1; var clidAnal = SilDataAccess.MetaDataCache.GetClassId("ClassE"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clidAnal); // Set its 'UnicodeProp4' property, using the 'BSTR' method. var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassE", "UnicodeProp4", false); const string ec = "ZPI"; SilDataAccess.set_UnicodeProp(hvo, tag, ec); var ec2 = SilDataAccess.get_UnicodeProp(hvo, tag); Assert.AreEqual(ec, ec2, "Wrong Unicode string in cache."); // Set its 'UnicodeProp4' property, using non-bstr method. const string ecNew = "ZPR"; SilDataAccess.SetUnicode(hvo, tag, ecNew, ecNew.Length); int len; SilDataAccess.UnicodePropRgch(hvo, tag, null, 0, out len); Assert.AreEqual(ecNew.Length, len); using (var arrayPtr = MarshalEx.StringToNative(len, true)) { int cch; // Should throw the exception here. SilDataAccess.UnicodePropRgch(hvo, tag, arrayPtr, len, out cch); } }
public void MakeNewObjectTest_OwnedObjectSequence() { int hvoOwner = SilDataAccess.MakeNewObject(1, 0, -1, 0); var clid = SilDataAccess.MetaDataCache.GetClassId("ClassB"); var flid = SilDataAccess.MetaDataCache.GetFieldId2(1, "SequenceProp98", false); int[] hvoNewObjects = new int[5]; hvoNewObjects[0] = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, 1); hvoNewObjects[2] = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, 1); hvoNewObjects[1] = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, 1); hvoNewObjects[3] = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, 10); hvoNewObjects[4] = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, 0); Assert.AreEqual(5, SilDataAccess.get_VecSize(hvoOwner, flid)); int prevOwnOrd = -1; for (int i = 0; i < 5; i++) { int hvoNew = SilDataAccess.get_VecItem(hvoOwner, flid, i); Assert.IsTrue(SilDataAccess.get_IsValidObject(hvoNew)); Assert.AreEqual(flid, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_OwnFlid)); Assert.AreEqual(hvoOwner, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Owner)); int ownOrd = SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_OwnOrd); Assert.IsTrue(prevOwnOrd < ownOrd); prevOwnOrd = ownOrd; Assert.AreEqual(clid, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Class)); } }
public void StringPropWrongLengthFmtTest() { CheckDisposed(); // Set class first, or it will throw an exception. int hvo = 1; uint clid = SilDataAccess.MetaDataCache.GetClassId("PhEnvironment"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("PhEnvironment", "StringRepresentation", false); ITsPropsBldr propsBldr = TsPropsBldrClass.Create(); propsBldr.SetStrPropValue((int)FwTextPropType.ktptNamedStyle, "Verse"); ITsStrBldr strBldr = TsStrBldrClass.Create(); // Test StringFields (which are basically the same, except that the // format of the parameters is different) strBldr.Replace(0, 0, "Third", propsBldr.GetTextProps()); ITsString tsString = strBldr.GetString(); int cbFmt; byte[] rgbFmt; using (ArrayPtr arrayPtr = MarshalEx.ArrayToNative(1000, typeof(byte))) { cbFmt = tsString.SerializeFmtRgb(arrayPtr, 1000); rgbFmt = (byte[])MarshalEx.NativeToArray(arrayPtr, cbFmt, typeof(byte)); } VwCacheDa.CacheStringFields(hvo, tag, tsString.Text, tsString.Length, rgbFmt, cbFmt - 1); }
public void ObjPropKNTTest() { const int hvo = 1; // Set class first, or it will throw the exception in the wrong place. var clid = SilDataAccess.MetaDataCache.GetClassId("ClassC"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); SilDataAccess.get_ObjectProp(hvo, (int)CmObjectFields.kflidCmObject_Owner); }
public void GuidPropKNTTest() { const int hvo = 1; // Set class first, or it will throw the exception in the wrong place. var clidLe = SilDataAccess.MetaDataCache.GetClassId("ClassD"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clidLe); const int tag = (int)CmObjectFields.kflidCmObject_Guid; SilDataAccess.get_GuidProp(hvo, tag); }
public void In64PropKNTTest() { const int hvo = 1; // Set class first, or it will throw the exception in the wrong place. var clidLe = SilDataAccess.MetaDataCache.GetClassId("ClassF"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clidLe); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassF", "Int64Prop5", false); SilDataAccess.get_Int64Prop(hvo, tag); }
public void StringPropKNTTest() { // Set class first, or it will throw an exception. const int hvo = 1; var clid = SilDataAccess.MetaDataCache.GetClassId("ClassJ"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassJ", "StringProp10", false); SilDataAccess.get_StringProp(hvo, tag); }
public void UnkPropKNTTest() { const int hvo = 1; // Set class first, or it will throw the exception in the wrong place. var clid = SilDataAccess.MetaDataCache.GetClassId("ClassG"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassG", "TextPropsProp7", false); SilDataAccess.get_UnknownProp(hvo, tag); }
public void In64PropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clidLe = SilDataAccess.MetaDataCache.GetClassId("CmPerson"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clidLe); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("CmPerson", "DateOfBirth", false); long dob = SilDataAccess.get_Int64Prop(hvo, tag); }
public void BinaryPropKNTTest() { const int hvo = 1; // Set class first, or it will throw the exception in the wrong place. var clid = SilDataAccess.MetaDataCache.GetClassId("ClassI"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassI", "BinaryProp9", false); int chvo; SilDataAccess.BinaryPropRgb(hvo, tag, ArrayPtr.Null, 0, out chvo); }
public void UnkPropWrongInterfaceTest() { // First, set up class id. const int hvo = 1; var clid = SilDataAccess.MetaDataCache.GetClassId("ClassG"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tsPropsBuilder = TsStringUtils.MakePropsBldr(); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassG", "TextPropsProp7", false); SilDataAccess.SetUnknown(hvo, tag, tsPropsBuilder); }
public void UnicodePropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clid = SilDataAccess.MetaDataCache.GetClassId("LangProject"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("LangProject", "EthnologueCode", false); string ec = SilDataAccess.get_UnicodeProp(hvo, tag); }
public void BoolPropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clidLe = SilDataAccess.MetaDataCache.GetClassId("WfiAnalysis"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clidLe); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("WfiAnalysis", "Category", false); bool excludeOriginal = SilDataAccess.get_BooleanProp(hvo, tag); }
public void IntPropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clid = SilDataAccess.MetaDataCache.GetClassId("MoAdhocProhib"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("MoAdhocProhib", "Adjacency", false); int clid1 = SilDataAccess.get_IntProp(hvo, tag); }
public void TimePropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clid = SilDataAccess.MetaDataCache.GetClassId("LexEntry"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("LexEntry", "DateCreated", false); long dob = SilDataAccess.get_TimeProp(hvo, tag); }
public void StringPropKNTTest() { CheckDisposed(); // Set class first, or it will throw an exception. int hvo = 1; uint clid = SilDataAccess.MetaDataCache.GetClassId("PhEnvironment"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("PhEnvironment", "StringRepresentation", false); ITsString tsStringNew = SilDataAccess.get_StringProp(hvo, tag); }
public void UnkPropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clid = SilDataAccess.MetaDataCache.GetClassId("StPara"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("StPara", "StyleRules", false); object unk = SilDataAccess.get_UnknownProp(hvo, tag); }
public void GuidPropKNTTest() { CheckDisposed(); int hvo = 1; // Set class first, or it will throw the exception in the wrong place. uint clidLe = SilDataAccess.MetaDataCache.GetClassId("LexEntry"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clidLe); int tag = (int)CmObjectFields.kflidCmObject_Guid; Guid uid = SilDataAccess.get_GuidProp(hvo, tag); }
public void MakeNewObjectTest_OwnedObjectAtomic() { int hvoOwner = SilDataAccess.MakeNewObject(1, 0, -1, 0); var clid = SilDataAccess.MetaDataCache.GetClassId("ClassA"); var flid = SilDataAccess.MetaDataCache.GetFieldId2(1, "AtomicProp97", false); int hvoNew = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, -2); Assert.IsTrue(SilDataAccess.get_IsValidObject(hvoNew)); Assert.AreEqual(flid, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_OwnFlid)); Assert.AreEqual(hvoOwner, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Owner)); Assert.AreEqual(clid, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Class)); Assert.AreEqual(hvoNew, SilDataAccess.get_ObjectProp(hvoOwner, flid)); }
public void MultiStringNegativeWSTest() { // Set class first, or it will throw an exception. const int hvo = 1; var clid = SilDataAccess.MetaDataCache.GetClassId("ClassK"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassK", "MultiStringProp11", false); var tss = TsStringUtils.MakeString("Verb", 1); SilDataAccess.SetMultiStringAlt(hvo, tag, -1, tss); }
public void MakeNewObjectTest_OwnedObjectCollection() { int hvoOwner = SilDataAccess.MakeNewObject(1, 0, -1, 0); var clid = SilDataAccess.MetaDataCache.GetClassId("ClassC"); var flid = SilDataAccess.MetaDataCache.GetFieldId2(1, "CollectionProp99", false); int hvoNew = SilDataAccess.MakeNewObject(clid, hvoOwner, flid, -1); Assert.IsTrue(SilDataAccess.get_IsValidObject(hvoNew)); Assert.AreEqual(flid, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_OwnFlid)); Assert.AreEqual(hvoOwner, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Owner)); Assert.AreEqual(clid, SilDataAccess.get_ObjectProp(hvoNew, (int)CmObjectFields.kflidCmObject_Class)); Assert.AreEqual(1, SilDataAccess.get_VecSize(hvoOwner, flid)); Assert.AreEqual(hvoNew, SilDataAccess.get_VecItem(hvoOwner, flid, 0)); }
public void UnkPropMisMatchedFlidTest() { // First, set up class id. const int hvo = 1; var clid = SilDataAccess.MetaDataCache.GetClassId("ClassE"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tsPropsBuilder = TsStringUtils.MakePropsBldr(); var props = tsPropsBuilder.GetTextProps(); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassE", "UnicodeProp4", false); SilDataAccess.SetUnknown(hvo, tag, props); }
public void UnkPropWrongInterfaceTest() { CheckDisposed(); // First, set up class id. int hvo = 1; uint clid = SilDataAccess.MetaDataCache.GetClassId("StPara"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); ITsPropsBldr tsPropsBuilder = TsPropsBldrClass.Create(); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("StPara", "StyleRules", false); SilDataAccess.SetUnknown(hvo, tag, tsPropsBuilder); }
public void MultiString0WSTest() { CheckDisposed(); // Set class first, or it will throw an exception. int hvo = 1; uint clid = SilDataAccess.MetaDataCache.GetClassId("CmPossibility"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, (int)clid); int tag = (int)SilDataAccess.MetaDataCache.GetFieldId("CmPossibility", "Name", false); ITsStrFactory tsf = TsStrFactoryClass.Create(); ITsString tss = tsf.MakeString("Verb", 1); SilDataAccess.SetMultiStringAlt(hvo, tag, 0, tss); }
public void BinaryPropWrongLengthTest() { const int hvo = 1; var clid = SilDataAccess.MetaDataCache.GetClassId("ClassI"); SilDataAccess.SetInt(hvo, (int)CmObjectFields.kflidCmObject_Class, clid); var tag = SilDataAccess.MetaDataCache.GetFieldId("ClassI", "BinaryProp9", false); using (var arrayPtr = MarshalEx.ArrayToNative <int>(2)) { var prgb = new byte[] { 3, 4, 5 }; int chvo; SilDataAccess.SetBinary(hvo, tag, prgb, prgb.Length); SilDataAccess.BinaryPropRgb(hvo, tag, arrayPtr, 2, out chvo); } }