static async Task Run() { var meteorClient = new MeteorClient(new ConsoleLoggingConnection(new WebSocketConnection(new Uri("ws://localhost:3000/websocket")))); await meteorClient.ConnectAsync(); var entryCollection = meteorClient.GetCollection<Entry>("entries"); await meteorClient.Subscribe("entries"); var inserts = 100; var currentCount = entryCollection.Count; List<Task> tasks = new List<Task>(); for (int i = 0; i < inserts; i++) { var entry = new Entry() { Count = i, IsActive = true, Name = "Item " + i.ToString() }; tasks.Add(entryCollection.AddAsync(entry)); } Task.WaitAll(tasks.ToArray()); var newCount = entryCollection.Count; }
public void MeteorClient_LoginPassword_NullPassword() { var websocket = new InMemoryConnection(); var client = new MeteorClient(websocket); websocket.Reply(JsonConvert.SerializeObject(new Connected() { Session = "TestSession" })); client.ConnectAsync().Wait(); PCLTesting.ExceptionAssert.Throws<ArgumentNullException>(() => client.LoginPassword("Username", String.Empty)); }
public void MeteorClient_LoginPassword_CallsServerMethod() { var websocket = new InMemoryConnection(); var client = new MeteorClient(websocket); websocket.Reply(JsonConvert.SerializeObject(new Connected() { Session = "TestSession"})); client.ConnectAsync().Wait(); var loginTask = client.LoginPassword("Username", "Password"); Method method = null; while (method == null) { var message = websocket.GetSentMessage(); var jobject = JObject.Parse(message); if (jobject["msg"] != null && jobject["msg"].Value<string>() == "method") { method = JsonConvert.DeserializeObject<Method>(message); } } websocket.Reply(JsonConvert.SerializeObject(new Result() { Id = method.Id })); websocket.Reply(JsonConvert.SerializeObject(new Updated() { Methods = new []{method.Id}})); loginTask.Wait(); Assert.AreEqual("login", method.MethodName); Assert.AreEqual(1, method.Parameters.Length); var loginParameters = JsonConvert.DeserializeObject<LoginPasswordParameters>(method.Parameters[0].ToString()); Assert.AreEqual("Username", loginParameters.User.UserName); Assert.IsTrue(!string.IsNullOrWhiteSpace(loginParameters.Password.Digest)); Assert.AreEqual("sha-256", loginParameters.Password.Algorithm); }
public static async Task AddDenyAllEntry(MeteorClient client, Entry entry) { await client.Call("addDenyAll", entry); }