public IEnumerator TestImport() { UnityThread.Initialize(); var store = new DummyStore(); yield return(InitStore(store)); var listeners = new List <TaskListener <DummyIndex> >() { new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>() }; for (int i = 0; i < listeners.Count; i++) { yield return(WaitImport(store, i, listeners[i])); var value = listeners[i].Value; Assert.IsNotNull(value); Assert.AreEqual($"00000000-0000-0000-0000-00000000000{i}", value.Id.ToString()); Assert.AreEqual($"Name{i}", value.Name); Assert.AreEqual(i, value.Age); Assert.AreEqual(i % 2 == 1, value.IsVerified); } Assert.AreEqual(3, store.Count); }
public IEnumerator TestInitialize() { UnityThread.Initialize(); var store = new DummyStore(); yield return(InitStore(store)); }
private IEnumerator InitStore(DummyStore store, int expectedCount = 0) { var listener = new TaskListener(); store.Reload(listener).Wait(); yield return(null); Assert.AreEqual(1f, listener.Progress, 0.00001f); Assert.AreEqual(expectedCount, store.Count); }
public IEnumerator TestDelete() { UnityThread.Initialize(); var store = new DummyStore(); yield return(InitStore(store)); var listeners = new List <TaskListener <DummyIndex> >() { new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>() }; for (int i = 0; i < listeners.Count; i++) { yield return(WaitImport(store, i, listeners[i])); var value = listeners[i].Value; Assert.IsNotNull(value); Assert.AreEqual($"00000000-0000-0000-0000-00000000000{i}", value.Id.ToString()); Assert.AreEqual($"Name{i}", value.Name); Assert.AreEqual(i, value.Age); Assert.AreEqual(i % 2 == 1, value.IsVerified); } Assert.AreEqual(3, store.Count); var removeList = new List <DummyIndex>(); store.OnRemoveData += (removed) => removeList.Add(removed); store.Delete(listeners[2].Value); Assert.AreEqual(2, store.Count); Assert.IsNotNull(removeList[0]); Assert.AreEqual($"00000000-0000-0000-0000-000000000002", removeList[0].Id.ToString()); Assert.AreEqual($"Name2", removeList[0].Name); Assert.AreEqual(2, removeList[0].Age); Assert.AreEqual(false, removeList[0].IsVerified); store.DeleteAll(); Assert.AreEqual(1, removeList.Count); Assert.AreEqual(0, store.Count); for (int i = 0; i < 3; i++) { Assert.IsFalse(GetDataDirectory(i).Exists); } }
public IEnumerator TestReload() { UnityThread.Initialize(); var store = new DummyStore(); yield return(InitStore(store)); var listeners = new List <TaskListener <DummyIndex> >() { new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>() }; for (int i = 0; i < listeners.Count; i++) { yield return(WaitImport(store, i, listeners[i])); var value = listeners[i].Value; Assert.IsNotNull(value); Assert.AreEqual(GetDataDirectory(i).FullName, value.Directory.FullName); Assert.AreEqual($"00000000-0000-0000-0000-00000000000{i}", value.Id.ToString()); Assert.AreEqual($"Name{i}", value.Name); Assert.AreEqual(i, value.Age); Assert.AreEqual(i % 2 == 1, value.IsVerified); } Assert.AreEqual(3, store.Count); store = new DummyStore(false); yield return(InitStore(store, 3)); Assert.AreEqual(3, store.Count); int count = 0; foreach (var value in store.GetAll()) { Assert.IsNotNull(value); Assert.AreEqual(GetDataDirectory(count).FullName, value.Directory.FullName); Assert.AreEqual($"00000000-0000-0000-0000-00000000000{count}", value.Id.ToString()); Assert.AreEqual($"Name{count}", value.Name); Assert.AreEqual(count, value.Age); Assert.AreEqual(count % 2 == 1, value.IsVerified); count++; } }
public IEnumerator TestGet() { UnityThread.Initialize(); var store = new DummyStore(); yield return(InitStore(store)); var listeners = new List <TaskListener <DummyIndex> >() { new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>(), new TaskListener <DummyIndex>() }; for (int i = 0; i < listeners.Count; i++) { yield return(WaitImport(store, i, listeners[i])); var value = listeners[i].Value; Assert.IsNotNull(value); Assert.AreEqual($"00000000-0000-0000-0000-00000000000{i}", value.Id.ToString()); Assert.AreEqual($"Name{i}", value.Name); Assert.AreEqual(i, value.Age); Assert.AreEqual(i % 2 == 1, value.IsVerified); } Assert.AreEqual(3, store.Count); int index = 1; foreach (var data in store.Get(query => query.WhereNonIndexed(d => d["Age"].Value <int>() > 0))) { Assert.IsNotNull(data); Assert.AreEqual($"00000000-0000-0000-0000-00000000000{index}", data.Id.ToString()); Assert.AreEqual($"Name{index}", data.Name); Assert.AreEqual(index, data.Age); Assert.AreEqual(index % 2 == 1, data.IsVerified); index++; } }
private IEnumerator WaitImport(DummyStore store, int index, TaskListener <DummyIndex> listener) { // New data callback DummyIndex loadedData = null; Action <DummyIndex> onNewData = d => loadedData = d; // Load completion callback bool loaded = false; listener.OnFinished += delegate { loaded = true; }; // Start importing store.OnNewData += onNewData; store.Import(GetDataFile(index), false, listener); while (!loaded) { yield return(null); } store.OnNewData -= onNewData; // Checking Assert.AreEqual(1f, listener.Progress, 0.0000001f); Assert.AreEqual(loadedData, listener.Value); }