Skip to content

Commit 661e008

Browse files
authored
Move tests to their respective packages (Azure#18988)
No test or functional changes.
1 parent 6cb1f96 commit 661e008

File tree

7 files changed

+2514
-2584
lines changed

7 files changed

+2514
-2584
lines changed

sdk/storage/azblob/appendblob/client_test.go

Lines changed: 317 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import (
1010
"bytes"
1111
"context"
1212
"crypto/md5"
13+
"io"
14+
"strconv"
1315
"strings"
1416
"testing"
1517

@@ -1441,3 +1443,318 @@ func (s *AppendBlobUnrecordedTestsSuite) TestSetBlobMetadataReturnsVID() {
14411443
_require.Len(blobResp1.Metadata, 2)
14421444
}
14431445
}
1446+
1447+
func (s *AppendBlobRecordedTestsSuite) TestAppendBlockWithCPK() {
1448+
_require := require.New(s.T())
1449+
testName := s.T().Name()
1450+
svcClient, err := testcommon.GetServiceClient(s.T(), testcommon.TestAccountDefault, nil)
1451+
_require.NoError(err)
1452+
containerClient := testcommon.CreateNewContainer(context.Background(), _require, testcommon.GenerateContainerName(testName), svcClient)
1453+
defer testcommon.DeleteContainer(context.Background(), _require, containerClient)
1454+
1455+
abClient := containerClient.NewAppendBlobClient(testcommon.GenerateBlobName(testName))
1456+
1457+
createAppendBlobOptions := appendblob.CreateOptions{
1458+
CpkInfo: &testcommon.TestCPKByValue,
1459+
}
1460+
_, err = abClient.Create(context.Background(), &createAppendBlobOptions)
1461+
_require.Nil(err)
1462+
// _require.Equal(resp.RawResponse.StatusCode, 201)
1463+
1464+
words := []string{"AAA ", "BBB ", "CCC "}
1465+
for index, word := range words {
1466+
appendBlockOptions := appendblob.AppendBlockOptions{
1467+
CpkInfo: &testcommon.TestCPKByValue,
1468+
}
1469+
resp, err := abClient.AppendBlock(context.Background(), streaming.NopCloser(strings.NewReader(word)), &appendBlockOptions)
1470+
_require.Nil(err)
1471+
// _require.Equal(resp.RawResponse.StatusCode, 201)
1472+
_require.Equal(*resp.BlobAppendOffset, strconv.Itoa(index*4))
1473+
_require.Equal(*resp.BlobCommittedBlockCount, int32(index+1))
1474+
_require.NotNil(resp.ETag)
1475+
_require.NotNil(resp.LastModified)
1476+
_require.Equal(resp.LastModified.IsZero(), false)
1477+
_require.NotEqual(resp.ContentMD5, "")
1478+
1479+
_require.NotEqual(resp.Version, "")
1480+
_require.NotNil(resp.Date)
1481+
_require.Equal((*resp.Date).IsZero(), false)
1482+
_require.Equal(*resp.IsServerEncrypted, true)
1483+
_require.EqualValues(resp.EncryptionKeySHA256, testcommon.TestCPKByValue.EncryptionKeySHA256)
1484+
}
1485+
1486+
// Get blob content without encryption key should fail the request.
1487+
_, err = abClient.DownloadStream(context.Background(), nil)
1488+
_require.NotNil(err)
1489+
1490+
// Download blob to do data integrity check.
1491+
downloadBlobOptions := blob.DownloadStreamOptions{
1492+
CpkInfo: &testcommon.TestCPKByValue,
1493+
}
1494+
downloadResp, err := abClient.DownloadStream(context.Background(), &downloadBlobOptions)
1495+
_require.Nil(err)
1496+
1497+
data, err := io.ReadAll(downloadResp.Body)
1498+
_require.Nil(err)
1499+
_require.EqualValues(string(data), "AAA BBB CCC ")
1500+
_require.EqualValues(*downloadResp.EncryptionKeySHA256, *testcommon.TestCPKByValue.EncryptionKeySHA256)
1501+
}
1502+
1503+
func (s *AppendBlobRecordedTestsSuite) TestAppendBlockWithCPKScope() {
1504+
_require := require.New(s.T())
1505+
testName := s.T().Name()
1506+
svcClient, err := testcommon.GetServiceClient(s.T(), testcommon.TestAccountDefault, nil)
1507+
_require.NoError(err)
1508+
containerClient := testcommon.CreateNewContainer(context.Background(), _require, testcommon.GenerateContainerName(testName), svcClient)
1509+
defer testcommon.DeleteContainer(context.Background(), _require, containerClient)
1510+
1511+
abClient := containerClient.NewAppendBlobClient(testcommon.GenerateBlobName(testName))
1512+
1513+
createAppendBlobOptions := appendblob.CreateOptions{
1514+
CpkScopeInfo: &testcommon.TestCPKByScope,
1515+
}
1516+
_, err = abClient.Create(context.Background(), &createAppendBlobOptions)
1517+
_require.Nil(err)
1518+
// _require.Equal(resp.RawResponse.StatusCode, 201)
1519+
1520+
words := []string{"AAA ", "BBB ", "CCC "}
1521+
for index, word := range words {
1522+
appendBlockOptions := appendblob.AppendBlockOptions{
1523+
CpkScopeInfo: &testcommon.TestCPKByScope,
1524+
}
1525+
resp, err := abClient.AppendBlock(context.Background(), streaming.NopCloser(strings.NewReader(word)), &appendBlockOptions)
1526+
_require.Nil(err)
1527+
// _require.Equal(resp.RawResponse.StatusCode, 201)
1528+
_require.Equal(*resp.BlobAppendOffset, strconv.Itoa(index*4))
1529+
_require.Equal(*resp.BlobCommittedBlockCount, int32(index+1))
1530+
_require.NotNil(resp.ETag)
1531+
_require.NotNil(resp.LastModified)
1532+
_require.Equal(resp.LastModified.IsZero(), false)
1533+
_require.NotEqual(resp.ContentMD5, "")
1534+
1535+
_require.NotEqual(resp.Version, "")
1536+
_require.NotNil(resp.Date)
1537+
_require.Equal((*resp.Date).IsZero(), false)
1538+
_require.Equal(*resp.IsServerEncrypted, true)
1539+
_require.EqualValues(resp.EncryptionScope, testcommon.TestCPKByScope.EncryptionScope)
1540+
}
1541+
1542+
// Download blob to do data integrity check.
1543+
downloadBlobOptions := blob.DownloadStreamOptions{
1544+
CpkScopeInfo: &testcommon.TestCPKByScope,
1545+
}
1546+
downloadResp, err := abClient.DownloadStream(context.Background(), &downloadBlobOptions)
1547+
_require.Nil(err)
1548+
1549+
data, err := io.ReadAll(downloadResp.Body)
1550+
_require.Nil(err)
1551+
_require.EqualValues(string(data), "AAA BBB CCC ")
1552+
_require.EqualValues(*downloadResp.EncryptionScope, *testcommon.TestCPKByScope.EncryptionScope)
1553+
}
1554+
1555+
//nolint
1556+
//func (s *AppendBlobUnrecordedTestsSuite) TestAppendBlockFromURLWithCPK() {
1557+
// _require := require.New(s.T())
1558+
// testName := s.T().Name()
1559+
// svcClient, err := testcommon.GetServiceClient(s.T(), testcommon.TestAccountDefault, nil)
1560+
// if err != nil {
1561+
// s.Fail("Unable to fetch service client because " + err.Error())
1562+
// }
1563+
// containerClient := testcommon.CreateNewContainer(context.Background(), _require, testcommon.GenerateContainerName(testName)+"01", svcClient)
1564+
// defer testcommon.DeleteContainer(context.Background(), _require, containerClient)
1565+
//
1566+
// contentSize := 4 * 1024 * 1024 // 4MB
1567+
// r, srcData := getRandomDataAndReader(contentSize)
1568+
// md5Sum := md5.Sum(srcData)
1569+
// contentMD5 := md5Sum[:]
1570+
// ctx := ctx
1571+
// srcABClient := containerClient.NewAppendBlobClient(generateName("src"))
1572+
// destBlob := containerClient.NewAppendBlobClient(generateName("dest"))
1573+
//
1574+
// _, err = srcABClient.Create(ctx, nil)
1575+
// _require.Nil(err)
1576+
// //_require.Equal(cResp1.RawResponse.StatusCode, 201)
1577+
//
1578+
// resp, err := srcABClient.AppendBlock(ctx, streaming.NopCloser(r), nil)
1579+
// _require.Nil(err)
1580+
// // _require.Equal(resp.RawResponse.StatusCode, 201)
1581+
// _require.Equal(*resp.BlobAppendOffset, "0")
1582+
// _require.Equal(*resp.BlobCommittedBlockCount, int32(1))
1583+
// _require.NotNil(resp.ETag)
1584+
// _require.NotNil(resp.LastModified)
1585+
// _require.Equal((*resp.LastModified).IsZero(), false)
1586+
// _require.Nil(resp.ContentMD5)
1587+
// _require.NotNil(resp.RequestID)
1588+
// _require.NotNil(resp.Version)
1589+
// _require.NotNil(resp.Date)
1590+
// _require.Equal((*resp.Date).IsZero(), false)
1591+
//
1592+
// srcBlobParts, _ := NewBlobURLParts(srcABClient.URL())
1593+
//
1594+
// credential, err := getGenericCredential(nil, testcommon.TestAccountDefault)
1595+
// _require.Nil(err)
1596+
// srcBlobParts.SAS, err = BlobSASSignatureValues{
1597+
// Protocol: SASProtocolHTTPS,
1598+
// ExpiryTime: time.Now().UTC().Add(1 * time.Hour),
1599+
// ContainerName: srcBlobParts.ContainerName,
1600+
// BlobName: srcBlobParts.BlobName,
1601+
// Permissions: BlobSASPermissions{Read: true}.String(),
1602+
// }.Sign(credential)
1603+
// if err != nil {
1604+
// s.T().Fatal(err)
1605+
// }
1606+
//
1607+
// srcBlobURLWithSAS := srcBlobParts.URL()
1608+
//
1609+
// createAppendBlobOptions := appendblob.CreateOptions{
1610+
// CpkInfo: &testcommon.TestCPKByValue,
1611+
// }
1612+
// _, err = destBlob.Create(ctx, &createAppendBlobOptions)
1613+
// _require.Nil(err)
1614+
// //_require.Equal(cResp2.RawResponse.StatusCode, 201)
1615+
//
1616+
// offset := int64(0)
1617+
// count := int64(contentSize)
1618+
// appendBlockURLOptions := AppendBlobAppendBlockFromURLOptions{
1619+
// Offset: &offset,
1620+
// Count: &count,
1621+
// CpkInfo: &testcommon.TestCPKByValue,
1622+
// }
1623+
// appendFromURLResp, err := destBlob.AppendBlockFromURL(ctx, srcBlobURLWithSAS, &appendBlockURLOptions)
1624+
// _require.Nil(err)
1625+
// //_require.Equal(appendFromURLResp.RawResponse.StatusCode, 201)
1626+
// _require.Equal(*appendFromURLResp.BlobAppendOffset, "0")
1627+
// _require.Equal(*appendFromURLResp.BlobCommittedBlockCount, int32(1))
1628+
// _require.NotNil(appendFromURLResp.ETag)
1629+
// _require.NotNil(appendFromURLResp.LastModified)
1630+
// _require.Equal((*appendFromURLResp.LastModified).IsZero(), false)
1631+
// _require.NotNil(appendFromURLResp.ContentMD5)
1632+
// _require.EqualValues(appendFromURLResp.ContentMD5, contentMD5)
1633+
// _require.NotNil(appendFromURLResp.RequestID)
1634+
// _require.NotNil(appendFromURLResp.Version)
1635+
// _require.NotNil(appendFromURLResp.Date)
1636+
// _require.Equal((*appendFromURLResp.Date).IsZero(), false)
1637+
// _require.Equal(*appendFromURLResp.IsServerEncrypted, true)
1638+
//
1639+
// // Get blob content without encryption key should fail the request.
1640+
// _, err = destBlob.DownloadStream(ctx, nil)
1641+
// _require.NotNil(err)
1642+
//
1643+
// // Download blob to do data integrity check.
1644+
// downloadBlobOptions := blob.downloadWriterAtOptions{
1645+
// CpkInfo: &testcommon.TestInvalidCPKByValue,
1646+
// }
1647+
// _, err = destBlob.DownloadStream(ctx, &downloadBlobOptions)
1648+
// _require.NotNil(err)
1649+
//
1650+
// // Download blob to do data integrity check.
1651+
// downloadBlobOptions = blob.downloadWriterAtOptions{
1652+
// CpkInfo: &testcommon.TestCPKByValue,
1653+
// }
1654+
// downloadResp, err := destBlob.DownloadStream(ctx, &downloadBlobOptions)
1655+
// _require.Nil(err)
1656+
//
1657+
// _require.Equal(*downloadResp.IsServerEncrypted, true)
1658+
// _require.EqualValues(*downloadResp.EncryptionKeySHA256, *testcommon.TestCPKByValue.EncryptionKeySHA256)
1659+
//
1660+
// destData, err := io.ReadAll(downloadResp.BodyReader(&blob.RetryReaderOptions{CpkInfo: &testcommon.TestCPKByValue}))
1661+
// _require.Nil(err)
1662+
// _require.EqualValues(destData, srcData)
1663+
//}
1664+
1665+
//nolint
1666+
//func (s *AppendBlobUnrecordedTestsSuite) TestAppendBlockFromURLWithCPKScope() {
1667+
// _require := require.New(s.T())
1668+
// testName := s.T().Name()
1669+
// svcClient, err := testcommon.GetServiceClient(s.T(), testcommon.TestAccountDefault, nil)
1670+
// if err != nil {
1671+
// s.Fail("Unable to fetch service client because " + err.Error())
1672+
// }
1673+
// containerClient := testcommon.CreateNewContainer(context.Background(), _require, testcommon.GenerateContainerName(testName)+"01", svcClient)
1674+
// defer testcommon.DeleteContainer(context.Background(), _require, containerClient)
1675+
//
1676+
// contentSize := 4 * 1024 * 1024 // 4MB
1677+
// r, srcData := getRandomDataAndReader(contentSize)
1678+
// md5Sum := md5.Sum(srcData)
1679+
// contentMD5 := md5Sum[:]
1680+
// ctx := ctx
1681+
// srcClient := containerClient.NewAppendBlobClient(generateName("src"))
1682+
// destBlob := containerClient.NewAppendBlobClient(generateName("dest"))
1683+
//
1684+
// _, err = srcClient.Create(ctx, nil)
1685+
// _require.Nil(err)
1686+
// //_require.Equal(cResp1.RawResponse.StatusCode, 201)
1687+
//
1688+
// resp, err := srcClient.AppendBlock(ctx, streaming.NopCloser(r), nil)
1689+
// _require.Nil(err)
1690+
// // _require.Equal(resp.RawResponse.StatusCode, 201)
1691+
// _require.Equal(*resp.BlobAppendOffset, "0")
1692+
// _require.Equal(*resp.BlobCommittedBlockCount, int32(1))
1693+
// _require.NotNil(resp.ETag)
1694+
// _require.NotNil(resp.LastModified)
1695+
// _require.Equal((*resp.LastModified).IsZero(), false)
1696+
// _require.Nil(resp.ContentMD5)
1697+
// _require.NotNil(resp.RequestID)
1698+
// _require.NotNil(resp.Version)
1699+
// _require.NotNil(resp.Date)
1700+
// _require.Equal((*resp.Date).IsZero(), false)
1701+
//
1702+
// srcBlobParts, _ := NewBlobURLParts(srcClient.URL())
1703+
//
1704+
// credential, err := getGenericCredential(nil, testcommon.TestAccountDefault)
1705+
// _require.Nil(err)
1706+
// srcBlobParts.SAS, err = BlobSASSignatureValues{
1707+
// Protocol: SASProtocolHTTPS,
1708+
// ExpiryTime: time.Now().UTC().Add(1 * time.Hour),
1709+
// ContainerName: srcBlobParts.ContainerName,
1710+
// BlobName: srcBlobParts.BlobName,
1711+
// Permissions: BlobSASPermissions{Read: true}.String(),
1712+
// }.Sign(credential)
1713+
// if err != nil {
1714+
// s.T().Fatal(err)
1715+
// }
1716+
//
1717+
// srcBlobURLWithSAS := srcBlobParts.URL()
1718+
//
1719+
// createAppendBlobOptions := appendblob.CreateOptions{
1720+
// CpkScopeInfo: &testcommon.TestCPKByScope,
1721+
// }
1722+
// _, err = destBlob.Create(ctx, &createAppendBlobOptions)
1723+
// _require.Nil(err)
1724+
// //_require.Equal(cResp2.RawResponse.StatusCode, 201)
1725+
//
1726+
// offset := int64(0)
1727+
// count := int64(contentSize)
1728+
// appendBlockURLOptions := AppendBlobAppendBlockFromURLOptions{
1729+
// Offset: &offset,
1730+
// Count: &count,
1731+
// CpkScopeInfo: &testcommon.TestCPKByScope,
1732+
// }
1733+
// appendFromURLResp, err := destBlob.AppendBlockFromURL(ctx, srcBlobURLWithSAS, &appendBlockURLOptions)
1734+
// _require.Nil(err)
1735+
// //_require.Equal(appendFromURLResp.RawResponse.StatusCode, 201)
1736+
// _require.Equal(*appendFromURLResp.BlobAppendOffset, "0")
1737+
// _require.Equal(*appendFromURLResp.BlobCommittedBlockCount, int32(1))
1738+
// _require.NotNil(appendFromURLResp.ETag)
1739+
// _require.NotNil(appendFromURLResp.LastModified)
1740+
// _require.Equal((*appendFromURLResp.LastModified).IsZero(), false)
1741+
// _require.NotNil(appendFromURLResp.ContentMD5)
1742+
// _require.EqualValues(appendFromURLResp.ContentMD5, contentMD5)
1743+
// _require.NotNil(appendFromURLResp.RequestID)
1744+
// _require.NotNil(appendFromURLResp.Version)
1745+
// _require.NotNil(appendFromURLResp.Date)
1746+
// _require.Equal((*appendFromURLResp.Date).IsZero(), false)
1747+
// _require.Equal(*appendFromURLResp.IsServerEncrypted, true)
1748+
//
1749+
// downloadBlobOptions := blob.downloadWriterAtOptions{
1750+
// CpkScopeInfo: &testcommon.TestCPKByScope,
1751+
// }
1752+
// downloadResp, err := destBlob.DownloadStream(ctx, &downloadBlobOptions)
1753+
// _require.Nil(err)
1754+
// _require.Equal(*downloadResp.IsServerEncrypted, true)
1755+
// _require.EqualValues(*downloadResp.EncryptionScope, *testcommon.TestCPKByScope.EncryptionScope)
1756+
//
1757+
// destData, err := io.ReadAll(downloadResp.BodyReader(&blob.RetryReaderOptions{CpkInfo: &testcommon.TestCPKByValue}))
1758+
// _require.Nil(err)
1759+
// _require.EqualValues(destData, srcData)
1760+
//}

0 commit comments

Comments
 (0)