Esempio n. 1
0
        public async void GetItems()
        {
            string             wordPressQuery = "en.blog.wordpress.com";
            WordPressQueryType queryType      = WordPressQueryType.Posts;
            string             queryFilterBy  = string.Empty;
            int maxRecordsParam            = 20;
            WordPressOrderBy orderBy       = WordPressOrderBy.None;
            SortDirection    sortDirection = SortDirection.Ascending;

            _wordPressDataProvider = new WordPressDataProvider();
            this.Items             = new ObservableCollection <object>();

            var config = new WordPressDataConfig()
            {
                Query         = wordPressQuery,
                QueryType     = queryType,
                FilterBy      = queryFilterBy,
                OrderBy       = orderBy,
                SortDirection = sortDirection
            };

            var items = await _wordPressDataProvider.LoadDataAsync(config, maxRecordsParam);

            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
Esempio n. 2
0
        public async void GetItems()
        {
            string wordPressQuery = "en.blog.wordpress.com";
            WordPressQueryType queryType = WordPressQueryType.Posts;
            string queryFilterBy = string.Empty;
            int maxRecordsParam = 20;
            WordPressOrderBy orderBy = WordPressOrderBy.None;
            SortDirection sortDirection = SortDirection.Ascending;

            _wordPressDataProvider = new WordPressDataProvider();
            this.Items = new ObservableCollection<object>();
            
            var config = new WordPressDataConfig()
            {
                Query = wordPressQuery,
                QueryType = queryType,
                FilterBy = queryFilterBy,
                OrderBy = orderBy,
                SortDirection = sortDirection
            };           

            var items = await _wordPressDataProvider.LoadDataAsync(config, maxRecordsParam);   
            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
Esempio n. 3
0
        public async Task GetComments()
        {
            var dataProvider = new WordPressDataProvider();
            var result       = await dataProvider.GetComments("en.blog.wordpress.com", "32497", 20);

            Assert.IsNotNull(result);
            Assert.AreNotEqual(result.Count(), 0);
        }
Esempio n. 4
0
        public async Task GetComments()
        {
            var dataProvider = new WordPressDataProvider();
            var result = await dataProvider.GetComments("en.blog.wordpress.com", "32497", 20);

            Assert.IsNotNull(result);
            Assert.AreNotEqual(result.Count(), 0);
        }
Esempio n. 5
0
        public async Task LoadMoreDataBeforeLoadDataWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync());
        }
Esempio n. 6
0
 public MainViewModel()
 {
     string wordPressQuery = "en.blog.wordpress.com";
     _config = new WordPressDataConfig()
     {
         QueryType = WordPressQueryType.Posts,
         Query = wordPressQuery
     };
     _dataProvider = new WordPressDataProvider();
     LoadingGridVisibility = Visibility.Visible;
 }
Esempio n. 7
0
        public async Task LoadMoreCommentsPagination_InvalidOperationWordPress()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy  = "themes"
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.GetMoreComments());
        }
Esempio n. 8
0
        public async Task LoadMoreDataInvalidOperationWordPressTag()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy  = "apps"
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync());
        }
Esempio n. 9
0
        public async Task TestNullQueryConfig()
        {
            var config = new WordPressDataConfig
            {
                Query = null,
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();

            ConfigParameterNullException exception = await ExceptionsAssert.ThrowsAsync<ConfigParameterNullException>(async () => await dataProvider.LoadDataAsync(config));
            Assert.IsTrue(exception.Message.Contains("Query"));
        }
Esempio n. 10
0
        public async Task LoadWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable <WordPressSchema> data = await dataProvider.LoadDataAsync(config);

            Assert.IsNotNull(data);
            Assert.AreNotEqual(data.Count(), 0);
        }
Esempio n. 11
0
        public async Task TestMaxRecordsWordPressPost()
        {
            int maxRecords = 25;
            var config     = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable <WordPressSchema> data = await dataProvider.LoadDataAsync(config, maxRecords);

            Assert.IsTrue(data.Count() > 20);
        }
Esempio n. 12
0
        public async Task LoadWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable<WordPressSchema> data = await dataProvider.LoadDataAsync(config);

            Assert.IsNotNull(data);
            Assert.AreNotEqual(data.Count(), 0);
        }
Esempio n. 13
0
        public async Task TestNullQueryConfig()
        {
            var config = new WordPressDataConfig
            {
                Query     = null,
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();

            ConfigParameterNullException exception = await ExceptionsAssert.ThrowsAsync <ConfigParameterNullException>(async() => await dataProvider.LoadDataAsync(config));

            Assert.IsTrue(exception.Message.Contains("Query"));
        }
Esempio n. 14
0
        public async Task TestMaxRecordsWordPressCategory_Min()
        {
            int maxRecords = 1;
            var config     = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy  = "themes"
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable <WordPressSchema> data = await dataProvider.LoadDataAsync(config, maxRecords);

            Assert.AreEqual(maxRecords, data.Count());
        }
Esempio n. 15
0
        public async Task LoadWordPressCategory_Sorting()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy  = "themes"
            };

            var dataProviderNoSorting          = new WordPressDataProvider();
            IEnumerable <WordPressSchema> data = await dataProviderNoSorting.LoadDataAsync(config);

            IEnumerable <WordPressSchema> moreData = await dataProviderNoSorting.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query          = "en.blog.wordpress.com",
                QueryType      = WordPressQueryType.Category,
                FilterBy       = "themes",
                OrderBy        = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Ascending
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable <WordPressSchema> sortedData = await dataProvider.LoadDataAsync(config);

            IEnumerable <WordPressSchema> moreSortedData = await dataProvider.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query          = "en.blog.wordpress.com",
                QueryType      = WordPressQueryType.Category,
                FilterBy       = "themes",
                OrderBy        = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Descending
            };

            var dataProviderDesc = new WordPressDataProvider();
            IEnumerable <WordPressSchema> sortedDescData = await dataProviderDesc.LoadDataAsync(config);

            IEnumerable <WordPressSchema> moreSortedDescData = await dataProviderDesc.LoadMoreDataAsync();


            Assert.AreNotEqual(data.FirstOrDefault().Title, sortedData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(moreData.FirstOrDefault().Title, moreSortedData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(sortedData.FirstOrDefault().Title, sortedDescData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (descending) is not working");
            Assert.AreNotEqual(moreSortedData.FirstOrDefault().Title, moreSortedDescData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (descending) is not working");
        }
Esempio n. 16
0
        public async Task LoadCommentsPaginationWordPress()
        {
            var dataProvider = new WordPressDataProvider();
            var site         = "en.blog.wordpress.com";
            var postId       = "35160";
            var maxId        = 20;
            await dataProvider.GetComments(site, postId, maxId);

            Assert.IsTrue(dataProvider.HasMoreComments, nameof(dataProvider.HasMoreComments));

            var result = await dataProvider.GetMoreComments();

            Assert.IsFalse(dataProvider.HasMoreComments, nameof(dataProvider.HasMoreComments));

            Assert.IsNotNull(result, $"{nameof(result)} is not null");
            Assert.IsTrue(result.Any());
        }
Esempio n. 17
0
        public async Task LoadPaginationWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query     = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            await dataProvider.LoadDataAsync(config, 5);

            Assert.IsTrue(dataProvider.HasMoreItems);

            IEnumerable <WordPressSchema> data = await dataProvider.LoadMoreDataAsync();

            Assert.IsNotNull(data);
            Assert.IsTrue(data.Any());
        }
Esempio n. 18
0
        private async void Request()
        {
            try
            {
                IsBusy              = true;
                HasErrors           = false;
                NoItems             = false;
                DataProviderRawData = string.Empty;
                Items.Clear();
                var wordPressDataProvider = new WordPressDataProvider();
                var config = new WordPressDataConfig()
                {
                    Query     = WordPressQuery,
                    QueryType = WordPressQueryTypeSelectedItem,
                    FilterBy  = WordPressQueryFilterBy
                };

                var rawParser = new RawParser();
                var rawData   = await wordPressDataProvider.LoadDataAsync(config, MaxRecordsParam, rawParser);

                DataProviderRawData = rawData.FirstOrDefault()?.Raw;

                var items = await wordPressDataProvider.LoadDataAsync(config, MaxRecordsParam);

                NoItems = !items.Any();

                foreach (var item in items)
                {
                    Items.Add(item);
                }
            }
            catch (Exception ex)
            {
                DataProviderRawData += ex.Message;
                DataProviderRawData += ex.StackTrace;
                HasErrors            = true;
            }
            finally
            {
                IsBusy = false;
            }
        }
Esempio n. 19
0
        public async void GetItems()
        {
            string             wordPressQuery = "en.blog.wordpress.com";
            WordPressQueryType queryType      = WordPressQueryType.Posts;
            string             queryFilterBy  = string.Empty;
            int maxRecordsParam = 20;

            Items.Clear();
            var wordPressDataProvider = new WordPressDataProvider();
            var config = new WordPressDataConfig()
            {
                Query     = wordPressQuery,
                QueryType = queryType,
                FilterBy  = queryFilterBy
            };

            var items = await wordPressDataProvider.LoadDataAsync(config, maxRecordsParam);

            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
Esempio n. 20
0
 private void InitializeDataProvider()
 {
     wordPressDataProvider = new WordPressDataProvider();
     rawDataProvider       = new WordPressDataProvider();
 }
Esempio n. 21
0
 public EventsSection()
 {
     _dataProvider = new WordPressDataProvider();
 }
Esempio n. 22
0
        public async Task TestNullConfig()
        {
            var dataProvider = new WordPressDataProvider();

            await ExceptionsAssert.ThrowsAsync<ConfigNullException>(async () => await dataProvider.LoadDataAsync(null));
        }
Esempio n. 23
0
        public async Task TestNullParser()
        {
            var dataProvider = new WordPressDataProvider();

            await ExceptionsAssert.ThrowsAsync<ParserNullException>(async () => await dataProvider.LoadDataAsync<WordPressSchema>(new WordPressDataConfig(), 20, null));
        }
Esempio n. 24
0
        public async Task TestMaxRecordsWordPressTag_Min()
        {
            int maxRecords = 1;
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "apps"
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable<WordPressSchema> data = await dataProvider.LoadDataAsync(config, maxRecords);

            Assert.AreEqual(maxRecords, data.Count());
        }
Esempio n. 25
0
        public async Task TestMaxRecordsWordPressCategory()
        {
            int maxRecords = 25;
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy = "themes"
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable<WordPressSchema> data = await dataProvider.LoadDataAsync(config, maxRecords);

            Assert.IsTrue(data.Count() > 20);
        }
Esempio n. 26
0
        public async Task LoadWordPressTag_Sorting()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "wordpress"
            };
            var dataProviderNoSorting = new WordPressDataProvider();
            IEnumerable<WordPressSchema> data = await dataProviderNoSorting.LoadDataAsync(config);
            IEnumerable<WordPressSchema> moreData = await dataProviderNoSorting.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "wordpress",
                OrderBy = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Ascending
            };

            var dataProvider = new WordPressDataProvider();
            IEnumerable<WordPressSchema> sortedData = await dataProvider.LoadDataAsync(config);
            IEnumerable<WordPressSchema> moreSortedData = await dataProvider.LoadMoreDataAsync();

            config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "wordpress",
                OrderBy = WordPressOrderBy.Id,
                OrderDirection = SortDirection.Descending
            };

            var dataProviderDesc = new WordPressDataProvider();
            IEnumerable<WordPressSchema> sortedDescData = await dataProviderDesc.LoadDataAsync(config);
            IEnumerable<WordPressSchema> moreSortedDescData = await dataProviderDesc.LoadMoreDataAsync();


            Assert.AreNotEqual(data.FirstOrDefault().Title, sortedData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(moreData.FirstOrDefault().Title, moreSortedData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (ascending) is not working");
            Assert.AreNotEqual(sortedData.FirstOrDefault().Title, sortedDescData.FirstOrDefault().Title, "LoadDataAsync: WordPress sorting (descending) is not working");
            Assert.AreNotEqual(moreSortedData.FirstOrDefault().Title, moreSortedDescData.FirstOrDefault().Title, "LoadMoreDataAsync: WordPress sorting (descending) is not working");
        }   
Esempio n. 27
0
        public async Task LoadMoreCommentsPagination_InvalidOperationWordPress()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy = "themes"
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync<InvalidOperationException>(async () => await dataProvider.GetMoreComments());
        }        
Esempio n. 28
0
        public async Task LoadMoreDataBeforeLoadDataWordPressPost()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Posts
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync<InvalidOperationException>(async () => await dataProvider.LoadMoreDataAsync());
        }
Esempio n. 29
0
        public async Task LoadPaginationWordPressTag()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Category,
                FilterBy = "themes"
            };

            var dataProvider = new WordPressDataProvider();
            await dataProvider.LoadDataAsync(config, 5);

            Assert.IsTrue(dataProvider.HasMoreItems);

            IEnumerable<WordPressSchema> data = await dataProvider.LoadMoreDataAsync();

            Assert.IsNotNull(data);
            Assert.IsTrue(data.Any());
        }
Esempio n. 30
0
        public async Task TestNullParser()
        {
            var dataProvider = new WordPressDataProvider();

            await ExceptionsAssert.ThrowsAsync <ParserNullException>(async() => await dataProvider.LoadDataAsync <WordPressSchema>(new WordPressDataConfig(), 20, null));
        }
Esempio n. 31
0
        public async Task TestNullConfig()
        {
            var dataProvider = new WordPressDataProvider();

            await ExceptionsAssert.ThrowsAsync <ConfigNullException>(async() => await dataProvider.LoadDataAsync(null));
        }
Esempio n. 32
0
        public async Task LoadMoreDataInvalidOperationWordPressTag()
        {
            var config = new WordPressDataConfig
            {
                Query = "en.blog.wordpress.com",
                QueryType = WordPressQueryType.Tag,
                FilterBy = "apps"
            };

            var dataProvider = new WordPressDataProvider();
            InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync<InvalidOperationException>(async () => await dataProvider.LoadMoreDataAsync());
        }
Esempio n. 33
0
        public async Task LoadCommentsPaginationWordPress()
        {
            var dataProvider = new WordPressDataProvider();
            var site = "en.blog.wordpress.com";
            var postId = "35160";
            var maxId = 20;
            await dataProvider.GetComments(site, postId, maxId);
            Assert.IsTrue(dataProvider.HasMoreComments, nameof(dataProvider.HasMoreComments));

            var result = await dataProvider.GetMoreComments();
            Assert.IsFalse(dataProvider.HasMoreComments, nameof(dataProvider.HasMoreComments));

            Assert.IsNotNull(result, $"{nameof(result)} is not null");
            Assert.IsTrue(result.Any());
        }
Esempio n. 34
0
 private void InitializeDataProvider()
 {
     wordPressDataProvider = new WordPressDataProvider();
     rawDataProvider = new WordPressDataProvider();
 }