Beispiel #1
0
        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.");
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        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);
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        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));
        }
Beispiel #25
0
        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);
        }
Beispiel #26
0
        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));
        }
Beispiel #27
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);
        }
Beispiel #28
0
        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);
        }
Beispiel #29
0
        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);
        }
Beispiel #30
0
        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);
            }
        }