anchor.diff:        );
   
         await cache.updateAll(<DevelopmentArtifact>{
  -        null,
  +        DevelopmentArtifact.universal,
         });
  -      verifyNever(artifact1.update(any, any, any, any));
  -      verify(artifact2.update(any, any, any, any));
  +      expect(artifact1.didUpdate, false);
  +      expect(artifact2.didUpdate, true);
       });
   
       testWithoutContext("getter dyLdLibEntry concatenates the output of each artifact's dyLdLibEntry getter", () async {
  -      final IosUsbArtifacts artifact1 = MockIosUsbArtifacts();
  -      final IosUsbArtifacts artifact2 = MockIosUsbArtifacts();
  -      final IosUsbArtifacts artifact3 = MockIosUsbArtifacts();
  -      when(artifact1.environment)
  -          .thenReturn(<String, String>{
  -            'DYLD_LIBRARY_PATH': '/path/to/alpha:/path/to/beta',
  -          });
  -      when(artifact2.environment)
  -          .thenReturn(<String, String>{
  -            'DYLD_LIBRARY_PATH': '/path/to/gamma:/path/to/delta:/path/to/epsilon',
  -          });
  -      when(artifact3.environment)
  -          .thenReturn(<String, String>{
  -            'DYLD_LIBRARY_PATH': '',
  -          });
  +      final FakeIosUsbArtifacts artifact1 = FakeIosUsbArtifacts();
  +      final FakeIosUsbArtifacts artifact2 = FakeIosUsbArtifacts();
  +      final FakeIosUsbArtifacts artifact3 = FakeIosUsbArtifacts();
  +      artifact1.environment = <String, String>{
  +        'DYLD_LIBRARY_PATH': '/path/to/alpha:/path/to/beta',
  +      };
  +      artifact2.environment = <String, String>{
  +        'DYLD_LIBRARY_PATH': '/path/to/gamma:/path/to/delta:/path/to/epsilon',
  +      };
  +      artifact3.environment = <String, String>{
  +        'DYLD_LIBRARY_PATH': '',
  +      };
         final Cache cache = Cache.test(
           artifacts: <CachedArtifact>[artifact1, artifact2, artifact3],
           processManager: FakeProcessManager.any(),
  
positive.code:     });
  
      testWithoutContext('failed storage.googleapis.com download shows China warning', () async {
        final CachedArtifact artifact1 = MockCachedArtifact();
        final CachedArtifact artifact2 = MockCachedArtifact();
        when(artifact1.isUpToDate(any)).thenAnswer((Invocation _) => Future<bool>.value(false));
        when(artifact2.isUpToDate(any)).thenAnswer((Invocation _) => Future<bool>.value(false));
        final InternetAddress address = (await InternetAddress.lookup('storage.googleapis.com')).first;
        when(artifact1.update(any, any, any, any)).thenThrow(SocketException(
          'Connection reset by peer',
          address: address,
        ));
        final BufferLogger logger = BufferLogger.test();
        final Cache cache = Cache.test(
          artifacts: <CachedArtifact>[artifact1, artifact2],
  
negative.code:         logger: logger,
        );
        await expectLater(
          () => cache.updateAll(<DevelopmentArtifact>{DevelopmentArtifact.universal}),
          throwsException,
        );
        expect(artifact1.didUpdate, true);
        // Don't continue when retrieval fails.
        expect(artifact2.didUpdate, false);
        expect(
          logger.errorText,
          contains('https://flutter.dev/community/china'),
  