@@ -2439,7 +2439,7 @@ func (s *ContainerUnrecordedTestsSuite) TestSASContainerClient() {
2439
2439
_require .NoError (err )
2440
2440
}
2441
2441
2442
- func (s * ContainerUnrecordedTestsSuite ) TestFilterBlobsByTags () {
2442
+ func (s * ContainerUnrecordedTestsSuite ) TestFilterBlobsByBasicTags () {
2443
2443
_require := require .New (s .T ())
2444
2444
testName := s .T ().Name ()
2445
2445
svcClient , err := testcommon .GetServiceClient (s .T (), testcommon .TestAccountDefault , nil )
@@ -2483,11 +2483,60 @@ func (s *ContainerUnrecordedTestsSuite) TestFilterBlobsByTags() {
2483
2483
opts := container.FilterBlobsOptions {MaxResults : to .Ptr (int32 (10 )), Marker : to .Ptr ("" )}
2484
2484
lResp , err := containerSasClient .FilterBlobs (context .Background (), where , & opts )
2485
2485
_require .NoError (err )
2486
- _require .Len (lResp .FilterBlobSegment .Blobs [0 ].Tags .BlobTagSet , 1 )
2487
2486
_require .Equal (* lResp .FilterBlobSegment .Blobs [0 ].Tags .BlobTagSet [0 ].Key , "azure" )
2488
2487
_require .Equal (* lResp .FilterBlobSegment .Blobs [0 ].Tags .BlobTagSet [0 ].Value , "blob" )
2489
2488
}
2490
2489
2490
+ func (s * ContainerUnrecordedTestsSuite ) TestFilterBlobsBySpecialCharTags () {
2491
+ _require := require .New (s .T ())
2492
+ testName := s .T ().Name ()
2493
+ svcClient , err := testcommon .GetServiceClient (s .T (), testcommon .TestAccountDefault , nil )
2494
+ _require .NoError (err )
2495
+
2496
+ containerClient := testcommon .CreateNewContainer (context .Background (), _require , testcommon .GenerateContainerName (testName ), svcClient )
2497
+ defer testcommon .DeleteContainer (context .Background (), _require , containerClient )
2498
+
2499
+ // Adding SAS and options
2500
+ permissions := sas.ContainerPermissions {
2501
+ Read : true ,
2502
+ Add : true ,
2503
+ Write : true ,
2504
+ Create : true ,
2505
+ Delete : true ,
2506
+ Tag : true ,
2507
+ FilterByTags : true ,
2508
+ }
2509
+ expiry := time .Now ().Add (time .Hour )
2510
+
2511
+ // ContainerSASURL is created with GetSASURL
2512
+ sasUrl , err := containerClient .GetSASURL (permissions , expiry , nil )
2513
+ _require .NoError (err )
2514
+
2515
+ // Create container client with sasUrl
2516
+ containerSasClient , err := container .NewClientWithNoCredential (sasUrl , nil )
2517
+ _require .NoError (err )
2518
+
2519
+ abClient := containerSasClient .NewAppendBlobClient (testcommon .GenerateBlobName (testName ))
2520
+
2521
+ createAppendBlobOptions := appendblob.CreateOptions {
2522
+ Tags : testcommon .SpecialCharBlobTagsMap ,
2523
+ }
2524
+ createResp , err := abClient .Create (context .Background (), & createAppendBlobOptions )
2525
+ _require .NoError (err )
2526
+ _require .NotNil (createResp .VersionID )
2527
+ time .Sleep (10 * time .Second )
2528
+
2529
+ // Use container client to filter blobs by tag
2530
+
2531
+ where := "\" go\" ='written in golang'"
2532
+ opts := container.FilterBlobsOptions {MaxResults : to .Ptr (int32 (10 ))}
2533
+ lResp , err := containerSasClient .FilterBlobs (context .Background (), where , & opts )
2534
+ _require .NoError (err )
2535
+ _require .Len (lResp .FilterBlobSegment .Blobs [0 ].Tags .BlobTagSet , 1 )
2536
+ _require .Equal (* lResp .FilterBlobSegment .Blobs [0 ].Tags .BlobTagSet [0 ].Key , "go" )
2537
+ _require .Equal (* lResp .FilterBlobSegment .Blobs [0 ].Tags .BlobTagSet [0 ].Value , "written in golang" )
2538
+ }
2539
+
2491
2540
func (s * ContainerUnrecordedTestsSuite ) TestFilterBlobsByTagsNegative () {
2492
2541
_require := require .New (s .T ())
2493
2542
testName := s .T ().Name ()
0 commit comments