Skip to content

Commit 7826239

Browse files
authored
Begin moving tests to their applicable packages (Azure#18903)
* Begin moving tests to their applicable packages Moved various test files out of the azblob package and into their respective client packages. Added internal/testcommon package for shared test helpers. No functional or test changes. * shuffle around more tests, linter clean * update to latest internal module * disambiguate invalid encryption scope
1 parent bd18030 commit 7826239

29 files changed

+12051
-11840
lines changed

sdk/storage/azblob/appendblob/client_test.go

Lines changed: 1443 additions & 0 deletions
Large diffs are not rendered by default.

sdk/storage/azblob/blob/client_test.go

Lines changed: 3209 additions & 0 deletions
Large diffs are not rendered by default.

sdk/storage/azblob/blockblob/client_test.go

Lines changed: 1858 additions & 0 deletions
Large diffs are not rendered by default.

sdk/storage/azblob/zt_container_client_test.go renamed to sdk/storage/azblob/container/client_test.go

Lines changed: 357 additions & 320 deletions
Large diffs are not rendered by default.

sdk/storage/azblob/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.18
55
require (
66
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2
77
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0
8-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0
8+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.1
99
github.com/stretchr/testify v1.7.1
1010
)
1111

sdk/storage/azblob/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 h1:lneMk5qtUMulXa/eVxjVd+/bD
22
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U=
33
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8=
44
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0=
5-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY=
6-
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
5+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.1 h1:XUNQ4mw+zJmaA2KXzP9JlQiecy1SI+Eog7xVkPiqIbg=
6+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.1/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w=
77
github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE=
88
github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4=
99
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

sdk/storage/azblob/zt_url_parsing_test.go renamed to sdk/storage/azblob/internal/exported/blob_url_test.go

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,16 @@
44
// Copyright (c) Microsoft Corporation. All rights reserved.
55
// Licensed under the MIT License. See License.txt in the project root for license information.
66

7-
package azblob_test
7+
package exported
88

99
import (
1010
"fmt"
11-
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
11+
"testing"
1212

1313
"github.com/stretchr/testify/require"
1414
)
1515

16-
func (s *azblobTestSuite) TestURLParsing() {
17-
_require := require.New(s.T())
16+
func TestParseURL(t *testing.T) {
1817
testStorageAccount := "fakestorageaccount"
1918
host := fmt.Sprintf("%s.blob.core.windows.net", testStorageAccount)
2019
testContainer := "fakecontainer"
@@ -26,34 +25,33 @@ func (s *azblobTestSuite) TestURLParsing() {
2625
snapshotID, versionID := "", "2021-10-25T05:41:32.5526810Z"
2726
sasWithVersionID := "?versionId=" + versionID + "&" + sas
2827
urlWithVersion := fmt.Sprintf("https://%s.blob.core.windows.net/%s%s%s", testStorageAccount, testContainer, fileName, sasWithVersionID)
29-
blobURLParts, err := azblob.ParseURL(urlWithVersion)
30-
_require.Nil(err)
28+
blobURLParts, err := ParseURL(urlWithVersion)
29+
require.NoError(t, err)
3130

32-
_require.Equal(blobURLParts.Scheme, "https")
33-
_require.Equal(blobURLParts.Host, host)
34-
_require.Equal(blobURLParts.ContainerName, testContainer)
35-
_require.Equal(blobURLParts.VersionID, versionID)
36-
_require.Equal(blobURLParts.Snapshot, snapshotID)
31+
require.Equal(t, blobURLParts.Scheme, "https")
32+
require.Equal(t, blobURLParts.Host, host)
33+
require.Equal(t, blobURLParts.ContainerName, testContainer)
34+
require.Equal(t, blobURLParts.VersionID, versionID)
35+
require.Equal(t, blobURLParts.Snapshot, snapshotID)
3736

38-
validateSAS(_require, sas, blobURLParts.SAS)
37+
validateSAS(t, sas, blobURLParts.SAS)
3938
}
4039

4140
for _, fileName := range fileNames {
4241
snapshotID, versionID := "2011-03-09T01:42:34Z", ""
4342
sasWithSnapshotID := "?snapshot=" + snapshotID + "&" + sas
4443
urlWithVersion := fmt.Sprintf("https://%s.blob.core.windows.net/%s%s%s", testStorageAccount, testContainer, fileName, sasWithSnapshotID)
45-
blobURLParts, err := azblob.ParseURL(urlWithVersion)
46-
_require.Nil(err)
44+
blobURLParts, err := ParseURL(urlWithVersion)
45+
require.NoError(t, err)
4746

48-
_require.Equal(blobURLParts.Scheme, "https")
49-
_require.Equal(blobURLParts.Host, host)
50-
_require.Equal(blobURLParts.ContainerName, testContainer)
51-
_require.Equal(blobURLParts.VersionID, versionID)
52-
_require.Equal(blobURLParts.Snapshot, snapshotID)
47+
require.Equal(t, blobURLParts.Scheme, "https")
48+
require.Equal(t, blobURLParts.Host, host)
49+
require.Equal(t, blobURLParts.ContainerName, testContainer)
50+
require.Equal(t, blobURLParts.VersionID, versionID)
51+
require.Equal(t, blobURLParts.Snapshot, snapshotID)
5352

54-
validateSAS(_require, sas, blobURLParts.SAS)
53+
validateSAS(t, sas, blobURLParts.SAS)
5554
}
5655

5756
//urlWithIP := "https://127.0.0.1:5000/"
58-
5957
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
//go:build go1.18
2+
// +build go1.18
3+
4+
// Copyright (c) Microsoft Corporation. All rights reserved.
5+
// Licensed under the MIT License. See License.txt in the project root for license information.
6+
7+
package exported
8+
9+
import (
10+
"fmt"
11+
"net/url"
12+
"strings"
13+
"testing"
14+
15+
"github.com/stretchr/testify/require"
16+
)
17+
18+
func TestSAS(t *testing.T) {
19+
const sas = "sv=2019-12-12&sr=b&st=2111-01-09T01:42:34.936Z&se=2222-03-09T01:42:34.936Z&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https,http&si=myIdentifier&ss=bf&srt=s&sig=clNxbtnkKSHw7f3KMEVVc4agaszoRFdbZr%2FWBmPNsrw%3D"
20+
_url := fmt.Sprintf("https://teststorageaccount.blob.core.windows.net/testcontainer/testpath?%s", sas)
21+
_uri, err := url.Parse(_url)
22+
require.NoError(t, err)
23+
sasQueryParams := NewSASQueryParameters(_uri.Query(), true)
24+
validateSAS(t, sas, sasQueryParams)
25+
}
26+
27+
func validateSAS(t *testing.T, sas string, parameters SASQueryParameters) {
28+
sasCompMap := make(map[string]string)
29+
for _, sasComp := range strings.Split(sas, "&") {
30+
comp := strings.Split(sasComp, "=")
31+
sasCompMap[comp[0]] = comp[1]
32+
}
33+
34+
require.Equal(t, parameters.Version(), sasCompMap["sv"])
35+
require.Equal(t, parameters.Services(), sasCompMap["ss"])
36+
require.Equal(t, parameters.ResourceTypes(), sasCompMap["srt"])
37+
require.Equal(t, string(parameters.Protocol()), sasCompMap["spr"])
38+
if _, ok := sasCompMap["st"]; ok {
39+
startTime, _, err := ParseSASTimeString(sasCompMap["st"])
40+
require.NoError(t, err)
41+
require.Equal(t, parameters.StartTime(), startTime)
42+
}
43+
if _, ok := sasCompMap["se"]; ok {
44+
endTime, _, err := ParseSASTimeString(sasCompMap["se"])
45+
require.NoError(t, err)
46+
require.Equal(t, parameters.ExpiryTime(), endTime)
47+
}
48+
49+
if _, ok := sasCompMap["snapshot"]; ok {
50+
snapshotTime, _, err := ParseSASTimeString(sasCompMap["snapshot"])
51+
require.NoError(t, err)
52+
require.Equal(t, parameters.SnapshotTime(), snapshotTime)
53+
}
54+
ipRange := parameters.IPRange()
55+
require.Equal(t, ipRange.String(), sasCompMap["sip"])
56+
require.Equal(t, parameters.Identifier(), sasCompMap["si"])
57+
require.Equal(t, parameters.Resource(), sasCompMap["sr"])
58+
require.Equal(t, parameters.Permissions(), sasCompMap["sp"])
59+
60+
sign, err := url.QueryUnescape(sasCompMap["sig"])
61+
require.NoError(t, err)
62+
63+
require.Equal(t, parameters.Signature(), sign)
64+
require.Equal(t, parameters.CacheControl(), sasCompMap["rscc"])
65+
require.Equal(t, parameters.ContentDisposition(), sasCompMap["rscd"])
66+
require.Equal(t, parameters.ContentEncoding(), sasCompMap["rsce"])
67+
require.Equal(t, parameters.ContentLanguage(), sasCompMap["rscl"])
68+
require.Equal(t, parameters.ContentType(), sasCompMap["rsct"])
69+
require.Equal(t, parameters.SignedOID(), sasCompMap["skoid"])
70+
require.Equal(t, parameters.SignedTID(), sasCompMap["sktid"])
71+
72+
if _, ok := sasCompMap["skt"]; ok {
73+
signedStart, _, err := ParseSASTimeString(sasCompMap["skt"])
74+
require.NoError(t, err)
75+
require.Equal(t, parameters.SignedStart(), signedStart)
76+
}
77+
require.Equal(t, parameters.SignedService(), sasCompMap["sks"])
78+
79+
if _, ok := sasCompMap["ske"]; ok {
80+
signedExpiry, _, err := ParseSASTimeString(sasCompMap["ske"])
81+
require.NoError(t, err)
82+
require.Equal(t, parameters.SignedExpiry(), signedExpiry)
83+
}
84+
85+
require.Equal(t, parameters.SignedVersion(), sasCompMap["skv"])
86+
require.Equal(t, parameters.SignedDirectoryDepth(), sasCompMap["sdd"])
87+
require.Equal(t, parameters.PreauthorizedAgentObjectID(), sasCompMap["saoid"])
88+
require.Equal(t, parameters.AgentObjectID(), sasCompMap["suoid"])
89+
require.Equal(t, parameters.SignedCorrelationID(), sasCompMap["scid"])
90+
}

0 commit comments

Comments
 (0)