...

Source file src/github.com/Azure/azure-sdk-for-go/storage/message_test.go

Documentation: github.com/Azure/azure-sdk-for-go/storage

     1  package storage
     2  
     3  // Copyright (c) Microsoft Corporation. All rights reserved.
     4  // Licensed under the MIT License. See License.txt in the project root for license information.
     5  
     6  import chk "gopkg.in/check.v1"
     7  
     8  type StorageMessageSuite struct{}
     9  
    10  var _ = chk.Suite(&StorageMessageSuite{})
    11  
    12  func (s *StorageMessageSuite) Test_pathForMessage(c *chk.C) {
    13  	m := getQueueClient(c).GetQueueReference("q").GetMessageReference("m")
    14  	m.ID = "ID"
    15  	c.Assert(m.buildPath(), chk.Equals, "/q/messages/ID")
    16  }
    17  
    18  func (s *StorageMessageSuite) TestDeleteMessages(c *chk.C) {
    19  	cli := getQueueClient(c)
    20  	rec := cli.client.appendRecorder(c)
    21  	defer rec.Stop()
    22  
    23  	q := cli.GetQueueReference(queueName(c))
    24  	c.Assert(q.Create(nil), chk.IsNil)
    25  	defer q.Delete(nil)
    26  
    27  	m := q.GetMessageReference("message")
    28  	c.Assert(m.Put(nil), chk.IsNil)
    29  
    30  	options := GetMessagesOptions{
    31  		VisibilityTimeout: 1,
    32  	}
    33  	list, err := q.GetMessages(&options)
    34  	c.Assert(err, chk.IsNil)
    35  	c.Assert(list, chk.HasLen, 1)
    36  
    37  	c.Assert(list[0].Delete(nil), chk.IsNil)
    38  }
    39  
    40  func (s *StorageMessageSuite) TestPutMessage_Peek(c *chk.C) {
    41  	cli := getQueueClient(c)
    42  	rec := cli.client.appendRecorder(c)
    43  	defer rec.Stop()
    44  
    45  	queue := cli.GetQueueReference(queueName(c))
    46  	c.Assert(queue.Create(nil), chk.IsNil)
    47  	defer queue.Delete(nil)
    48  
    49  	msg := queue.GetMessageReference(string(content(64 * 1024))) // exercise max length
    50  	c.Assert(msg.Put(nil), chk.IsNil)
    51  
    52  	list, err := queue.PeekMessages(nil)
    53  	c.Assert(err, chk.IsNil)
    54  	c.Assert(len(list), chk.Equals, 1)
    55  	c.Assert(list[0].Text, chk.Equals, msg.Text)
    56  }
    57  
    58  func (s *StorageMessageSuite) TestPutMessage_Peek_Update_Delete(c *chk.C) {
    59  	cli := getQueueClient(c)
    60  	rec := cli.client.appendRecorder(c)
    61  	defer rec.Stop()
    62  
    63  	queue := cli.GetQueueReference(queueName(c))
    64  	c.Assert(queue.Create(nil), chk.IsNil)
    65  	defer queue.Delete(nil)
    66  
    67  	msg1 := queue.GetMessageReference(string(content(64 * 1024))) // exercise max length
    68  	msg2 := queue.GetMessageReference("and other message")
    69  	c.Assert(msg1.Put(nil), chk.IsNil)
    70  	c.Assert(msg2.Put(nil), chk.IsNil)
    71  
    72  	list, err := queue.GetMessages(&GetMessagesOptions{NumOfMessages: 2, VisibilityTimeout: 2})
    73  	c.Assert(err, chk.IsNil)
    74  	c.Assert(len(list), chk.Equals, 2)
    75  	c.Assert(list[0].Text, chk.Equals, msg1.Text)
    76  	c.Assert(list[1].Text, chk.Equals, msg2.Text)
    77  
    78  	list[0].Text = "updated message"
    79  	c.Assert(list[0].Update(&UpdateMessageOptions{VisibilityTimeout: 2}), chk.IsNil)
    80  
    81  	c.Assert(list[1].Delete(nil), chk.IsNil)
    82  }
    83  

View as plain text