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")); }
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)); }
public void TestContainsKeySuccess() { string key1 = "testKey"; string toWrite1 = "written"; NtCore.SetEntryValue(key1, Value.MakeString(toWrite1)); Assert.That(NtCore.ContainsEntry(key1)); }
public void TestGetTypeSuccess() { string key1 = "testKey"; string toWrite1 = "written"; NtCore.SetEntryValue(key1, Value.MakeString(toWrite1)); Assert.That(NtCore.GetType(key1), Is.EqualTo(NtType.String)); }
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); }
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)); }
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); }
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); }
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); }