public void ExecuteResponse429TooManyRequestsTest()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <JWTAccessTokenInfo>();

            var request = ServiceRequest429ResponseConfig(5, 2);

            DateTime time1 = DateTime.UtcNow;
            DateTime time2 = time1;

            request.Execute <JWTAccessTokenInfo>((r) =>
            {
                time2    = DateTime.UtcNow;
                response = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Console.WriteLine("Execute timeout");
                Assert.Fail();
                return;
            }

            Console.WriteLine($"request  time: {time1}");
            Console.WriteLine($"response time: {time2}");
            Assert.IsFalse(response.IsSuccess);
            Assert.IsTrue(request.m429RetryCount == 5);
            Assert.IsTrue((int)(time2 - time1).TotalSeconds == 5 * 2);
        }
Exemplo n.º 2
0
        public void ListByDisplayNameTest()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <List <Person> >();

            person.List(null, other.Name, null, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }

            Assert.IsTrue(response.IsSuccess);
            List <Person> persons = response.Data;

            Assert.AreEqual(1, persons.Count);
            Assert.AreEqual(other.Email, persons[0].Emails[0]);
            Assert.AreEqual(other.Name, persons[0].DisplayName);
            Assert.AreEqual(other.PersonId, persons[0].Id);
        }
Exemplo n.º 3
0
        private bool DownloadFile(RemoteFile file, string to)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            webex.Messages.DownloadFile(file, to, rsp =>
            {
                if (!rsp.IsSuccess || (rsp.IsSuccess && rsp.Data == 100))
                {
                    response = rsp;
                    completion.Set();
                }
            });
            if (!completion.WaitOne(30000))
            {
                return(false);
            }

            if (response.IsSuccess)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 4
0
        private static Membership CreateMembership(string spaceId, string email, string personId, bool isModerator = false)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Membership>();

            if (email != null)
            {
                webex.Memberships.CreateByPersonEmail(spaceId, email, isModerator, rsp =>
                {
                    response = rsp;
                    completion.Set();
                });
            }
            else
            {
                webex.Memberships.CreateByPersonId(spaceId, personId, isModerator, rsp =>
                {
                    response = rsp;
                    completion.Set();
                });
            }


            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 5
0
        private TeamMembership CreateTeamMemberShip(string teamId, string personId, string email, bool?isModerator)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <TeamMembership>();

            if (email != null)
            {
                teamMemberships.CreateByEmail(teamId, email, isModerator, rsp =>
                {
                    response = rsp;
                    completion.Set();
                });
            }
            else
            {
                teamMemberships.CreateById(teamId, personId, isModerator, rsp =>
                {
                    response = rsp;
                    completion.Set();
                });
            }


            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 6
0
        private static Person GetPerson(string email)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <List <Person> >();

            webex.People.List(email, null, 1, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                var persons = response.Data;
                if (persons != null && persons.Count > 0)
                {
                    return(persons[0]);
                }
                return(null);
            }

            return(null);
        }
        public void ExecuteAuthResponse429TooManyRequestsWithoutRetryAfterHeaderTest()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <JWTAccessTokenInfo>();
            var request    = ServiceRequest429ResponseConfig(1, 1, true);// no retry_after header.

            DateTime time1 = DateTime.UtcNow;
            DateTime time2 = time1;

            request.ExecuteAuth <JWTAccessTokenInfo>((r) =>
            {
                time2    = DateTime.UtcNow;
                response = r;
                completion.Set();
            });


            if (false == completion.WaitOne(65000))
            {
                Console.WriteLine("ExecuteAuth timeout");
                Assert.Fail();
                return;
            }

            Console.WriteLine($"request  time: {time1}");
            Console.WriteLine($"response time: {time2}");
            Assert.IsFalse(response.IsSuccess);
            Assert.IsTrue(request.m429RetryCount == 1);
            Assert.IsTrue((int)(time2 - time1).TotalSeconds == 60);
        }
Exemplo n.º 8
0
        //#
        //[TestMethod()]
        //public void AccessTokenTest()
        //{
        //    var completion = new ManualResetEvent(false);
        //    var repOfaccessToken = new WebexApiEventArgs<string>();

        //    var auth = new JWTAuthenticator();
        //    Assert.IsTrue(LoginWithTryTimes(auth, 5));

        //    auth.AccessToken(r =>
        //    {
        //        repOfaccessToken = r;
        //        completion.Set();
        //    });
        //    if (!completion.WaitOne(30000))
        //    {
        //        Assert.Fail();
        //        return;
        //    }

        //    Assert.IsTrue(repOfaccessToken.IsSuccess);
        //    Assert.IsNotNull(repOfaccessToken.Data);
        //    Assert.IsNull(repOfaccessToken.Error);

        //    Assert.IsTrue(Logout(auth));

        //    Thread.Sleep(30000);
        //}

        //[TestMethod()]
        //public void AccessTokenTestUnexpirAccessToken()
        //{
        //    var completion = new ManualResetEvent(false);
        //    var repOfaccessToken = new WebexApiEventArgs<string>();

        //    var auth = new JWTAuthenticator();
        //    Assert.IsTrue(LoginWithTryTimes(auth, 5));

        //    auth.AccessToken(r =>
        //    {
        //        repOfaccessToken = r;
        //        completion.Set();
        //    });
        //    if (!completion.WaitOne(30000))
        //    {
        //        Assert.Fail();
        //        return;
        //    }

        //    Assert.IsTrue(repOfaccessToken.IsSuccess);
        //    Assert.IsNotNull(repOfaccessToken.Data);
        //    Assert.IsNull(repOfaccessToken.Error);


        //    //get unexpired access token, it is the same of last one.
        //    completion.Reset();

        //    var newAccessToken = new WebexApiEventArgs<string>();
        //    auth.AccessToken(r =>
        //    {
        //        newAccessToken = r;
        //        completion.Set();
        //    });
        //    if (!completion.WaitOne(30000))
        //    {
        //        Assert.Fail();
        //        return;
        //    }

        //    Assert.IsTrue(newAccessToken.IsSuccess);
        //    Assert.AreEqual(repOfaccessToken.Data, newAccessToken.Data);

        //    Assert.IsTrue(Logout(auth));
        //    Thread.Sleep(30000);
        //}

        //[TestMethod()]
        //public void LoginLogoutManytimes()
        //{
        //    var auth = new JWTAuthenticator();
        //    int count = 3;
        //    while (count > 0)
        //    {
        //        count--;
        //        Console.WriteLine($"loginLogoutManytimes[{count}]");
        //        Assert.IsTrue(loginWithTryTimes(auth, 10));
        //        logout(auth);
        //    }
        //}

        private bool CheckAuthorized(JWTAuthenticator auth)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            auth.Authorized(r =>
            {
                response = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return(false);
            }
            return(response.IsSuccess);
        }
Exemplo n.º 9
0
        public void GetWithoutIdTest()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Person>();

            person.Get("", rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }

            Assert.IsFalse(response.IsSuccess);
        }
Exemplo n.º 10
0
        public void ListByInvalidCount()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <List <Person> >();

            person.List(null, null, -1, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }

            Assert.IsFalse(response.IsSuccess);
        }
Exemplo n.º 11
0
        public void ListByEmailAndDisplayNameTestAndInvalidCount()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <List <Person> >();

            person.List(other.Email, other.Name, -1, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }

            Assert.IsFalse(response.IsSuccess);
        }
Exemplo n.º 12
0
        private bool JWtLogin()
        {
            string jwt        = ConfigurationManager.AppSettings["JWT"] ?? "";
            var    completion = new ManualResetEvent(false);
            var    response   = new WebexApiEventArgs();

            jwtAuth.AuthorizeWith(jwt, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Console.WriteLine("authorizeWith timeout");
                return(false);
            }

            return(response.IsSuccess);
        }
        public void AuthorizeTestInvalidAuthCode()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            var auth = new OAuthAuthenticator(clientId, clientSecret, scope, redirectUri);

            auth.Authorize("a.b.c", r =>
            {
                response = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
            }

            Assert.IsFalse(response.IsSuccess);
        }
Exemplo n.º 14
0
        public void AuthorizeTestInvalidJWTnull()
        {
            var completion = new ManualResetEvent(false);

            var auth     = new JWTAuthenticator();
            var response = new WebexApiEventArgs <string>();

            auth.AccessToken(r =>
            {
                response = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }
            Assert.IsFalse(response.IsSuccess);
        }
Exemplo n.º 15
0
        public void AuthorizeTestErrorJwt1()
        {
            var completion = new ManualResetEvent(false);

            var auth = new JWTAuthenticator();

            var rspOfauth = new WebexApiEventArgs();

            auth.AuthorizeWith("a.b.c", r =>
            {
                rspOfauth = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }
            Assert.IsFalse(rspOfauth.IsSuccess);
        }
Exemplo n.º 16
0
        public void AuthorizeTestErrorJwt2()
        {
            var completion = new ManualResetEvent(false);

            var    auth      = new JWTAuthenticator();
            string jwt       = "yJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG5Eb2UiLCJpc3MiOiJjZDVjOWFmNy04ZWQzLTRlMTUtOTcwNS0wMjVlZjMwYjFiNmEifQ.oC-QPs-Eotaq4ovv2glwrHpxXQzqN1WvNlKmMAmtp24";
            var    rspOfauth = new WebexApiEventArgs();

            auth.AuthorizeWith(jwt, r =>
            {
                rspOfauth = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }
            Assert.IsFalse(rspOfauth.IsSuccess);
        }
Exemplo n.º 17
0
        public void ListByWrongDisplayNameTest()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <List <Person> >();

            person.List(null, "notexist", null, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }

            Assert.IsTrue(response.IsSuccess);
            List <Person> persons = response.Data;

            Assert.AreEqual(0, persons.Count);
        }
Exemplo n.º 18
0
        private static Person GetMe()
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Person>();

            webex.People.GetMe(rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }
            return(null);
        }
Exemplo n.º 19
0
        private bool DeleteMsg(string MsgId)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            webex.Messages.Delete(MsgId, rsp =>
            {
                response = rsp;
                completion.Set();
            });
            if (!completion.WaitOne(30000))
            {
                return(false);
            }

            if (response.IsSuccess)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 20
0
        private Message GetMsgBySpaceIdAndMessageId(string spaceId, string msgId)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Message>();

            webex.Messages.Get(spaceId, msgId, rsp =>
            {
                response = rsp;
                completion.Set();
            });
            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 21
0
        private Message PostMsg(string spaceId, string person, string text, List <Mention> mentions = null, List <LocalFile> files = null)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Message>();

            if (spaceId != null)
            {
                webex.Messages.PostToSpace(spaceId, text, mentions, files, rsp =>
                {
                    response = rsp;
                    completion.Set();
                });
            }
            else if (person != null)
            {
                webex.Messages.PostToPerson(person, text, files, rsp =>
                {
                    response = rsp;
                    completion.Set();
                });
            }


            if (!completion.WaitOne(30000))
            {
                Console.WriteLine("postMsg outof time");
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            Console.WriteLine($"postMsg fail {response.Error?.ErrorCode} {response.Error?.Reason}");

            return(null);
        }
Exemplo n.º 22
0
        private Membership GetMembership(string memshipId)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Membership>();

            memberships.Get(memshipId, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 23
0
        public Team CreateTeam(string teamName)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Team>();

            webex.Teams.Create(teamName, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 24
0
        public bool DeleteTeam(string teamId)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            webex.Teams.Delete(teamId, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(false);
            }

            if (response.IsSuccess)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 25
0
        private static bool DeleteSpace(string spaceId)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            webex.Spaces.Delete(spaceId, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(false);
            }

            if (response.IsSuccess)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 26
0
        private static Space CreateSpace(string title)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <Space>();

            webex.Spaces.Create(title, null, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 27
0
        private List <TeamMembership> ListTeamMembership(string teamId, int?max = null)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <List <TeamMembership> >();

            teamMemberships.List(teamId, max, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 28
0
        private TeamMembership UpdateTeamMembership(string membershipId, bool?isModerator)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs <TeamMembership>();

            teamMemberships.Update(membershipId, isModerator, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(null);
            }

            if (response.IsSuccess)
            {
                return(response.Data);
            }

            return(null);
        }
Exemplo n.º 29
0
        private bool DeleteTeamMembership(string membershipId)
        {
            var completion = new ManualResetEvent(false);
            var response   = new WebexApiEventArgs();

            teamMemberships.Delete(membershipId, rsp =>
            {
                response = rsp;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                return(false);
            }

            if (response.IsSuccess)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 30
0
        public void AuthorizeTestInvalidJWTexpire()
        {
            var completion = new ManualResetEvent(false);

            var auth = new JWTAuthenticator();
            //expired JWT
            string jwt = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG5Eb2UiLCJleHAiOiIxNDA1OTc0ODczIiwiaXNzIjoiY2Q1YzlhZjctOGVkMy00ZTE1LTk3MDUtMDI1ZWYzMGIxYjZhIn0.brzUE0LYgEIkt4kK7s2QwrHkhgWPUwbj5XMVECAA_hQ";

            var rspOfauth = new WebexApiEventArgs();

            auth.AuthorizeWith(jwt, r =>
            {
                rspOfauth = r;
                completion.Set();
            });

            if (!completion.WaitOne(30000))
            {
                Assert.Fail();
                return;
            }
            Assert.IsFalse(rspOfauth.IsSuccess);
        }