コード例 #1
0
        public void TestSavePersistent()
        {
            string key1     = "key1";
            string toWrite1 = "val1";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite1));
            NtCore.SetEntryFlags(key1, EntryFlags.Persistent);

            string key2 = "key2";

            NtCore.SetEntryValue(key2, Value.MakeBoolean(true));
            NtCore.SetEntryFlags(key2, EntryFlags.Persistent);

            string fileName = "testfile.txt";

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            NtCore.SavePersistent(fileName);

            string[] lines = File.ReadAllLines(fileName);

            Assert.That(lines.Length, Is.GreaterThanOrEqualTo(3));
            Assert.That(lines[0], Contains.Substring("[NetworkTables Storage 3.0]"));
            Assert.That(lines[1], Contains.Substring($"string \"{key1}\"=\"{toWrite1}\""));
            Assert.That(lines[2], Contains.Substring($"boolean \"{key2}\"=true"));
        }
コード例 #2
0
        public void TestGetEntriesOnlyString()
        {
            string key1     = "testKey";
            string toWrite1 = "written";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite1));

            string key2     = "testKey2";
            double toWrite2 = 3.58;

            NtCore.SetEntryValue(key2, Value.MakeDouble(toWrite2));

            string key3     = "testKey3";
            bool   toWrite3 = true;

            NtCore.SetEntryValue(key3, Value.MakeBoolean(toWrite3));

            Thread.Sleep(20);

            var entries = NtCore.GetEntryInfo("", NtType.String);

            Assert.That(1, Is.EqualTo(entries.Count));

            Assert.That(entries[0].Name, Is.EqualTo(key1));
            Assert.That(entries[0].Type, Is.EqualTo(NtType.String));
            Assert.That(entries[0].Flags, Is.EqualTo(EntryFlags.None));
            Assert.That(entries[0].LastChange, Is.GreaterThan(0));
        }
コード例 #3
0
        public void TestContainsKeySuccess()
        {
            string key1     = "testKey";
            string toWrite1 = "written";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite1));

            Assert.That(NtCore.ContainsEntry(key1));
        }
コード例 #4
0
        public void TestGetTypeSuccess()
        {
            string key1     = "testKey";
            string toWrite1 = "written";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite1));

            Assert.That(NtCore.GetType(key1), Is.EqualTo(NtType.String));
        }
コード例 #5
0
        public void TestAddEntryListener()
        {
            string key1     = "testKey";
            string toWrite1 = "written";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite1));

            int         count         = 0;
            string      recievedKey   = "";
            Value       recievedValue = null;
            NotifyFlags receivedFlags = 0;

            NotifyFlags f = NotifyFlags.NotifyNew | NotifyFlags.NotifyUpdate;

            if (true)
            {
                f |= NotifyFlags.NotifyLocal;
            }

            int listener = NtCore.AddEntryListener(key1, (uid, key, value, flags) =>
            {
                count++;
                recievedKey   = key;
                recievedValue = value;
                receivedFlags = flags;
            }, f);

            string toWrite2 = "NewNumber";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite2));

            Thread.Sleep(20);

            Assert.That(count, Is.GreaterThanOrEqualTo(1));
            Assert.That(recievedKey, Is.EqualTo(key1));
            Assert.That(recievedValue, Is.Not.Null);

            Assert.That(recievedValue.IsString);

            var retValue = recievedValue.GetString();

            Assert.That(retValue, Is.Not.Null);
            Assert.That(retValue, Is.EqualTo(toWrite2));

            Assert.That(receivedFlags.HasFlag(NotifyFlags.NotifyLocal));

            NtCore.RemoveEntryListener(listener);
        }
コード例 #6
0
        public void TestGetEntryFlags()
        {
            string key = "testKey";

            NtCore.SetEntryValue(key, Value.MakeString("value"));

            EntryFlags flags = NtCore.GetEntryFlags(key);

            Assert.That(flags, Is.EqualTo(EntryFlags.None));

            NtCore.SetEntryFlags(key, EntryFlags.Persistent);

            flags = NtCore.GetEntryFlags(key);

            Assert.That(flags, Is.EqualTo(EntryFlags.Persistent));
        }
コード例 #7
0
        public void TestEntryListenerBooleanArray()
        {
            string key1 = "testKey";

            bool[] toWrite1 = { true, true, true };
            NtCore.SetEntryValue(key1, Value.MakeBooleanArray(toWrite1));

            int         count         = 0;
            string      recievedKey   = "";
            Value       recievedValue = null;
            NotifyFlags receivedFlags = 0;

            NotifyFlags f = NotifyFlags.NotifyNew | NotifyFlags.NotifyUpdate;

            if (true)
            {
                f |= NotifyFlags.NotifyImmediate;
            }

            int listener = NtCore.AddEntryListener(key1, (uid, key, value, flags) =>
            {
                count++;
                recievedKey   = key;
                recievedValue = value;
                receivedFlags = flags;
            }, f);

            Thread.Sleep(300);

            Assert.That(count, Is.EqualTo(1));
            Assert.That(recievedKey, Is.EqualTo(key1));
            Assert.That(recievedValue, Is.Not.Null);

            Assert.That(recievedValue.IsBooleanArray());

            bool[] retValue = recievedValue.GetBooleanArray();

            for (int i = 0; i < retValue.Length; i++)
            {
                Assert.That(retValue[i], Is.EqualTo(toWrite1[i]));
            }

            Assert.That(receivedFlags.HasFlag(NotifyFlags.NotifyImmediate));

            NtCore.RemoveEntryListener(listener);
        }
コード例 #8
0
        public void TestDeleteEntry()
        {
            string key1     = "testKey";
            string toWrite1 = "written";

            NtCore.SetEntryValue(key1, Value.MakeString(toWrite1));

            string key2     = "testKey2";
            double toWrite2 = 3.58;

            NtCore.SetEntryValue(key2, Value.MakeDouble(toWrite2));

            Assert.That(NtCore.GetEntryInfo("", 0).Count, Is.EqualTo(2));

            NtCore.DeleteEntry(key1);

            Assert.That(NtCore.GetEntryInfo("", 0).Count, Is.EqualTo(1));

            Assert.That(NtCore.GetEntryValue(key1), Is.Null);
        }
コード例 #9
0
        public void TestAddEntryListenerDefaultTypes(object val)
        {
            string key1 = "testKey";

            if (val is double)
            {
                NtCore.SetEntryValue(key1, Value.MakeDouble((double)val));
            }
            else if (val is bool)
            {
                NtCore.SetEntryValue(key1, Value.MakeBoolean((bool)val));
            }
            else if (val is string)
            {
                NtCore.SetEntryValue(key1, Value.MakeString((string)val));
            }

            int         count         = 0;
            string      recievedKey   = "";
            Value       recievedValue = null;
            NotifyFlags receivedFlags = 0;

            NotifyFlags f = NotifyFlags.NotifyNew | NotifyFlags.NotifyUpdate;

            if (true)
            {
                f |= NotifyFlags.NotifyImmediate;
            }

            int listener = NtCore.AddEntryListener(key1, (uid, key, value, flags) =>
            {
                count++;
                recievedKey   = key;
                recievedValue = value;
                receivedFlags = flags;
            }, f);

            Thread.Sleep(20);

            Assert.That(count, Is.EqualTo(1));
            Assert.That(recievedKey, Is.EqualTo(key1));
            Assert.That(recievedValue, Is.Not.Null);

            if (val is double)
            {
                Assert.That(recievedValue.IsDouble());

                var retValue = recievedValue.GetDouble();
                Assert.That(retValue, Is.EqualTo((double)val));
                Assert.That(receivedFlags.HasFlag(NotifyFlags.NotifyImmediate));
            }
            else if (val is bool)
            {
                Assert.That(recievedValue.IsBoolean());

                var retValue = recievedValue.GetBoolean();
                Assert.That(retValue, Is.EqualTo((bool)val));

                Assert.That(receivedFlags.HasFlag(NotifyFlags.NotifyImmediate));
            }
            else if (val is string)
            {
                Assert.That(recievedValue.IsString);

                var retValue = recievedValue.GetString();
                Assert.That(retValue, Is.Not.Null);
                Assert.That(retValue, Is.EqualTo((string)val));

                Assert.That(receivedFlags.HasFlag(NotifyFlags.NotifyImmediate));
            }
            else
            {
                NtCore.RemoveEntryListener(listener);
                Assert.Fail("Unknown type");
                return;
            }

            NtCore.RemoveEntryListener(listener);
        }