Skip to content

Commit bb04841

Browse files
authored
Merge pull request #51 from rameel/inconsistent-tz
Fix inconsistent time's offset in PhysicalFile/PhysicalDirectory properties
2 parents daf8d6f + a0b2956 commit bb04841

3 files changed

Lines changed: 40 additions & 4 deletions

File tree

src/Ramstack.FileSystem.Physical/PhysicalDirectory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ public PhysicalDirectory(PhysicalFileSystem fileSystem, string path, string phys
4444

4545
var properties = info.Exists
4646
? VirtualNodeProperties.CreateDirectoryProperties(
47-
creationTime: info.CreationTimeUtc,
47+
creationTime: info.CreationTime,
4848
lastAccessTime: info.LastAccessTime,
49-
lastWriteTime: info.LastWriteTimeUtc)
49+
lastWriteTime: info.LastWriteTime)
5050
: null;
5151

5252
return new ValueTask<VirtualNodeProperties?>(properties);

src/Ramstack.FileSystem.Physical/PhysicalFile.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ internal PhysicalFile(PhysicalFileSystem fileSystem, string path, string physica
3131
var file = new FileInfo(_physicalPath);
3232
var properties = file.Exists
3333
? VirtualNodeProperties.CreateFileProperties(
34-
creationTime: file.CreationTimeUtc,
34+
creationTime: file.CreationTime,
3535
lastAccessTime: file.LastAccessTime,
36-
lastWriteTime: file.LastWriteTimeUtc,
36+
lastWriteTime: file.LastWriteTime,
3737
length: file.Length)
3838
: null;
3939

tests/Ramstack.FileSystem.Physical.Tests/WriteablePhysicalFileSystemTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,42 @@ public class WriteablePhysicalFileSystemTests : VirtualFileSystemSpecificationTe
88
{
99
private readonly TempFileStorage _storage = new TempFileStorage();
1010

11+
[Test]
12+
public async Task Directory_GetProperties_ReturnsConsistentTimezones()
13+
{
14+
using var fs = GetFileSystem();
15+
16+
var directory = await fs
17+
.GetDirectory("/project")
18+
.GetPropertiesAsync();
19+
20+
Assert.That(
21+
directory.LastAccessTime.Offset,
22+
Is.EqualTo(directory.LastWriteTime.Offset));
23+
24+
Assert.That(
25+
directory.CreationTime.Offset,
26+
Is.EqualTo(directory.LastWriteTime.Offset));
27+
}
28+
29+
[Test]
30+
public async Task File_GetProperties_ReturnsConsistentTimezones()
31+
{
32+
using var fs = GetFileSystem();
33+
34+
var file = await fs
35+
.GetFile("/project/docs/api_reference.md")
36+
.GetPropertiesAsync();
37+
38+
Assert.That(
39+
file.LastAccessTime.Offset,
40+
Is.EqualTo(file.LastWriteTime.Offset));
41+
42+
Assert.That(
43+
file.CreationTime.Offset,
44+
Is.EqualTo(file.LastWriteTime.Offset));
45+
}
46+
1147
[OneTimeTearDown]
1248
public void Cleanup() =>
1349
_storage.Dispose();

0 commit comments

Comments
 (0)