示例#1
0
        public void test_CreateTempQueue()
        {
            using (MQConnection con = connectToServer(address, null, null)) {
                String      queueName = String.Empty;
                QueueHandle qh        = new QueueHandle();

                // Try and create a temporary queue
                ErrorCode err = con.CreateTempQueue(out queueName, qh);
                Console.WriteLine("queueName:" + queueName);
                Assert.AreEqual(ErrorCode.EC_NOERROR, err, "Creating Queue");

                // Get permissions for that queue
                List <QueuePermissions> perms = new List <QueuePermissions>();
                con.QueueEnumeratePermissions(queueName, perms);
                for (int x = 0; x < perms.Count; ++x)
                {
                    QueuePermissions perm = perms[x];
                    Console.WriteLine(perm.EntityName + ":" + perm.Read + ":" + perm.Write + ":" + perm.Destroy + ":" + perm.ChangeSecurity);
                }
                Assert.IsTrue(perms.Count > 0);

                addAllUsers(con);

                // Try and write to that queue with another user.
                using (MQConnection con2 = connectToServer(simpleAddress, TEST_USERS[0], TEST_USERS[0])) {
                    QueueHandle qh2 = new QueueHandle();
                    ErrorCode   rc  = con2.OpenQueue(queueName, qh2);
                    Assert.IsTrue(rc == ErrorCode.EC_NOERROR, "Open Temp Queue rc:" + rc);
                    QueueMessage msg = new QueueMessage();
                    msg.Label = "Hello World";
                    Assert.IsTrue(ErrorCode.EC_NOERROR == con2.Enqueue(qh2, msg), "Enqueue to temp");
                    con2.CloseQueue(qh2);
                }
            }
        }
示例#2
0
        public void test_QueueSetUserPermission_QueueDeleteUserPermission_QueueEnumeratePermissions_QueueSetGroupPermission_QueueDeleteGroupPermission()
        {
            MQConnection con = null;

            try {
                con = connectToServer(address, null, null);

                addAllGroups(con);
                addAllUsers(con);
                addAllQueues(con);

                ErrorCode ec;
                for (int x = 15; x >= 0; x--)
                {
                    ec = con.QueueSetUserPermission(TEST_QUEUE[0], TEST_USERS[0], (x & 0x08) != 0, (x & 0x04) != 0, (x & 0x02) != 0, (x & 0x01) != 0);
                    Assert.IsTrue(ec == ErrorCode.EC_NOERROR, "Unable to set user permissions: " + x);

                    ec = con.QueueSetGroupPermission(TEST_QUEUE[0], TEST_GROUPS[0], (x & 0x08) != 0, (x & 0x04) != 0, (x & 0x02) != 0, (x & 0x01) != 0);
                    Assert.IsTrue(ec == ErrorCode.EC_NOERROR, "Unable to set group permissions: " + x);

                    List <QueuePermissions> perms = new List <QueuePermissions>();
                    ec = con.QueueEnumeratePermissions(TEST_QUEUE[0], perms);
                    Assert.IsTrue(ec == ErrorCode.EC_NOERROR, "Unable to get permissions: " + TEST_QUEUE[0]);

                    for (int y = 0; y < perms.Count; y++)
                    {
                        QueuePermissions perm = perms[y];
                        if (perm.IsGroup && perm.EntityName.Equals(TEST_GROUPS[0]))
                        {
                            Assert.IsTrue(((x & 0x08) != 0) == perm.Read, "Group read perm incorrect");
                            Assert.IsTrue(((x & 0x04) != 0) == perm.Write, "Group wirte perm incorrect");
                            Assert.IsTrue(((x & 0x02) != 0) == perm.Destroy, "Group destroy perm incorrect");
                            Assert.IsTrue(((x & 0x01) != 0) == perm.ChangeSecurity, "Group change security perm incorrect");
                        }
                        else if (!perm.IsGroup && perm.EntityName.Equals(TEST_USERS[0]))
                        {
                            Assert.IsTrue(((x & 0x08) != 0) == perm.Read, "user read perm incorrect");
                            Assert.IsTrue(((x & 0x04) != 0) == perm.Write, "user wirte perm incorrect");
                            Assert.IsTrue(((x & 0x02) != 0) == perm.Destroy, "user destroy perm incorrect");
                            Assert.IsTrue(((x & 0x01) != 0) == perm.ChangeSecurity, "user change security perm incorrect");
                        }
                    }
                }

                ec = con.QueueDeleteGroupPermission(TEST_QUEUE[0], TEST_GROUPS[0]);
                Assert.IsTrue(ec == ErrorCode.EC_NOERROR, "unable to delete permission for group:" + TEST_GROUPS[0]);

                ec = con.QueueDeleteGroupPermission(TEST_QUEUE[0], TEST_GROUPS[0]);
                Assert.IsFalse(ec == ErrorCode.EC_NOERROR, "able to delete permission for group:" + TEST_GROUPS[0]);

                ec = con.QueueDeleteUserPermission(TEST_QUEUE[0], TEST_USERS[0]);
                Assert.IsTrue(ec == ErrorCode.EC_NOERROR, "unable to delete permission for user:"******"able to delete permission for user:" + TEST_USERS[0]);
            } finally {
                if (con != null)
                {
                    con.Close();
                }
            }
        }