public void TestTraceSendingStartFailed() { TrackerAsset.Instance.Stop(); bridge = new TesterBridge(); bridge.Connnected = false; initTracker("xapi", TrackerAsset.StorageTypes.net, bridge); storage.Delete("netstorage"); storage.Delete(settings.BackupFile); Assert.DoesNotThrow(delegate { enqueueTrace01(); }); TrackerAsset.Instance.Flush(); Assert.AreEqual(storage.Load("netstorage"), string.Empty); Assert.AreNotEqual(storage.Load(settings.BackupFile), string.Empty); bridge.Connnected = true; enqueueTrace02(); enqueueTrace03(); append("netstorage", ","); TrackerAsset.Instance.Flush(); string text = storage.Load("netstorage"); text = "[" + text + "]"; JSONNode file = JSON.Parse(text); Assert.AreEqual(new List <JSONNode>(file.Children).Count, 2); Assert.AreEqual(file[0].Count, 1); Assert.AreEqual(file[1].Count, 2); JSONNode tracejson = file[0][0]; Assert.AreEqual(new List <JSONNode>(tracejson.Children).Count, 4); Assert.AreEqual(tracejson["object"]["id"].Value, "http://a2:3000/api/proxy/gleaner/games/5a26cb5ac8b102008b41472a/5a26cb5ac8b102008b41472b/ObjectID"); Assert.AreEqual(tracejson["object"]["definition"]["type"].Value, "https://w3id.org/xapi/seriousgames/activity-types/game-object"); Assert.AreEqual(tracejson["verb"]["id"].Value, "https://w3id.org/xapi/seriousgames/verbs/accessed"); text = storage.Load(settings.BackupFile); string[] backup = text.Split('\n'); Assert.AreEqual(backup.Length, 4); }
public void TestEmptyQueueFlush() { TrackerAsset.Instance.Stop(); bridge = new TesterBridge(); bridge.Connnected = false; initTracker("csv", TrackerAsset.StorageTypes.net, bridge); storage.Delete("netstorage"); storage.Delete(settings.BackupFile); //Flush sin connected TrackerAsset.Instance.Flush(); Assert.AreEqual(storage.Load("netstorage"), string.Empty); //Flush porque si TrackerAsset.Instance.Flush(); Assert.AreEqual(storage.Load("netstorage"), string.Empty); //Flush tras conectar bridge.Connnected = true; TrackerAsset.Instance.Flush(); string net = storage.Load("netstorage"); Assert.AreEqual(storage.Load("netstorage"), string.Empty); bridge.Connnected = false; enqueueTrace01(); TrackerAsset.Instance.Flush(); TrackerAsset.Instance.Flush(); bridge.Connnected = true; TrackerAsset.Instance.Flush(); TrackerAsset.Instance.Flush(); string[] text = storage.Load("netstorage").Split('\n'); Assert.AreEqual(text.Length, 2); string[] backup = storage.Load(settings.BackupFile).Split('\n'); Assert.AreEqual(backup.Length, 2); }
private void initTracker(string format, TrackerAsset.StorageTypes st = TrackerAsset.StorageTypes.local, TesterBridge bridge = null) { TrackerAsset.Instance.Stop(); string current = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); if (!Directory.Exists(current)) { Directory.CreateDirectory(current); } Directory.SetCurrentDirectory(current); TrackerAsset.TraceFormats f; if (TrackerAssetUtils.TryParseEnum <TrackerAsset.TraceFormats>(format, out f)) { settings.TraceFormat = f; } settings.StorageType = st; TrackerAsset.Instance.Settings = settings; if (bridge != null) { this.bridge = bridge; } else { this.bridge = new TesterBridge(); } TrackerAsset.Instance.Bridge = this.bridge; storage = getInterface <IDataStorage>(); append_storage = getInterface <IAppend>(); log = (ILog)TrackerAsset.Instance.Bridge; TrackerAsset.Instance.StrictMode = true; TrackerAsset.Instance.Clear(); TrackerAsset.Instance.Start(); }