public void CollectionManager_Changed_ChangeUntypedObject() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collectionManager = new CollectionManager(remoteMethodCall.Object); var objectToAdd = new TestDdpObject { integerField = 101, StringProperty = "addedTest"}; collectionManager.Added(new Added { Collection = "Test", Fields = JObject.FromObject(objectToAdd), Id = "1" }); var changed = new Changed { Cleared = null, Collection = "Test", Fields = new Dictionary<string, JToken>() {{"StringProperty", JToken.FromObject("changed!")}}, ID = "1" }; collectionManager.Changed(changed); var collection = collectionManager.GetCollection<TestDdpObject>("Test"); Assert.AreEqual(1, collection.Count); objectToAdd.StringProperty = "changed!"; objectToAdd.Id = "1"; AssertDdpObjectsEqual(objectToAdd, collection.First()); }
public void CollectionManager_Removed_AddedRemovedFromUntypedCollection() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collectionManager = new CollectionManager(remoteMethodCall.Object); var objectToAdd = new TestDdpObject { integerField = 101, StringProperty = "addedTest"}; collectionManager.Added(new Added { Collection = "Test", Fields = JObject.FromObject(objectToAdd), Id = "1" }); collectionManager.Removed(new Removed() { Collection = "Test", Id="1"}); var collection = collectionManager.GetCollection<TestDdpObject>("Test"); Assert.AreEqual(0, collection.Count); }
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 CollectionManager_Added_PresentInTypedCollection() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collectionManager = new CollectionManager(remoteMethodCall.Object); var objectToAdd = new TestDdpObject {integerField = 101, StringProperty = "addedTest"}; collectionManager.Added(new Added {Collection = "Test", Fields = JObject.FromObject(objectToAdd), Id = "1"}); var collection = collectionManager.GetCollection<TestDdpObject>("Test"); Assert.AreEqual(1, collection.Count); objectToAdd.Id = "1"; AssertDdpObjectsEqual(objectToAdd, collection.First()); }
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); }
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); }
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); }
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_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)); }
public void CollectionManager_Added_MultipleCollections() { var remoteMethodCall = new Mock<IDdpRemoteMethodCall>(); var collectionManager = new CollectionManager(remoteMethodCall.Object); var objectToAdd1 = new TestDdpObject { integerField = 101, StringProperty = "addedTest"}; var objectToAdd2 = new TestDdpObject { integerField = 101, StringProperty = "addedTest"}; var objectToAdd3 = new TestDdpObject { integerField = 101, StringProperty = "addedTest"}; collectionManager.Added(new Added { Collection = "Test1", Fields = JObject.FromObject(objectToAdd1), Id = "1" }); collectionManager.Added(new Added { Collection = "Test2", Fields = JObject.FromObject(objectToAdd2), Id = "2" }); collectionManager.Added(new Added { Collection = "Test3", Fields = JObject.FromObject(objectToAdd3), Id = "3" }); var collection1 = collectionManager.GetCollection<TestDdpObject>("Test1"); var collection2 = collectionManager.GetCollection<TestDdpObject>("Test2"); var collection3 = collectionManager.GetCollection<TestDdpObject>("Test3"); Assert.AreEqual(1, collection1.Count); Assert.AreEqual(1, collection2.Count); Assert.AreEqual(1, collection3.Count); objectToAdd1.Id = "1"; objectToAdd2.Id = "2"; objectToAdd3.Id = "3"; AssertDdpObjectsEqual(objectToAdd1, collection1.First()); AssertDdpObjectsEqual(objectToAdd2, collection2.First()); AssertDdpObjectsEqual(objectToAdd3, collection3.First()); }
private void AssertDdpObjectsEqual(TestDdpObject expected, TestDdpObject actual) { Assert.AreNotEqual(expected, actual); Assert.AreEqual(expected.Id, actual.Id); Assert.AreEqual(expected.StringProperty, actual.StringProperty); Assert.AreEqual(expected.integerField, actual.integerField); }