Integrate DateTime into Storage's file service. (#1154)
This commit is contained in:
parent
37b55c1e11
commit
e23e9333c8
@ -14,6 +14,7 @@
|
||||
- Move File SAS into `Azure::Storage::Sas` namespace.
|
||||
- Replaced all transactional content MD5/CRC64 with `ContentHash` struct.
|
||||
- `FileShareHttpHeaders` is renamed to `ShareFileHttpHeaders`, and member `std::string ContentMd5` is changed to `Storage::ContentHash ContentHash`.
|
||||
- All date time related strings are now changed to `Azure::Core::DateTime` type.
|
||||
|
||||
## 12.0.0-beta.5 (2020-11-13)
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -82,12 +82,12 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { names
|
||||
/**
|
||||
* @brief Creation time for the file/directory..
|
||||
*/
|
||||
Azure::Core::Nullable<std::string> CreationTime;
|
||||
Azure::Core::Nullable<Core::DateTime> CreatedOn;
|
||||
|
||||
/**
|
||||
* @brief Last write time for the file/directory..
|
||||
*/
|
||||
Azure::Core::Nullable<std::string> LastWriteTime;
|
||||
Azure::Core::Nullable<Core::DateTime> LastWrittenOn;
|
||||
};
|
||||
|
||||
// FileClient models:
|
||||
@ -114,7 +114,7 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { names
|
||||
struct DownloadFileToResult
|
||||
{
|
||||
std::string ETag;
|
||||
std::string LastModified;
|
||||
Core::DateTime LastModified;
|
||||
int64_t ContentLength = 0;
|
||||
ShareFileHttpHeaders HttpHeaders;
|
||||
Storage::Metadata Metadata;
|
||||
|
||||
@ -134,17 +134,21 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
protocolLayerOptions.FileAttributes
|
||||
= Details::FileAttributesToString(Models::FileAttributes::Directory);
|
||||
}
|
||||
if (options.SmbProperties.CreationTime.HasValue())
|
||||
if (options.SmbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = options.SmbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileCreationTime
|
||||
= options.SmbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (options.SmbProperties.LastWriteTime.HasValue())
|
||||
if (options.SmbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = options.SmbProperties.LastWriteTime.GetValue();
|
||||
protocolLayerOptions.FileLastWriteTime
|
||||
= options.SmbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -188,21 +192,24 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
{
|
||||
auto protocolLayerOptions = Details::ShareRestClient::Directory::SetPropertiesOptions();
|
||||
protocolLayerOptions.FileAttributes = Details::FileAttributesToString(smbProperties.Attributes);
|
||||
if (smbProperties.CreationTime.HasValue())
|
||||
if (smbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = smbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileCreationTime = smbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FilePreserveSmbProperties);
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (smbProperties.LastWriteTime.HasValue())
|
||||
if (smbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = smbProperties.LastWriteTime.GetValue();
|
||||
protocolLayerOptions.FileLastWriteTime
|
||||
= smbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = std::string(c_FilePreserveSmbProperties);
|
||||
protocolLayerOptions.FileLastWriteTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (options.FilePermission.HasValue())
|
||||
{
|
||||
|
||||
@ -122,17 +122,21 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
protocolLayerOptions.FileAttributes
|
||||
= Details::FileAttributesToString(Models::FileAttributes::None);
|
||||
}
|
||||
if (options.SmbProperties.CreationTime.HasValue())
|
||||
if (options.SmbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = options.SmbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileCreationTime
|
||||
= options.SmbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (options.SmbProperties.LastWriteTime.HasValue())
|
||||
if (options.SmbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = options.SmbProperties.LastWriteTime.GetValue();
|
||||
protocolLayerOptions.FileLastWriteTime
|
||||
= options.SmbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -261,18 +265,21 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
protocolLayerOptions.CopySource = std::move(copySource);
|
||||
protocolLayerOptions.FileCopyFileAttributes
|
||||
= Details::FileAttributesToString(options.SmbProperties.Attributes);
|
||||
if (options.SmbProperties.CreationTime.HasValue())
|
||||
if (options.SmbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCopyFileCreationTime = options.SmbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileCopyFileCreationTime
|
||||
= options.SmbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCopyFileCreationTime = std::string(c_FileCopySourceTime);
|
||||
}
|
||||
if (options.SmbProperties.LastWriteTime.HasValue())
|
||||
if (options.SmbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCopyFileLastWriteTime
|
||||
= options.SmbProperties.LastWriteTime.GetValue();
|
||||
= options.SmbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -337,21 +344,29 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
{
|
||||
auto protocolLayerOptions = Details::ShareRestClient::File::SetHttpHeadersOptions();
|
||||
protocolLayerOptions.FileAttributes = Details::FileAttributesToString(smbProperties.Attributes);
|
||||
if (smbProperties.CreationTime.HasValue())
|
||||
if (protocolLayerOptions.FileAttributes.empty())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = smbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileAttributes
|
||||
= Details::FileAttributesToString(Models::FileAttributes::None);
|
||||
}
|
||||
if (smbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = smbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FilePreserveSmbProperties);
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (smbProperties.LastWriteTime.HasValue())
|
||||
if (smbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = smbProperties.LastWriteTime.GetValue();
|
||||
protocolLayerOptions.FileLastWriteTime
|
||||
= smbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = std::string(c_FilePreserveSmbProperties);
|
||||
protocolLayerOptions.FileLastWriteTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
protocolLayerOptions.XMsContentLength = options.Size;
|
||||
protocolLayerOptions.LeaseIdOptional = options.AccessConditions.LeaseId;
|
||||
@ -813,17 +828,21 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
protocolLayerOptions.FileAttributes
|
||||
= Details::FileAttributesToString(Models::FileAttributes::None);
|
||||
}
|
||||
if (options.SmbProperties.CreationTime.HasValue())
|
||||
if (options.SmbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = options.SmbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileCreationTime
|
||||
= options.SmbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (options.SmbProperties.LastWriteTime.HasValue())
|
||||
if (options.SmbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = options.SmbProperties.LastWriteTime.GetValue();
|
||||
protocolLayerOptions.FileLastWriteTime
|
||||
= options.SmbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -910,17 +929,21 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares {
|
||||
protocolLayerOptions.FileAttributes
|
||||
= Details::FileAttributesToString(Models::FileAttributes::None);
|
||||
}
|
||||
if (options.SmbProperties.CreationTime.HasValue())
|
||||
if (options.SmbProperties.CreatedOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = options.SmbProperties.CreationTime.GetValue();
|
||||
protocolLayerOptions.FileCreationTime
|
||||
= options.SmbProperties.CreatedOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
protocolLayerOptions.FileCreationTime = std::string(c_FileDefaultTimeValue);
|
||||
}
|
||||
if (options.SmbProperties.LastWriteTime.HasValue())
|
||||
if (options.SmbProperties.LastWrittenOn.HasValue())
|
||||
{
|
||||
protocolLayerOptions.FileLastWriteTime = options.SmbProperties.LastWriteTime.GetValue();
|
||||
protocolLayerOptions.FileLastWriteTime
|
||||
= options.SmbProperties.LastWrittenOn.GetValue().GetRfc3339String(
|
||||
Core::DateTime::TimeFractionFormat::AllDigits);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -12,8 +12,9 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { names
|
||||
const Azure::Storage::Files::Shares::Models::SignedIdentifier& lhs,
|
||||
const Azure::Storage::Files::Shares::Models::SignedIdentifier& rhs)
|
||||
{
|
||||
return lhs.Id == rhs.Id && lhs.Policy.Start == rhs.Policy.Start
|
||||
&& lhs.Policy.Expiry == rhs.Policy.Expiry && lhs.Policy.Permission == rhs.Policy.Permission;
|
||||
return lhs.Id == rhs.Id && lhs.Policy.StartsOn == rhs.Policy.StartsOn
|
||||
&& lhs.Policy.ExpiresOn == rhs.Policy.ExpiresOn
|
||||
&& lhs.Policy.Permission == rhs.Policy.Permission;
|
||||
}
|
||||
|
||||
}}}}} // namespace Azure::Storage::Files::Shares::Models
|
||||
@ -156,17 +157,16 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
{
|
||||
Files::Shares::Models::SignedIdentifier identifier;
|
||||
identifier.Id = RandomString(64);
|
||||
identifier.Policy.Start
|
||||
= ToIso8601(std::chrono::system_clock::now() - std::chrono::minutes(10), 7);
|
||||
identifier.Policy.Expiry
|
||||
= ToIso8601(std::chrono::system_clock::now() - std::chrono::minutes(100), 7);
|
||||
identifier.Policy.StartsOn = Core::DateTime::Now() - std::chrono::minutes(10);
|
||||
identifier.Policy.ExpiresOn = Core::DateTime::Now() + std::chrono::minutes(100);
|
||||
identifier.Policy.Permission = "r";
|
||||
identifiers.emplace_back(identifier);
|
||||
}
|
||||
|
||||
auto lmt = m_shareClient->GetAccessPolicy()->LastModified;
|
||||
auto ret = m_shareClient->SetAccessPolicy(identifiers);
|
||||
EXPECT_FALSE(ret->ETag.empty());
|
||||
EXPECT_FALSE(ret->LastModified.empty());
|
||||
EXPECT_FALSE(ret->LastModified < lmt);
|
||||
|
||||
auto ret2 = m_shareClient->GetAccessPolicy();
|
||||
EXPECT_EQ(ret2->ETag, ret->ETag);
|
||||
|
||||
@ -168,8 +168,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
Files::Shares::Models::FileShareSmbProperties properties;
|
||||
properties.Attributes = Files::Shares::Models::FileAttributes::Directory
|
||||
| Files::Shares::Models::FileAttributes::NotContentIndexed;
|
||||
properties.CreationTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.LastWriteTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.CreatedOn = Core::DateTime::Now();
|
||||
properties.LastWrittenOn = Core::DateTime::Now();
|
||||
properties.PermissionKey = "";
|
||||
auto client1 = m_shareClient->GetShareDirectoryClient(LowercaseRandomString());
|
||||
auto client2 = m_shareClient->GetShareDirectoryClient(LowercaseRandomString());
|
||||
@ -201,8 +201,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
Files::Shares::Models::FileShareSmbProperties properties;
|
||||
properties.Attributes = Files::Shares::Models::FileAttributes::Directory
|
||||
| Files::Shares::Models::FileAttributes::NotContentIndexed;
|
||||
properties.CreationTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.LastWriteTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.CreatedOn = Core::DateTime::Now();
|
||||
properties.LastWrittenOn = Core::DateTime::Now();
|
||||
properties.PermissionKey = m_fileShareDirectoryClient->GetProperties()->FilePermissionKey;
|
||||
{
|
||||
// Create directory with SmbProperties works
|
||||
@ -217,8 +217,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
EXPECT_NO_THROW(client2.Create(options2));
|
||||
auto directoryProperties1 = client1.GetProperties();
|
||||
auto directoryProperties2 = client2.GetProperties();
|
||||
EXPECT_EQ(directoryProperties2->FileCreationTime, directoryProperties1->FileCreationTime);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWriteTime, directoryProperties1->FileLastWriteTime);
|
||||
EXPECT_EQ(directoryProperties2->FileCreatedOn, directoryProperties1->FileCreatedOn);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWrittenOn, directoryProperties1->FileLastWrittenOn);
|
||||
EXPECT_EQ(directoryProperties2->FileAttributes, directoryProperties1->FileAttributes);
|
||||
}
|
||||
|
||||
@ -233,8 +233,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
EXPECT_NO_THROW(client2.SetProperties(properties));
|
||||
auto directoryProperties1 = client1.GetProperties();
|
||||
auto directoryProperties2 = client2.GetProperties();
|
||||
EXPECT_EQ(directoryProperties2->FileCreationTime, directoryProperties1->FileCreationTime);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWriteTime, directoryProperties1->FileLastWriteTime);
|
||||
EXPECT_EQ(directoryProperties2->FileCreatedOn, directoryProperties1->FileCreatedOn);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWrittenOn, directoryProperties1->FileLastWrittenOn);
|
||||
EXPECT_EQ(directoryProperties2->FileAttributes, directoryProperties1->FileAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
@ -137,8 +137,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
Files::Shares::Models::FileShareSmbProperties properties;
|
||||
properties.Attributes = Files::Shares::Models::FileAttributes::System
|
||||
| Files::Shares::Models::FileAttributes::NotContentIndexed;
|
||||
properties.CreationTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.LastWriteTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.CreatedOn = Core::DateTime::Now();
|
||||
properties.LastWrittenOn = Core::DateTime::Now();
|
||||
properties.PermissionKey = "";
|
||||
auto client1 = m_fileShareDirectoryClient->GetShareFileClient(LowercaseRandomString());
|
||||
auto client2 = m_fileShareDirectoryClient->GetShareFileClient(LowercaseRandomString());
|
||||
@ -170,8 +170,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
Files::Shares::Models::FileShareSmbProperties properties;
|
||||
properties.Attributes = Files::Shares::Models::FileAttributes::System
|
||||
| Files::Shares::Models::FileAttributes::NotContentIndexed;
|
||||
properties.CreationTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.LastWriteTime = ToIso8601(std::chrono::system_clock::now(), 7);
|
||||
properties.CreatedOn = Core::DateTime::Now();
|
||||
properties.LastWrittenOn = Core::DateTime::Now();
|
||||
properties.PermissionKey = m_fileClient->GetProperties()->FilePermissionKey;
|
||||
{
|
||||
// Create directory with SmbProperties works
|
||||
@ -186,8 +186,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
EXPECT_NO_THROW(client2.Create(1024, options2));
|
||||
auto directoryProperties1 = client1.GetProperties();
|
||||
auto directoryProperties2 = client2.GetProperties();
|
||||
EXPECT_EQ(directoryProperties2->FileCreationTime, directoryProperties1->FileCreationTime);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWriteTime, directoryProperties1->FileLastWriteTime);
|
||||
EXPECT_EQ(directoryProperties2->FileCreatedOn, directoryProperties1->FileCreatedOn);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWrittenOn, directoryProperties1->FileLastWrittenOn);
|
||||
EXPECT_EQ(directoryProperties2->FileAttributes, directoryProperties1->FileAttributes);
|
||||
}
|
||||
|
||||
@ -202,8 +202,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
EXPECT_NO_THROW(client2.SetProperties(GetInterestingHttpHeaders(), properties));
|
||||
auto directoryProperties1 = client1.GetProperties();
|
||||
auto directoryProperties2 = client2.GetProperties();
|
||||
EXPECT_EQ(directoryProperties2->FileCreationTime, directoryProperties1->FileCreationTime);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWriteTime, directoryProperties1->FileLastWriteTime);
|
||||
EXPECT_EQ(directoryProperties2->FileCreatedOn, directoryProperties1->FileCreatedOn);
|
||||
EXPECT_EQ(directoryProperties2->FileLastWrittenOn, directoryProperties1->FileLastWrittenOn);
|
||||
EXPECT_EQ(directoryProperties2->FileAttributes, directoryProperties1->FileAttributes);
|
||||
}
|
||||
}
|
||||
@ -219,13 +219,15 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
TEST_F(FileShareFileClientTest, LeaseRelated)
|
||||
{
|
||||
std::string leaseId1 = CreateUniqueLeaseId();
|
||||
auto lastModified = m_fileClient->GetProperties()->LastModified;
|
||||
auto aLease = *m_fileClient->AcquireLease(leaseId1);
|
||||
EXPECT_FALSE(aLease.ETag.empty());
|
||||
EXPECT_FALSE(aLease.LastModified.empty());
|
||||
EXPECT_TRUE(aLease.LastModified >= lastModified);
|
||||
EXPECT_EQ(aLease.LeaseId, leaseId1);
|
||||
lastModified = m_fileClient->GetProperties()->LastModified;
|
||||
aLease = *m_fileClient->AcquireLease(leaseId1);
|
||||
EXPECT_FALSE(aLease.ETag.empty());
|
||||
EXPECT_FALSE(aLease.LastModified.empty());
|
||||
EXPECT_TRUE(aLease.LastModified >= lastModified);
|
||||
EXPECT_EQ(aLease.LeaseId, leaseId1);
|
||||
|
||||
auto properties = *m_fileClient->GetProperties();
|
||||
@ -234,25 +236,28 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
|
||||
std::string leaseId2 = CreateUniqueLeaseId();
|
||||
EXPECT_NE(leaseId1, leaseId2);
|
||||
lastModified = m_fileClient->GetProperties()->LastModified;
|
||||
auto cLease = *m_fileClient->ChangeLease(leaseId1, leaseId2);
|
||||
EXPECT_FALSE(cLease.ETag.empty());
|
||||
EXPECT_FALSE(cLease.LastModified.empty());
|
||||
EXPECT_TRUE(cLease.LastModified >= lastModified);
|
||||
EXPECT_EQ(cLease.LeaseId, leaseId2);
|
||||
|
||||
lastModified = m_fileClient->GetProperties()->LastModified;
|
||||
auto fileInfo = *m_fileClient->ReleaseLease(leaseId2);
|
||||
EXPECT_FALSE(fileInfo.ETag.empty());
|
||||
EXPECT_FALSE(fileInfo.LastModified.empty());
|
||||
EXPECT_TRUE(fileInfo.LastModified >= lastModified);
|
||||
|
||||
aLease = *m_fileClient->AcquireLease(CreateUniqueLeaseId());
|
||||
properties = *m_fileClient->GetProperties();
|
||||
lastModified = m_fileClient->GetProperties()->LastModified;
|
||||
auto brokenLease = *m_fileClient->BreakLease();
|
||||
EXPECT_FALSE(brokenLease.ETag.empty());
|
||||
EXPECT_FALSE(brokenLease.LastModified.empty());
|
||||
EXPECT_TRUE(brokenLease.LastModified >= lastModified);
|
||||
|
||||
aLease = *m_fileClient->AcquireLease(CreateUniqueLeaseId());
|
||||
lastModified = m_fileClient->GetProperties()->LastModified;
|
||||
brokenLease = *m_fileClient->BreakLease();
|
||||
EXPECT_FALSE(brokenLease.ETag.empty());
|
||||
EXPECT_FALSE(brokenLease.LastModified.empty());
|
||||
EXPECT_TRUE(brokenLease.LastModified >= lastModified);
|
||||
m_fileClient->BreakLease();
|
||||
}
|
||||
|
||||
|
||||
@ -70,12 +70,13 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
EXPECT_NO_THROW(shareClient.ListFilesAndDirectoriesSegment());
|
||||
};
|
||||
|
||||
for (auto permissions : {Sas::ShareSasPermissions::Read,
|
||||
Sas::ShareSasPermissions::Write,
|
||||
Sas::ShareSasPermissions::Delete,
|
||||
Sas::ShareSasPermissions::List,
|
||||
Sas::ShareSasPermissions::Create,
|
||||
Sas::ShareSasPermissions::All})
|
||||
for (auto permissions :
|
||||
{Sas::ShareSasPermissions::Read,
|
||||
Sas::ShareSasPermissions::Write,
|
||||
Sas::ShareSasPermissions::Delete,
|
||||
Sas::ShareSasPermissions::List,
|
||||
Sas::ShareSasPermissions::Create,
|
||||
Sas::ShareSasPermissions::All})
|
||||
{
|
||||
shareSasBuilder.SetPermissions(permissions);
|
||||
auto sasToken = shareSasBuilder.GenerateSasToken(*keyCredential);
|
||||
@ -102,10 +103,11 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
}
|
||||
}
|
||||
|
||||
for (auto permissions : {Sas::ShareFileSasPermissions::Read,
|
||||
Sas::ShareFileSasPermissions::Write,
|
||||
Sas::ShareFileSasPermissions::Delete,
|
||||
Sas::ShareFileSasPermissions::Create})
|
||||
for (auto permissions :
|
||||
{Sas::ShareFileSasPermissions::Read,
|
||||
Sas::ShareFileSasPermissions::Write,
|
||||
Sas::ShareFileSasPermissions::Delete,
|
||||
Sas::ShareFileSasPermissions::Create})
|
||||
{
|
||||
fileSasBuilder.SetPermissions(permissions);
|
||||
auto sasToken = fileSasBuilder.GenerateSasToken(*keyCredential);
|
||||
@ -166,10 +168,8 @@ namespace Azure { namespace Storage { namespace Test {
|
||||
{
|
||||
Files::Shares::Models::SignedIdentifier identifier;
|
||||
identifier.Id = RandomString(64);
|
||||
identifier.Policy.Start
|
||||
= ToIso8601(std::chrono::system_clock::now() - std::chrono::minutes(5));
|
||||
identifier.Policy.Expiry
|
||||
= ToIso8601(std::chrono::system_clock::now() + std::chrono::minutes(60));
|
||||
identifier.Policy.StartsOn = Core::DateTime::Now() - std::chrono::minutes(5);
|
||||
identifier.Policy.ExpiresOn = Core::DateTime::Now() + std::chrono::minutes(60);
|
||||
identifier.Policy.Permission = "r";
|
||||
m_shareClient->SetAccessPolicy({identifier});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user