public void DdpCollection_Constructor_NullCollectionNameThrows() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); PCLTesting.ExceptionAssert.Throws<ArgumentNullException>(() => { var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, string.Empty); }); }
public void DdpCollection_RemoveAsync_NullItem() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); PCLTesting.ExceptionAssert.Throws<ArgumentNullException>(() => collection.RemoveAsync(null)); }
public async Task DdpCollection_AddAsync_NullItem() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); ExceptionAssert.ExpectAggregateException(() => collection.AddAsync(null).Wait(), typeof(ArgumentNullException)); }
public void DdpCollection_RemoveAsync_CallsServerMethod() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject = new TestDdpObject() {Id = "1", integerField = 10, StringProperty = "FooBar"}; remoteMethodCall.Setup(x => x.Call<int>(It.IsAny<string>(), It.IsAny<object[]>())) .Returns(Task.FromResult(1)); collection.RemoveAsync(testObject.Id).Wait(); remoteMethodCall.Verify( x => x.Call<int>(It.Is<string>(s => s.Equals(@"/TestCollection/remove")), It.Is<object[]>(c => c.Length == 1 && ((IdParameter) c.First()).Id == "1"))); }
public void DdpCollection_Filter_SortedAndWhere() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject3 = new TestDdpObject() { Id = "4", integerField = 4 }; var testObject1 = new TestDdpObject() { Id = "1", integerField = 2 }; var testObject2 = new TestDdpObject() { Id = "2", integerField = 1 }; ((IDdpCollection)collection).Added(testObject3.Id, JObject.FromObject(testObject3)); ((IDdpCollection)collection).Added(testObject1.Id, JObject.FromObject(testObject1)); ((IDdpCollection)collection).Added(testObject2.Id, JObject.FromObject(testObject2)); var filteredCollection = collection.Filter(whereFilter: x => x.integerField < 4, sortFilter: (x,y) => x.integerField - y.integerField); Assert.AreEqual(2, filteredCollection.Count); Assert.AreEqual(1, filteredCollection[0].integerField); Assert.AreEqual(2, filteredCollection[1].integerField); }
public void DdpCollection_Filter_WhereObjectAddedRemovedChange() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject3 = new TestDdpObject() { Id = "4", integerField = 4 }; var testObject1 = new TestDdpObject() { Id = "1", integerField = 0 }; var testObject2 = new TestDdpObject() { Id = "2", integerField = 2 }; ((IDdpCollection)collection).Added(testObject3.Id, JObject.FromObject(testObject3)); ((IDdpCollection)collection).Added(testObject1.Id, JObject.FromObject(testObject1)); ((IDdpCollection)collection).Added(testObject2.Id, JObject.FromObject(testObject2)); var filteredCollection = collection.Filter(whereFilter: x => x.integerField == 4); Assert.AreEqual(1, filteredCollection.Count); ((IDdpCollection)collection).Changed(testObject3.Id, new Dictionary<string, JToken>() { { "integerField", 1 } }, new string[0]); Assert.AreEqual(0, filteredCollection.Count); }
public void DdpCollection_Filter_WhereMatchAll() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject3 = new TestDdpObject() { Id = "4", integerField = 4 }; var testObject1 = new TestDdpObject() { Id = "1", integerField = 0 }; var testObject2 = new TestDdpObject() { Id = "2", integerField = 2 }; ((IDdpCollection)collection).Added(testObject3.Id, JObject.FromObject(testObject3)); ((IDdpCollection)collection).Added(testObject1.Id, JObject.FromObject(testObject1)); ((IDdpCollection)collection).Added(testObject2.Id, JObject.FromObject(testObject2)); var filteredCollection = collection.Filter(whereFilter: x => true); Assert.AreEqual(3, filteredCollection.Count); }
/// <summary> /// Initializes the ViewModel from Meteor /// </summary> /// <returns> /// The <see cref="Task"/>. /// </returns> private async Task Initialize() { this.client = new MeteorClient(new Uri("ws://localhost:3000/websocket")); await this.client.ConnectAsync(); this.players = this.client.GetCollection<Player>("players"); DdpFilteredCollection<Player> sortedPlayers = this.players.Filter( sortFilter: (p1, p2) => { var scoreComparison = p2.Score.CompareTo(p1.Score); if (scoreComparison != 0) { return scoreComparison; } return string.Compare(p1.Name, p2.Name, System.StringComparison.Ordinal); }); this.viewModel = new LeaderboardViewModel(sortedPlayers); this.DataContext = this.viewModel; }
private DdpFilteredCollection<TestDdpObject> GetSortedCollection(DdpCollection<TestDdpObject> collection) { return collection.Filter(sortFilter: (x, y) => x.integerField - y.integerField); }
private void AddObject(DdpCollection<TestDdpObject> collection, int value) { var id = Utilities.GenerateId(); ((IDdpCollection)collection).Added(id, JObject.FromObject(new TestDdpObject() { integerField = value})); }
public void DdpCollection_Enumerator_CanEnumerateItems() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject = new TestDdpObject() { Id = "11", integerField = 101, StringProperty = "FooBar" }; ((IDdpCollection)collection).Added(testObject.Id, JObject.FromObject(testObject)); ((IDdpCollection)collection).Added(testObject.Id, JObject.FromObject(testObject)); int loopTimes = 0; foreach (var itemObject in (IEnumerable)collection) { var item = (TestDdpObject) itemObject; Assert.AreEqual(testObject.Id, item.Id); Assert.AreEqual(testObject.integerField, item.integerField); Assert.AreEqual(testObject.StringProperty, item.StringProperty); loopTimes++; } Assert.AreEqual(2, loopTimes); }
public void DdpCollection_Constructor_NullClientThrows() { PCLTesting.ExceptionAssert.Throws<ArgumentNullException>( () => { var collection = new DdpCollection<TestDdpObject>(null, "collectionName"); }); }
public void DdpCollection_Removed_InvokedOnChangedEvents() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject = new TestDdpObject() { Id = "11", integerField = 101, StringProperty = "FooBar" }; var collectionChangedCalled = false; var propertyChangedCalled = false; ((IDdpCollection)collection).Added(testObject.Id, JObject.FromObject(testObject)); Assert.AreEqual(1, collection.Count); ((INotifyCollectionChanged)collection).CollectionChanged += (sender, args) => { Assert.AreEqual(NotifyCollectionChangedAction.Remove, args.Action); Assert.AreEqual(1, args.OldItems.Count); var removedItem = args.OldItems[0] as TestDdpObject; Assert.IsNotNull(removedItem); Assert.AreEqual(testObject.Id, removedItem.Id); Assert.AreEqual(testObject.integerField, removedItem.integerField); Assert.AreEqual(testObject.StringProperty, removedItem.StringProperty); collectionChangedCalled = true; }; ((INotifyPropertyChanged)collection).PropertyChanged += (sender, args) => { propertyChangedCalled = true; }; ((IDdpCollection)collection).Removed(testObject.Id); Assert.IsTrue(collectionChangedCalled); Assert.IsTrue(propertyChangedCalled); Assert.AreEqual(0, collection.Count); }
public void DdpCollection_Changed_ChangesObject() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject = new TestDdpObject() { Id = "11", integerField = 101, StringProperty = "FooBar" }; ((IDdpCollection)collection).Added(testObject.Id, JObject.FromObject(testObject)); var objectChanged = collection.First(); Assert.AreEqual(101, objectChanged.integerField); ((IDdpCollection) collection).Changed(testObject.Id, new Dictionary<string, JToken>() {{"integerField", 900}}, new string[0]); Assert.AreEqual(900, objectChanged.integerField); }
public void DdpCollection_UpdateAsync_NullID() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject = new TestDdpObject() { Id = "11", integerField = 10, StringProperty = "FooBar" }; PCLTesting.ExceptionAssert.Throws<ArgumentNullException>(() => collection.UpdateAsync(string.Empty, testObject)); }
private void RunChangeTests(DdpCollection<TestDdpObject> collection, DdpFilteredCollection<TestDdpObject> sortedCollection, int numberOfChanges, int minRange, int maxRange) { Random random = new Random(); for (int i = 0; i < numberOfChanges; i++) { var indexToChange = random.Next(0, collection.Count); var newValue = random.Next(minRange, maxRange); this.ChangeObject(collection, collection[indexToChange].Id, newValue); this.AssertCollectionSorted(sortedCollection); } }
public void DdpCollection_Filter_InsertsSorted() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var sortedCollection = collection.Filter(sortFilter: (x, y) => x.integerField - y.integerField); var testObject3 = new TestDdpObject() { Id = "3", integerField = 3 }; var testObject1 = new TestDdpObject() { Id = "1", integerField = 1 }; var testObject2 = new TestDdpObject() { Id = "2", integerField = 2 }; ((IDdpCollection)collection).Added(testObject3.Id, JObject.FromObject(testObject3)); Assert.AreEqual(3, collection[0].integerField); Assert.AreEqual(3, sortedCollection[0].integerField); ((IDdpCollection)collection).Added(testObject1.Id, JObject.FromObject(testObject1)); Assert.AreEqual(3, collection[0].integerField); Assert.AreEqual(1, collection[1].integerField); Assert.AreEqual(1, sortedCollection[0].integerField); Assert.AreEqual(3, sortedCollection[1].integerField); ((IDdpCollection)collection).Added(testObject2.Id, JObject.FromObject(testObject2)); Assert.AreEqual(3, collection[0].integerField); Assert.AreEqual(1, collection[1].integerField); Assert.AreEqual(2, collection[2].integerField); Assert.AreEqual(1, sortedCollection[0].integerField); Assert.AreEqual(2, sortedCollection[1].integerField); Assert.AreEqual(3, sortedCollection[2].integerField); }
private void ChangeObject(DdpCollection<TestDdpObject> collection, string id, int newValue) { ((IDdpCollection)collection).Changed(id, new Dictionary<string, JToken>() { { "integerField", newValue } }, new string[0]); }
public void DdpCollection_Filter_ChangesSortedMoveToMiddleFromEnd() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collection = new DdpCollection<TestDdpObject>(remoteMethodCall.Object, "TestCollection"); var testObject3 = new TestDdpObject() { Id = "4", integerField = 4 }; var testObject1 = new TestDdpObject() { Id = "1", integerField = 0 }; var testObject2 = new TestDdpObject() { Id = "2", integerField = 2 }; ((IDdpCollection)collection).Added(testObject3.Id, JObject.FromObject(testObject3)); ((IDdpCollection)collection).Added(testObject1.Id, JObject.FromObject(testObject1)); ((IDdpCollection)collection).Added(testObject2.Id, JObject.FromObject(testObject2)); var sortedCollection = collection.Filter(sortFilter: (x, y) => x.integerField - y.integerField); Assert.AreEqual(4, collection[0].integerField); Assert.AreEqual(0, collection[1].integerField); Assert.AreEqual(2, collection[2].integerField); Assert.AreEqual(0, sortedCollection[0].integerField); Assert.AreEqual(2, sortedCollection[1].integerField); Assert.AreEqual(4, sortedCollection[2].integerField); ((IDdpCollection)collection).Changed(testObject3.Id, new Dictionary<string, JToken>() { { "integerField", 1 } }, new string[0]); Assert.AreEqual(1, collection[0].integerField); Assert.AreEqual(0, collection[1].integerField); Assert.AreEqual(2, collection[2].integerField); Assert.AreEqual(0, sortedCollection[0].integerField); Assert.AreEqual(1, sortedCollection[1].integerField); Assert.AreEqual(2, sortedCollection[2].integerField); }
private void RunAddTests(DdpCollection<TestDdpObject> collection, DdpFilteredCollection<TestDdpObject> sortedCollection, int numberOfAdds, int minRange, int maxRange) { Random random = new Random(); for (int i = 0; i < numberOfAdds; i++) { var newValue = random.Next(minRange, maxRange); this.AddObject(collection, newValue); this.AssertCollectionSorted(sortedCollection); } }
/// <summary> /// Initializes the internal collections /// </summary> private void Initialize() { this.users = this.GetCollection<MeteorUser>("users"); }