Пример #1
0
    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);
    }
Пример #2
0
    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);
    }
Пример #3
0
    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();
    }