Ejemplo n.º 1
0
        public async Task TestFileCaching()
        {
            // Set nickname
            relay0.UpdateFile(relay0.OwnId, new Dictionary <string, string> {
                { "nickname", "old :c" }
            });
            await relay0.ConnectToNodeAsync(1);

            await Task.Delay(100);

            // Get PlayerData file from node 0 on node 1:
            NetworkFile file = null;

            relay1.GetFile(relay0.OwnId, (s, f) => file = f);

            await Task.Delay(100);

            Assert.AreEqual("old :c", file.Entries["nickname"]);

            // Modify PlayerData file at node 0:
            relay0.UpdateFile(relay0.OwnId, new Dictionary <string, string> {
                { "nickname", "new!" }
            });

            // Get PlayerData file again (should be taken from cache):
            file = null;
            relay1.GetFile(relay0.OwnId, (s, f) => file = f);

            await Task.Delay(100);

            Assert.AreEqual("old :c", file.Entries["nickname"]);
        }
Ejemplo n.º 2
0
        public async Task TestGetMergedMatchmaking()
        {
            await relay0.ConnectToNodeAsync(1);

            await relay0.ConnectToNodeAsync(2);

            var entries = new Dictionary <string, string> {
                { "field1", "value1" }
            };

            relay0.UpdateFile(matchmakingFileId, entries);

            entries = new Dictionary <string, string> {
                { "field2", "value2" }
            };
            relay1.UpdateFile(matchmakingFileId, entries);

            await Task.Delay(5000); // Wait for cached files to invalidate

            // Get file on node 2, it should ask other node, and it should ask remaning node for it and merge:
            NetworkFile file = null;

            relay2.GetFile(matchmakingFileId, (s, f) => { file = f; });

            await Task.Delay(100);

            Assert.AreEqual(FileType.Matchmaking, file.FileType);
            Assert.AreEqual("value1", file.Entries["field1"]);
            Assert.AreEqual("value2", file.Entries["field2"]);
        }