public void Forums_ListModerators()
        {
            //
            // Try authenticated as forum owner
            DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));
            var forumModeratorsAuthenticated = client.ListForumModeratorsAsync(_ownedForum).Result;
            Assert.AreEqual(0, forumModeratorsAuthenticated.Code);

            //
            // Try as unauthenticated user
            client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
            try
            {
                var unauthenticated = client.ListForumModeratorsAsync(_ownedForum).Result;
            }
            catch (Exception)
            {
                // Should fail
            }

            //
            // Try as authenticated, but another forum
            client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));
            var forumModeratorsAuthenticatedOther = client.ListForumModeratorsAsync("disqus").Result;
            Assert.AreEqual(0, forumModeratorsAuthenticatedOther.Code);
        }
        public void Forums_Add_Remove_Moderator()
        {
            DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));

            //
            // Add a moderator and immediately remove them
            var add = client.AddModeratorToForumAsync("username:" + _targetUserToAddModerator, _ownedForum).Result;
            Assert.AreEqual(0, add.Code);

            System.Diagnostics.Debug.WriteLine(JsonConvert.SerializeObject(add.Response));

            var remove = client.RemoveModeratorFromForumAsync(add.Response.Values.FirstOrDefault().ToString()).Result;
            Assert.AreEqual(0, remove.Code);
        }
 public void Forums_MostActiveUsers()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.ListMostActiveForumUsersAsync(_ownedForum).Result;
     Assert.AreEqual(0, response.Code);
 }
 public void Forums_Installed()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.GetIsForumInstalledAsync(_ownedForum).Result;
     Assert.AreEqual(0, response.Code);
 }
        public void Whitelists_All()
        {
            DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));

            //
            // Add to whitelist
            var response = client.AddToWhitelistAsync(_ownedForum, "*****@*****.**", _targetUserToAddModerator, "Test notes 1").Result;
            Assert.AreEqual(0, response.Code);

            //
            // List the whitelist
            var responseList = client.ListForumWhitelistAsync(_ownedForum, "", 1).Result;
            Assert.AreEqual(0, responseList.Code);

            //
            // Remove from whitelist
            var responseRemove = client.RemoveFromWhitelistAsync(_ownedForum, "*****@*****.**", _targetUserToAddModerator).Result;
            Assert.AreEqual(0, responseRemove.Code);
        }
 public void Users_ListMostActiveForums()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.ListUsersMostActiveForumsAsync().Result;
     Assert.AreEqual(0, response.Code);
 }
 public void Users_ListForums()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.ListUsersForumsAsync("", 1, "asc", _targetUserToFollow).Result;
     Assert.AreEqual(0, response.Code);
 }
 public void Users_ListActiveThreads()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.ListUsersActiveThreadsAsync(new List<string>(), new List<string>(), "", 1, _targetUserToFollow).Result;
     Assert.AreEqual(0, response.Code);
 }
        public void Try_Invalid_ApiKey()
        {
            try
            {
                //
                // Create client
                string invalidApiKey = "sdaf3927fnwo3022";
                DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(invalidApiKey), new Uri("http://disqus.com/", UriKind.Absolute));

                //
                // Make request that should fail
                var response = client.ListPostsAsync(new List<string>(), new List<string>(new string[] { "cnn" })).Result;
            }
            catch (AggregateException ex)
            {
                foreach (var e in ex.Flatten().InnerExceptions)
                {
                    if (e is DsqApiException)
                    {
                        DsqApiException dex = e as DsqApiException;

                        Assert.AreEqual(dex.Code, 5, "The code in the response should be 5, indicating invalid API key. Was: " + dex.Message);
                    }
                    else if (e is JsonReaderException)
                    {
                        JsonReaderException jex = e as JsonReaderException;

                        Assert.Fail(jex.Message + "; " + jex);
                    }
                    else
                    {
                        Assert.Fail(e.Message);
                    }
                }
            }
        }
 public void Threads_Set()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.GetThreadSetAsync(new List<string>(new string[] { _targetModerationThread })).Result;
     Assert.AreEqual(0, response.Code);
 }
 public void Threads_ListPosts()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.ListThreadPostsAsync(_targetModerationThread, new List<string>(), "desc", "", 1).Result;
     Assert.AreEqual(0, response.Code);
 }
 public void Threads_List()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.ListThreadsAsync(new List<string>(new string[] { _ownedForum }), new List<string>(), new List<string>(), new List<string>(), "", 1).Result;
     Assert.AreEqual(0, response.Code);
 }
        public void Threads_Details()
        {
            DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));

            var threadsDetailsById = client.GetThreadDetailsAsync(_targetThread).Result;
            Assert.AreEqual(0, threadsDetailsById.Code);

            var threadsDetailsByIdentifier = client.GetThreadDetailsAsync("unit-test-thread-2", "unittestsite1").Result;
            Assert.AreEqual(0, threadsDetailsByIdentifier.Code);

            var threadsDetailsByUrl = client.GetThreadDetailsAsync(new Uri("http://unittestsite1.com/new-thread-2/", UriKind.Absolute), "unittestsite1").Result;
            Assert.AreEqual(0, threadsDetailsByUrl.Code);

            //
            // Make sure all these threads are the same
            Assert.AreEqual(threadsDetailsById.Response.Id, threadsDetailsByIdentifier.Response.Id);
            Assert.AreEqual(threadsDetailsById.Response.Id, threadsDetailsByUrl.Response.Id);
        }
 public void Posts_Details()
 {
     DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey), new Uri("http://disqus.com/", UriKind.Absolute));
     var response = client.GetPostDetailsAsync(_targetPost).Result;
     Assert.AreEqual(0, response.Code);
 }
        public void Posts_Create_Authenticated()
        {
            DisqusApiClient client = new DisqusApiClient(new Disqus.Api.V30.Authentication.DsqAuth(_validApiKey, _validAccessToken), new Uri("http://disqus.com/", UriKind.Absolute));
            var response = client.CreatePostAsync(Utilities.GetRandomText(), _targetModerationThread).Result;
            Assert.AreEqual(0, response.Code);

            //
            // Test replying to the new comment
            var replyResponse = client.CreatePostAsync(Utilities.GetRandomText(), _targetModerationThread, response.Response.Id).Result;
            Assert.AreEqual(0, replyResponse.Code);
        }