@@ -51,6 +51,36 @@ void main() {
51
51
});
52
52
53
53
group ('Cache' , () {
54
+ final MockCache mockCache = MockCache ();
55
+ final MemoryFileSystem fs = MemoryFileSystem ();
56
+
57
+ testUsingContext ('Gradle wrapper should not be up to date, if some cached artifact is not available' , () {
58
+ final GradleWrapper gradleWrapper = GradleWrapper (mockCache);
59
+ final Directory directory = fs.directory ('/Applications/flutter/bin/cache' );
60
+ directory.createSync (recursive: true );
61
+ fs.file (fs.path.join (directory.path, 'artifacts' , 'gradle_wrapper' , 'gradle' , 'wrapper' , 'gradle-wrapper.jar' )).createSync (recursive: true );
62
+ when (mockCache.getCacheDir (fs.path.join ('artifacts' , 'gradle_wrapper' ))).thenReturn (fs.directory (fs.path.join (directory.path, 'artifacts' , 'gradle_wrapper' )));
63
+ expect (gradleWrapper.isUpToDateInner (), false );
64
+ }, overrides: < Type , Generator > {
65
+ Cache : ()=> mockCache,
66
+ FileSystem : () => fs
67
+ });
68
+
69
+ testUsingContext ('Gradle wrapper should be up to date, only if all cached artifact are available' , () {
70
+ final GradleWrapper gradleWrapper = GradleWrapper (mockCache);
71
+ final Directory directory = fs.directory ('/Applications/flutter/bin/cache' );
72
+ directory.createSync (recursive: true );
73
+ fs.file (fs.path.join (directory.path, 'artifacts' , 'gradle_wrapper' , 'gradle' , 'wrapper' , 'gradle-wrapper.jar' )).createSync (recursive: true );
74
+ fs.file (fs.path.join (directory.path, 'artifacts' , 'gradle_wrapper' , 'gradlew' )).createSync (recursive: true );
75
+ fs.file (fs.path.join (directory.path, 'artifacts' , 'gradle_wrapper' , 'gradlew.bat' )).createSync (recursive: true );
76
+
77
+ when (mockCache.getCacheDir (fs.path.join ('artifacts' , 'gradle_wrapper' ))).thenReturn (fs.directory (fs.path.join (directory.path, 'artifacts' , 'gradle_wrapper' )));
78
+ expect (gradleWrapper.isUpToDateInner (), true );
79
+ }, overrides: < Type , Generator > {
80
+ Cache : ()=> mockCache,
81
+ FileSystem : () => fs
82
+ });
83
+
54
84
test ('should not be up to date, if some cached artifact is not' , () {
55
85
final CachedArtifact artifact1 = MockCachedArtifact ();
56
86
final CachedArtifact artifact2 = MockCachedArtifact ();
@@ -132,3 +162,4 @@ class MockFile extends Mock implements File {
132
162
class MockRandomAccessFile extends Mock implements RandomAccessFile {}
133
163
class MockCachedArtifact extends Mock implements CachedArtifact {}
134
164
class MockInternetAddress extends Mock implements InternetAddress {}
165
+ class MockCache extends Mock implements Cache {}
0 commit comments