...

Source file src/github.com/Azure/azure-sdk-for-go/storage/directory_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 StorageDirSuite struct{}
     9  
    10  var _ = chk.Suite(&StorageDirSuite{})
    11  
    12  func (s *StorageDirSuite) TestListZeroDirsAndFiles(c *chk.C) {
    13  	// create share
    14  	cli := getFileClient(c)
    15  	rec := cli.client.appendRecorder(c)
    16  	defer rec.Stop()
    17  
    18  	share := cli.GetShareReference(shareName(c))
    19  	c.Assert(share.Create(nil), chk.IsNil)
    20  	defer share.Delete(nil)
    21  
    22  	// list contents, should be empty
    23  	root := share.GetRootDirectoryReference()
    24  	resp, err := root.ListDirsAndFiles(ListDirsAndFilesParameters{})
    25  	c.Assert(err, chk.IsNil)
    26  	c.Assert(resp.Directories, chk.IsNil)
    27  	c.Assert(resp.Files, chk.IsNil)
    28  }
    29  
    30  func (s *StorageDirSuite) TestListDirsAndFiles(c *chk.C) {
    31  	// create share
    32  	cli := getFileClient(c)
    33  	rec := cli.client.appendRecorder(c)
    34  	defer rec.Stop()
    35  
    36  	share := cli.GetShareReference(shareName(c))
    37  	c.Assert(share.Create(nil), chk.IsNil)
    38  	defer share.Delete(nil)
    39  
    40  	// create a directory and a file
    41  	root := share.GetRootDirectoryReference()
    42  	dir := root.GetDirectoryReference("SomeDirectory")
    43  	file := root.GetFileReference("lol.file")
    44  	c.Assert(dir.Create(nil), chk.IsNil)
    45  	c.Assert(file.Create(512, nil), chk.IsNil)
    46  
    47  	// list contents
    48  	resp, err := root.ListDirsAndFiles(ListDirsAndFilesParameters{})
    49  	c.Assert(err, chk.IsNil)
    50  	c.Assert(len(resp.Directories), chk.Equals, 1)
    51  	c.Assert(len(resp.Files), chk.Equals, 1)
    52  	c.Assert(resp.Directories[0].Name, chk.Equals, dir.Name)
    53  	c.Assert(resp.Files[0].Name, chk.Equals, file.Name)
    54  
    55  	// delete file
    56  	del, err := file.DeleteIfExists(nil)
    57  	c.Assert(err, chk.IsNil)
    58  	c.Assert(del, chk.Equals, true)
    59  
    60  	ok, err := file.Exists()
    61  	c.Assert(err, chk.IsNil)
    62  	c.Assert(ok, chk.Equals, false)
    63  }
    64  
    65  func (s *StorageDirSuite) TestCreateDirectory(c *chk.C) {
    66  	cli := getFileClient(c)
    67  	rec := cli.client.appendRecorder(c)
    68  	defer rec.Stop()
    69  
    70  	share := cli.GetShareReference(shareName(c))
    71  	c.Assert(share.Create(nil), chk.IsNil)
    72  	defer share.Delete(nil)
    73  
    74  	root := share.GetRootDirectoryReference()
    75  	dir := root.GetDirectoryReference("dir")
    76  	err := dir.Create(nil)
    77  	c.Assert(err, chk.IsNil)
    78  
    79  	// check properties
    80  	c.Assert(dir.Properties.Etag, chk.Not(chk.Equals), "")
    81  	c.Assert(dir.Properties.LastModified, chk.Not(chk.Equals), "")
    82  
    83  	// delete directory and verify
    84  	c.Assert(dir.Delete(nil), chk.IsNil)
    85  	exists, err := dir.Exists()
    86  	c.Assert(err, chk.IsNil)
    87  	c.Assert(exists, chk.Equals, false)
    88  }
    89  
    90  func (s *StorageDirSuite) TestCreateDirectoryIfNotExists(c *chk.C) {
    91  	cli := getFileClient(c)
    92  	rec := cli.client.appendRecorder(c)
    93  	defer rec.Stop()
    94  
    95  	// create share
    96  	share := cli.GetShareReference(shareName(c))
    97  	share.Create(nil)
    98  	defer share.Delete(nil)
    99  
   100  	// create non exisiting directory
   101  	root := share.GetRootDirectoryReference()
   102  	dir := root.GetDirectoryReference("dir")
   103  	exists, err := dir.CreateIfNotExists(nil)
   104  	c.Assert(err, chk.IsNil)
   105  	c.Assert(exists, chk.Equals, true)
   106  
   107  	c.Assert(dir.Properties.Etag, chk.Not(chk.Equals), "")
   108  	c.Assert(dir.Properties.LastModified, chk.Not(chk.Equals), "")
   109  
   110  	c.Assert(dir.Delete(nil), chk.IsNil)
   111  	exists, err = dir.Exists()
   112  	c.Assert(err, chk.IsNil)
   113  	c.Assert(exists, chk.Equals, false)
   114  }
   115  
   116  func (s *StorageDirSuite) TestCreateDirectoryIfExists(c *chk.C) {
   117  	// create share
   118  	cli := getFileClient(c)
   119  	rec := cli.client.appendRecorder(c)
   120  	defer rec.Stop()
   121  
   122  	share := cli.GetShareReference(shareName(c))
   123  	share.Create(nil)
   124  	defer share.Delete(nil)
   125  
   126  	// create directory
   127  	root := share.GetRootDirectoryReference()
   128  	dir := root.GetDirectoryReference("dir")
   129  	dir.Create(nil)
   130  
   131  	// try to create directory
   132  	exists, err := dir.CreateIfNotExists(nil)
   133  	c.Assert(err, chk.IsNil)
   134  	c.Assert(exists, chk.Equals, false)
   135  
   136  	// check properties
   137  	c.Assert(dir.Properties.Etag, chk.Not(chk.Equals), "")
   138  	c.Assert(dir.Properties.LastModified, chk.Not(chk.Equals), "")
   139  
   140  	// delete directory
   141  	c.Assert(dir.Delete(nil), chk.IsNil)
   142  }
   143  
   144  func (s *StorageDirSuite) TestDirectoryMetadata(c *chk.C) {
   145  	// create share
   146  	cli := getFileClient(c)
   147  	rec := cli.client.appendRecorder(c)
   148  	defer rec.Stop()
   149  
   150  	share := cli.GetShareReference(shareName(c))
   151  	c.Assert(share.Create(nil), chk.IsNil)
   152  	defer share.Delete(nil)
   153  	root := share.GetRootDirectoryReference()
   154  
   155  	dir := root.GetDirectoryReference("testdir")
   156  	c.Assert(dir.Create(nil), chk.IsNil)
   157  
   158  	// get metadata, shouldn't be any
   159  	c.Assert(dir.Metadata, chk.IsNil)
   160  
   161  	// set some custom metadata
   162  	md := map[string]string{
   163  		"something": "somethingvalue",
   164  		"another":   "anothervalue",
   165  	}
   166  	dir.Metadata = md
   167  	c.Assert(dir.SetMetadata(nil), chk.IsNil)
   168  
   169  	// retrieve and verify
   170  	c.Assert(dir.FetchAttributes(nil), chk.IsNil)
   171  	c.Assert(dir.Metadata, chk.DeepEquals, md)
   172  }
   173  

View as plain text