public async Task MobileServiceCollectionMultipleLoadItemsAsyncShouldThrow() { await Assert.ThrowsAsync <InvalidOperationException>(async() => { MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book> collection = new MobileServiceCollection <Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); await Task.WhenAll(collection.LoadMoreItemsAsync(tokenSource.Token), collection.LoadMoreItemsAsync(tokenSource.Token)); }); }
public async Task MobileServiceCollectionHasMoreItemsShouldBeFalseAfterRetrievingDataWhenNoPaging() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book> collection = new MobileServiceCollection <Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); List <string> properties = new List <string>(); List <string> expectedProperties = new List <string>() { "HasMoreItems", "Count", "Item[]", "Count", "Item[]", "TotalCount" }; List <NotifyCollectionChangedAction> actions = new List <NotifyCollectionChangedAction>(); List <NotifyCollectionChangedAction> expectedActions = new List <NotifyCollectionChangedAction>() { NotifyCollectionChangedAction.Add, NotifyCollectionChangedAction.Add }; ((INotifyPropertyChanged)collection).PropertyChanged += (s, e) => properties.Add(e.PropertyName); collection.CollectionChanged += (s, e) => actions.Add(e.Action); int result = await collection.LoadMoreItemsAsync(tokenSource.Token); Assert.IsFalse(collection.HasMoreItems); Assert.IsTrue(properties.SequenceEqual(expectedProperties)); Assert.IsTrue(actions.SequenceEqual(expectedActions)); }
public async Task MobileServiceCollectionTotalCountSet() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); List <string> properties = new List <string>(); List <string> expectedProperties = new List <string>() { "HasMoreItems", "Count", "Item[]", "Count", "Item[]", "TotalCount" }; List <NotifyCollectionChangedAction> actions = new List <NotifyCollectionChangedAction>(); List <NotifyCollectionChangedAction> expectedActions = new List <NotifyCollectionChangedAction>() { NotifyCollectionChangedAction.Add, NotifyCollectionChangedAction.Add }; MobileServiceCollection <Book, Book> collection = new MobileServiceCollection <Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); ((INotifyPropertyChanged)collection).PropertyChanged += (s, e) => properties.Add(e.PropertyName); collection.CollectionChanged += (s, e) => actions.Add(e.Action); int result = await collection.LoadMoreItemsAsync(tokenSource.Token); Assert.Equal(2, collection.TotalCount); Assert.Equal(expectedProperties, properties); Assert.Equal(expectedActions, actions); }
public async Task MobileServiceCollectionLoadMoreItemsAsyncFiresLoadingCompleteEventAfterReadingData() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book, Book> collection = new MobileServiceCollection <Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); Exception ex = null; int loadedEventArgsManyItemsLoaded = 0; collection.LoadingComplete += (s, e) => loadedEventArgsManyItemsLoaded = e.TotalItemsLoaded; try { int result = await collection.LoadMoreItemsAsync(tokenSource.Token); } catch (Exception e) { ex = e; } Assert.AreEqual(loadedEventArgsManyItemsLoaded, 2); Assert.IsNull(ex); }
public async Task MobileServiceCollectionLoadMoreItemsAsyncFiresLoadingItemsEventBeforeReadingData() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book, Book> collection = new MobileServiceCollection <Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); Exception ex = null; bool firedLoading = false; collection.LoadingItems += (s, e) => firedLoading = true; try { int result = await collection.LoadMoreItemsAsync(tokenSource.Token); } catch (Exception e) { ex = e; } Assert.IsTrue(firedLoading); Assert.IsNull(ex); }
public async Task MobileServiceCollectionMultipleLoadItemsAsyncShouldThrow() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book> collection = new MobileServiceCollection <Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); Exception ex = null; try { await Task.WhenAll(collection.LoadMoreItemsAsync(tokenSource.Token), collection.LoadMoreItemsAsync(tokenSource.Token)); } catch (InvalidOperationException e) { ex = e; } Assert.IsNotNull(ex); }
public async Task MobileServiceCollectionMultipleLoadItemsAsyncShouldThrow() { // Get the Books table MobileServiceTableQueryMock<Book> query = new MobileServiceTableQueryMock<Book>(); MobileServiceCollection<Book, Book> collection = new MobileServiceCollection<Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); Exception ex = null; try { await TaskEx.WhenAll(collection.LoadMoreItemsAsync(tokenSource.Token), collection.LoadMoreItemsAsync(tokenSource.Token)); } catch (InvalidOperationException e) { ex = e; } Assert.IsNotNull(ex); }
public async Task MobileServiceCollectionLoadMoreItemsAsyncFiresLoadingCompleteEventAfterReadingData() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book, Book> collection = new MobileServiceCollection <Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); int loadedEventArgsManyItemsLoaded = 0; collection.LoadingComplete += (s, e) => loadedEventArgsManyItemsLoaded = e.TotalItemsLoaded; _ = await collection.LoadMoreItemsAsync(tokenSource.Token); Assert.Equal(2, loadedEventArgsManyItemsLoaded); }
public async Task MobileServiceCollectionLoadMoreItemsAsyncFiresLoadingItemsEventBeforeReadingData() { // Get the Books table MobileServiceTableQueryMock <Book> query = new MobileServiceTableQueryMock <Book>(); MobileServiceCollection <Book, Book> collection = new MobileServiceCollection <Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); bool firedLoading = false; collection.LoadingItems += (s, e) => firedLoading = true; _ = await collection.LoadMoreItemsAsync(tokenSource.Token); Assert.True(firedLoading); }
public async Task MobileServiceCollectionHasMoreItemsShouldBeFalseAfterRetrievingDataWhenNoPaging() { // Get the Books table MobileServiceTableQueryMock<Book> query = new MobileServiceTableQueryMock<Book>(); MobileServiceCollection<Book, Book> collection = new MobileServiceCollection<Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); List<string> properties = new List<string>(); List<string> expectedProperties = new List<string>() { "HasMoreItems", "Count", "Item[]", "Count", "Item[]", "TotalCount" }; List<NotifyCollectionChangedAction> actions = new List<NotifyCollectionChangedAction>(); List<NotifyCollectionChangedAction> expectedActions = new List<NotifyCollectionChangedAction>() { NotifyCollectionChangedAction.Add, NotifyCollectionChangedAction.Add }; ((INotifyPropertyChanged)collection).PropertyChanged += (s, e) => properties.Add(e.PropertyName); collection.CollectionChanged += (s, e) => actions.Add(e.Action); int result = await collection.LoadMoreItemsAsync(tokenSource.Token); Assert.IsFalse(collection.HasMoreItems); Assert.IsTrue(properties.SequenceEqual(expectedProperties)); Assert.IsTrue(actions.SequenceEqual(expectedActions)); }
public async Task MobileServiceCollectionLoadMoreItemsAsyncFiresLoadingCompleteEventAfterReadingData() { // Get the Books table MobileServiceTableQueryMock<Book> query = new MobileServiceTableQueryMock<Book>(); MobileServiceCollection<Book, Book> collection = new MobileServiceCollection<Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); Exception ex = null; int loadedEventArgsManyItemsLoaded = 0; collection.LoadingComplete += (s, e) => loadedEventArgsManyItemsLoaded = e.TotalItemsLoaded; try { int result = await collection.LoadMoreItemsAsync(tokenSource.Token); } catch (Exception e) { ex = e; } Assert.AreEqual(loadedEventArgsManyItemsLoaded, 2); Assert.IsNull(ex); }
public async Task MobileServiceCollectionLoadMoreItemsAsyncFiresLoadingItemsEventBeforeReadingData() { // Get the Books table MobileServiceTableQueryMock<Book> query = new MobileServiceTableQueryMock<Book>(); MobileServiceCollection<Book, Book> collection = new MobileServiceCollection<Book, Book>(query); CancellationTokenSource tokenSource = new CancellationTokenSource(); Exception ex = null; bool firedLoading = false; collection.LoadingItems += (s, e) => firedLoading = true; try { int result = await collection.LoadMoreItemsAsync(tokenSource.Token); } catch (Exception e) { ex = e; } Assert.IsTrue(firedLoading); Assert.IsNull(ex); }