Ejemplo n.º 1
0
        public void TestAsyncGetTicket()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            const int someValue = 78435;
            ManualResetEvent wait = new ManualResetEvent(false);
            bool callbackWasExecuted = false;

            OperationFinished<GetTicketResponse> response = resp =>
                                                                {
                                                                    Assert.IsNull(resp.Error);
                                                                    Assert.IsNotNull(resp.Ticket);
                                                                    Assert.IsInstanceOfType(typeof(int), resp.UserState);
                                                                    Assert.AreEqual(GetTicketStatus.Successful,  resp.Status);

                                                                    int userStatus = (int) resp.UserState;
                                                                    Assert.AreEqual(someValue, userStatus);

                                                                    callbackWasExecuted = true;

                                                                    wait.Reset();
                                                                };

            manager.GetTicket(response, someValue);

            wait.WaitOne(30000);

            Assert.IsTrue(callbackWasExecuted, "Callback was not executed. The operation has timed out");
        }
Ejemplo n.º 2
0
        public void TestSyncGetTicket()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;

            GetTicketStatus operationStatus = manager.GetTicket(out ticket);

            Assert.AreEqual(GetTicketStatus.Successful, operationStatus);
            Assert.IsNotNull(ticket);
        }
Ejemplo n.º 3
0
        public void TestAsyncGetTicketWithNoCallbackDelegate()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);

            try
            {
                manager.GetTicket(null);

                Assert.Fail("GetTicket(null) call has to fail");
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(typeof(ArgumentException), ex);
            }
        }
        public void TestAsyncGetAuthenticationToken()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;
            ManualResetEvent wait = new ManualResetEvent(false);
            bool callbackWasExecuted = false;
            const int state = 874532489;

            OperationFinished<GetAuthenticationTokenResponse> callback = resp =>
                                                                         	{
                                                                                Assert.IsNull(resp.Error);

                                                                                Assert.IsInstanceOfType(typeof(int), resp.UserState);

                                                                                Assert.AreEqual(state, (int) resp.UserState);

                                                                                Assert.AreEqual(GetAuthenticationTokenStatus.Successful, resp.Status);

                                                                                Assert.IsNotNull(resp.AuthenticationToken);
                                                                                Assert.IsNotNull(resp.AuthenticatedUser);

                                                                                Assert.IsNotNull(resp.AuthenticatedUser.Email);
                                                                                Assert.IsNotNull(resp.AuthenticatedUser.Login);
                                                                                StringAssert.IsMatch(Login, resp.AuthenticatedUser.Login);
                                                                                Assert.AreNotEqual(0, resp.AuthenticatedUser.AccessID);
                                                                                Assert.AreNotEqual(0, resp.AuthenticatedUser.ID);
                                                                                //Assert.AreNotEqual(0, resp.AuthenticatedUser.MaxUploadSize);
                                                                                Assert.AreNotEqual(0, resp.AuthenticatedUser.SpaceAmount);
                                                                                Assert.AreNotEqual(0, resp.AuthenticatedUser.SpaceUsed);

                                                                         		callbackWasExecuted = true;
                                                                         		wait.Reset();
                                                                         	};

            manager.GetTicket(out ticket);

            SubmitAuthenticationInformation(ticket);

            manager.GetAuthenticationToken(ticket, callback, state);
            wait.WaitOne(30000);

            Assert.IsTrue(callbackWasExecuted, "Callback was not executed. The operation has timed out");
        }
        protected void InitializeContext()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;
            string token;
            User user;

            manager.GetTicket(out ticket);

            SubmitAuthenticationInformation(ticket);

            manager.GetAuthenticationToken(ticket, out token, out user);

            Context = new TestContext
                      	{
                      		AuthenticatedUser = user,
                      		Manager = manager,
                      		Ticket = ticket,
                      		Token = token
                      	};
        }
        public void TestAsyncGetAuthenticationTokenIfUserIsNotLoggedIn()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;
            ManualResetEvent wait = new ManualResetEvent(false);
            bool callbackWasExecuted = false;
            const int state = 874524489;

            OperationFinished<GetAuthenticationTokenResponse> callback = resp =>
                                                                         	{
                                                                         		Assert.IsNull(resp.Error);

                                                                         		Assert.IsInstanceOfType(typeof (int), resp.UserState);

                                                                         		Assert.AreEqual(state, (int) resp.UserState);

                                                                                Assert.AreEqual(GetAuthenticationTokenStatus.NotLoggedID, resp.Status);

                                                                                Assert.IsEmpty(resp.AuthenticationToken);
                                                                                Assert.IsNull(resp.AuthenticatedUser);

                                                                         		callbackWasExecuted = true;
                                                                         		wait.Reset();
                                                                         	};

            manager.GetTicket(out ticket);

            manager.GetAuthenticationToken(ticket, callback, state);
            wait.WaitOne(30000);

            Assert.IsTrue(callbackWasExecuted, "Callback was not executed. The operation has timed out");
        }
        public void TestSyncGetAuthenticationTokenWithWrongTicket()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;
            string token;
            User user;

            manager.GetTicket(out ticket);

            SubmitAuthenticationInformation(ticket);

            GetAuthenticationTokenStatus status = manager.GetAuthenticationToken(Guid.Empty.ToString(), out token, out user);

            Assert.AreEqual(GetAuthenticationTokenStatus.Failed, status);

            Assert.IsEmpty(token);
            Assert.IsNull(user);
        }
        public void TestSyncGetAuthenticationTokenIfUserIsNotLoggedIn()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;
            string token;
            User user;

            manager.GetTicket(out ticket);

            GetAuthenticationTokenStatus status = manager.GetAuthenticationToken(ticket, out token, out user);

            Assert.AreEqual(GetAuthenticationTokenStatus.NotLoggedID, status);

            Assert.IsEmpty(token);
            Assert.IsNull(user);
        }
        public void TestSyncGetAuthenticationToken()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;
            string token;
            User user;

            manager.GetTicket(out ticket);

            SubmitAuthenticationInformation(ticket);

            GetAuthenticationTokenStatus status = manager.GetAuthenticationToken(ticket, out token, out user);

            Assert.AreEqual(GetAuthenticationTokenStatus.Successful, status);

            Assert.IsNotNull(token);
            Assert.IsNotNull(user);

            Assert.IsNotNull(user.Email);
            Assert.IsNotNull(user.Login);
            StringAssert.IsMatch(Login, user.Login);
            Assert.AreNotEqual(0, user.AccessID);
            Assert.AreNotEqual(0, user.ID);
            //Assert.AreNotEqual(0, user.MaxUploadSize);
            Assert.AreNotEqual(0, user.SpaceAmount);
            Assert.AreNotEqual(0, user.SpaceUsed);
        }
        public void TestAsyncGetAuthenticationTokenWithNoCallbackDelegate()
        {
            BoxManager manager = new BoxManager(ApplicationKey, ServiceUrl, null);
            string ticket;

            manager.GetTicket(out ticket);

            SubmitAuthenticationInformation(ticket);

            try
            {
                manager.GetAuthenticationToken(ticket, null);

                Assert.Fail("GetAuthenticationToken(ticket, null) has to fail");
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(typeof(ArgumentException), ex);
            }
        }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            var assemblyFile    = "Willcraftia.Net.Box.Demo.ApiKey.dll";
            var apiKeyClassName = "Willcraftia.Net.Box.Demo.ApiKey";
            var boxManager      = new BoxManager(assemblyFile, apiKeyClassName);

            //----------------------------------------------------------------
            //
            // get_ticket
            //
            Prompt("Press enter key to request get_ticket.");

            string ticket;

            try
            {
                ticket = boxManager.GetTicket();
                Console.WriteLine("Ticket: " + ticket);
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            //----------------------------------------------------------------
            //
            // redirect
            //
            Prompt("Press enter key to redirect you to Box Application auth page.");

            boxManager.RedirectUserAuth(ticket);

            //----------------------------------------------------------------
            //
            // get_auth_token
            //
            Prompt("Press enter key to request get_auth_token.");

            BoxSession session;

            try
            {
                session = boxManager.GetAuthToken(ticket);
                Console.WriteLine("AuthToken: " + session.AuthToken);
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            //----------------------------------------------------------------
            //
            // get_account_tree[root]
            //
            Prompt("Press enter key to request get_account_tree[root].");

            Folder rootFolder;

            try
            {
                rootFolder = session.GetAccountTreeRoot("onelevel", "nozip");
                Console.WriteLine("Root Folder: " + rootFolder);
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            string demoFolderName = "DemoFolder";
            long   demoFolderId   = -1;
            var    demoFolder     = rootFolder.FindFolderByName(demoFolderName);

            if (demoFolder != null)
            {
                demoFolderId = demoFolder.Id;
            }

            //----------------------------------------------------------------
            //
            // create_folder
            //
            if (demoFolderId < 0)
            {
                Prompt("Press enter key to request create_folder.");

                CreatedFolder createdFolder;
                try
                {
                    createdFolder = session.CreateFolder(0, demoFolderName, true);
                }
                catch (Exception e)
                {
                    Prompt(e);
                    return;
                }

                demoFolderId = createdFolder.FolderId;
            }
            else
            {
                Prompt("Press enter key to skip create_folder.");
            }

            //----------------------------------------------------------------
            //
            // upload
            //
            Prompt("Press enter key to upload files.");

            var uploadFiles = new UploadFile[]
            {
                new UploadFile
                {
                    ContentType = "text/xml;charset=utf-8",
                    Name        = "Demo_0.xml",
                    Content     = @"<?xml version=""1.0""?><Demo>Demo File 0</Demo>"
                },
                new UploadFile
                {
                    ContentType = "text/xml;charset=utf-8",
                    Name        = "Demo_1.xml",
                    Content     = @"<?xml version=""1.0""?><Demo>Demo File 1</Demo>"
                }
            };

            List <UploadedFile> uploadedFiles;

            try
            {
                uploadedFiles = session.Upload(demoFolderId, uploadFiles, false, "Demo message.", null);
                Console.WriteLine("Uploaded Files:");
                foreach (var uploadedFile in uploadedFiles)
                {
                    Console.WriteLine(uploadedFile);
                }
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            //----------------------------------------------------------------
            //
            // overwrite
            //
            Prompt("Press enter key to overwrite a file.");

            var overwriteFile = new UploadFile
            {
                ContentType = "text/xml;charset=utf-8",
                Name        = "Demo_0.xml",
                Content     = @"<?xml version=""1.0""?><Demo>Demo File 0 Overwritten</Demo>"
            };

            try
            {
                var overwrittenFile = session.Overwrite(uploadedFiles[0].Id, overwriteFile, false, "Demo message.", null);
                Console.WriteLine("Overwritten File:");
                Console.WriteLine(overwrittenFile);
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            //----------------------------------------------------------------
            //
            // download
            //
            Prompt("Press enter key to download a file.");

            string downloadedFile;

            using (var downloadStream = session.Download(uploadedFiles[0].Id))
            {
                using (var memoryStream = new MemoryStream())
                {
                    var bytes     = new byte[1024];
                    int byteCount = 0;

                    while ((byteCount = downloadStream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        memoryStream.Write(bytes, 0, byteCount);
                    }

                    memoryStream.Position = 0;
                    var reader = new StreamReader(memoryStream);
                    downloadedFile = reader.ReadToEnd();
                }
            }

            Console.WriteLine("Result:");
            Console.WriteLine(downloadedFile);

            //----------------------------------------------------------------
            //
            // invite_collaborators
            //
            Prompt("Press enter key to request invite_collaborators.");

            string[] emails = { "*****@*****.**" };
            List <InvitedCollaborator> invitedCollaborators;

            try
            {
                invitedCollaborators = session.InviteCollaboratorsToFolder(demoFolderId, null, emails, Role.Viewer, false, true);
                Console.WriteLine("Invited Collaborators:");
                foreach (var invited in invitedCollaborators)
                {
                    Console.WriteLine(invited);
                }
            }
            catch (BoxStatusException e)
            {
                if (e.Status == "user_already_collaborator")
                {
                    Prompt("The specified users were already collaborators.");
                }
                else
                {
                    Prompt(e);
                    return;
                }
            }

            //----------------------------------------------------------------
            //
            // get_user_id
            //
            // ※get_user_id は collaborator として既知でなければ user_id の取得を許可していない模様。
            //
            Prompt("Press enter key to request get_user_id.");

            var userEmail = "*****@*****.**";

            try
            {
                var resolvedUserId = session.GetUserId(userEmail);
                Console.WriteLine(string.Format("The ID of the user '{0}' is '{1}'.", userEmail, resolvedUserId));
            }
            catch
            {
                Prompt(string.Format("The user '{0}' could not be resolved.", userEmail));
            }

            //----------------------------------------------------------------
            //
            // get_file_info
            //
            Prompt("Press enter key to request get_file_info.");

            try
            {
                var fileInfo = session.GetFileInfo(uploadedFiles[0].Id);
                Console.WriteLine(string.Format("The file '{0}' information: ", uploadedFiles[0].Id));
                Console.WriteLine(fileInfo);
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            //----------------------------------------------------------------
            //
            // delete[file]
            //
            Prompt("Press enter key to request delete[file].");

            try
            {
                session.DeleteFile(uploadedFiles[0].Id);
                Console.WriteLine(string.Format("The file '{0}' was deleted.", uploadedFiles[0].Id));
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            //----------------------------------------------------------------
            //
            // delete[folder]
            //
            Prompt("Press enter key to request delete[folder].");

            try
            {
                session.DeleteFolder(demoFolderId);
                Console.WriteLine(string.Format("The folder '{0}' was deleted.", demoFolderId));
            }
            catch (Exception e)
            {
                Prompt(e);
                return;
            }

            Prompt("Press enter key to exist this application.");
        }