@@ -57,12 +57,13 @@ public override void AppendAllText(string path, string contents, Encoding encodi
57
57
if ( ! mockFileDataAccessor . FileExists ( path ) )
58
58
{
59
59
VerifyDirectoryExists ( path ) ;
60
- mockFileDataAccessor . AddFile ( path , new MockFileData ( contents , encoding ) ) ;
60
+ mockFileDataAccessor . AddFile ( path , mockFileDataAccessor . AdjustTimes ( new MockFileData ( contents , encoding ) , TimeAdjustments . All ) ) ;
61
61
}
62
62
else
63
63
{
64
64
var file = mockFileDataAccessor . GetFile ( path ) ;
65
65
file . CheckFileAccess ( path , FileAccess . Write ) ;
66
+ mockFileDataAccessor . AdjustTimes ( file , TimeAdjustments . LastAccessTime | TimeAdjustments . LastWriteTime ) ;
66
67
var bytesToAppend = encoding . GetBytes ( contents ) ;
67
68
file . Contents = file . Contents . Concat ( bytesToAppend ) . ToArray ( ) ;
68
69
}
@@ -126,7 +127,7 @@ public override void Copy(string sourceFileName, string destFileName, bool overw
126
127
var sourceFileData = mockFileDataAccessor . GetFile ( sourceFileName ) ;
127
128
sourceFileData . CheckFileAccess ( sourceFileName , FileAccess . Read ) ;
128
129
var destFileData = new MockFileData ( sourceFileData ) ;
129
- destFileData . CreationTime = destFileData . LastAccessTime = DateTime . Now ;
130
+ mockFileDataAccessor . AdjustTimes ( destFileData , TimeAdjustments . CreationTime | TimeAdjustments . LastAccessTime ) ;
130
131
mockFileDataAccessor . AddFile ( destFileName , destFileData ) ;
131
132
}
132
133
@@ -153,6 +154,7 @@ private Stream CreateInternal(string path, FileAccess access, FileOptions option
153
154
VerifyDirectoryExists ( path ) ;
154
155
155
156
var mockFileData = new MockFileData ( new byte [ 0 ] ) ;
157
+ mockFileDataAccessor . AdjustTimes ( mockFileData , TimeAdjustments . All ) ;
156
158
mockFileDataAccessor . AddFile ( path , mockFileData ) ;
157
159
return OpenInternal ( path , FileMode . Open , access , options ) ;
158
160
}
@@ -396,8 +398,8 @@ public override void Move(string sourceFileName, string destFileName)
396
398
throw CommonExceptions . ProcessCannotAccessFileInUse ( ) ;
397
399
}
398
400
VerifyDirectoryExists ( destFileName ) ;
399
-
400
- mockFileDataAccessor . AddFile ( destFileName , new MockFileData ( sourceFile ) ) ;
401
+
402
+ mockFileDataAccessor . AddFile ( destFileName , mockFileDataAccessor . AdjustTimes ( new MockFileData ( sourceFile ) , TimeAdjustments . LastAccessTime ) ) ;
401
403
mockFileDataAccessor . RemoveFile ( sourceFileName ) ;
402
404
}
403
405
@@ -443,7 +445,7 @@ public override void Move(string sourceFileName, string destFileName, bool overw
443
445
}
444
446
VerifyDirectoryExists ( destFileName ) ;
445
447
446
- mockFileDataAccessor . AddFile ( destFileName , new MockFileData ( sourceFile ) ) ;
448
+ mockFileDataAccessor . AddFile ( destFileName , mockFileDataAccessor . AdjustTimes ( new MockFileData ( sourceFile ) , TimeAdjustments . LastAccessTime ) ) ;
447
449
mockFileDataAccessor . RemoveFile ( sourceFileName ) ;
448
450
}
449
451
#endif
@@ -501,6 +503,12 @@ private Stream OpenInternal(
501
503
502
504
var mockFileData = mockFileDataAccessor . GetFile ( path ) ;
503
505
mockFileData . CheckFileAccess ( path , access ) ;
506
+ var timeAdjustments = TimeAdjustments . LastAccessTime ;
507
+ if ( access != FileAccess . Read )
508
+ {
509
+ timeAdjustments |= TimeAdjustments . LastWriteTime ;
510
+ }
511
+ mockFileDataAccessor . AdjustTimes ( mockFileData , timeAdjustments ) ;
504
512
505
513
return new MockFileStream ( mockFileDataAccessor , path , mode , access , options ) ;
506
514
}
@@ -540,7 +548,9 @@ public override byte[] ReadAllBytes(string path)
540
548
throw CommonExceptions . FileNotFound ( path ) ;
541
549
}
542
550
mockFileDataAccessor . GetFile ( path ) . CheckFileAccess ( path , FileAccess . Read ) ;
543
- return mockFileDataAccessor . GetFile ( path ) . Contents . ToArray ( ) ;
551
+ var fileData = mockFileDataAccessor . GetFile ( path ) ;
552
+ mockFileDataAccessor . AdjustTimes ( fileData , TimeAdjustments . LastAccessTime ) ;
553
+ return fileData . Contents . ToArray ( ) ;
544
554
}
545
555
546
556
/// <inheritdoc />
@@ -552,10 +562,11 @@ public override string[] ReadAllLines(string path)
552
562
{
553
563
throw CommonExceptions . FileNotFound ( path ) ;
554
564
}
555
- mockFileDataAccessor . GetFile ( path ) . CheckFileAccess ( path , FileAccess . Read ) ;
565
+ var fileData = mockFileDataAccessor . GetFile ( path ) ;
566
+ fileData . CheckFileAccess ( path , FileAccess . Read ) ;
567
+ mockFileDataAccessor . AdjustTimes ( fileData , TimeAdjustments . LastAccessTime ) ;
556
568
557
- return mockFileDataAccessor
558
- . GetFile ( path )
569
+ return fileData
559
570
. TextContents
560
571
. SplitLines ( ) ;
561
572
}
@@ -575,9 +586,11 @@ public override string[] ReadAllLines(string path, Encoding encoding)
575
586
throw CommonExceptions . FileNotFound ( path ) ;
576
587
}
577
588
578
- mockFileDataAccessor . GetFile ( path ) . CheckFileAccess ( path , FileAccess . Read ) ;
589
+ var fileData = mockFileDataAccessor . GetFile ( path ) ;
590
+ fileData . CheckFileAccess ( path , FileAccess . Read ) ;
591
+ mockFileDataAccessor . AdjustTimes ( fileData , TimeAdjustments . LastAccessTime ) ;
579
592
580
- using ( var ms = new MemoryStream ( mockFileDataAccessor . GetFile ( path ) . Contents ) )
593
+ using ( var ms = new MemoryStream ( fileData . Contents ) )
581
594
using ( var sr = new StreamReader ( ms , encoding ) )
582
595
{
583
596
return sr . ReadToEnd ( ) . SplitLines ( ) ;
@@ -675,6 +688,7 @@ public override void SetAccessControl(string path, FileSecurity fileSecurity)
675
688
}
676
689
677
690
var fileData = mockFileDataAccessor . GetFile ( path ) ;
691
+ mockFileDataAccessor . AdjustTimes ( fileData , TimeAdjustments . LastAccessTime ) ;
678
692
fileData . AccessControl = fileSecurity ;
679
693
}
680
694
@@ -698,6 +712,7 @@ public override void SetAttributes(string path, FileAttributes fileAttributes)
698
712
}
699
713
else
700
714
{
715
+ mockFileDataAccessor . AdjustTimes ( possibleFileData , TimeAdjustments . LastAccessTime ) ;
701
716
possibleFileData . Attributes = fileAttributes ;
702
717
}
703
718
}
@@ -786,7 +801,7 @@ public override void WriteAllBytes(string path, byte[] bytes)
786
801
mockFileDataAccessor . PathVerifier . IsLegalAbsoluteOrRelative ( path , "path" ) ;
787
802
VerifyDirectoryExists ( path ) ;
788
803
789
- mockFileDataAccessor . AddFile ( path , new MockFileData ( bytes . ToArray ( ) ) ) ;
804
+ mockFileDataAccessor . AddFile ( path , mockFileDataAccessor . AdjustTimes ( new MockFileData ( bytes . ToArray ( ) ) , TimeAdjustments . All ) ) ;
790
805
}
791
806
792
807
/// <summary>
@@ -1056,7 +1071,7 @@ public override void WriteAllText(string path, string contents, Encoding encodin
1056
1071
VerifyDirectoryExists ( path ) ;
1057
1072
1058
1073
MockFileData data = contents == null ? new MockFileData ( new byte [ 0 ] ) : new MockFileData ( contents , encoding ) ;
1059
- mockFileDataAccessor . AddFile ( path , data ) ;
1074
+ mockFileDataAccessor . AddFile ( path , mockFileDataAccessor . AdjustTimes ( data , TimeAdjustments . All ) ) ;
1060
1075
}
1061
1076
1062
1077
internal static string ReadAllBytes ( byte [ ] contents , Encoding encoding )
@@ -1072,6 +1087,7 @@ private string ReadAllTextInternal(string path, Encoding encoding)
1072
1087
{
1073
1088
var mockFileData = mockFileDataAccessor . GetFile ( path ) ;
1074
1089
mockFileData . CheckFileAccess ( path , FileAccess . Read ) ;
1090
+ mockFileDataAccessor . AdjustTimes ( mockFileData , TimeAdjustments . LastAccessTime ) ;
1075
1091
return ReadAllBytes ( mockFileData . Contents , encoding ) ;
1076
1092
}
1077
1093
0 commit comments