| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:analyzer_plugin/protocol/protocol_generated.dart'; |
| import 'package:analyzer_plugin/utilities/subscriptions/subscription_manager.dart'; |
| import 'package:test/test.dart'; |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| |
| void main() { |
| defineReflectiveTests(SubscriptionManagerTest); |
| } |
| |
| @reflectiveTest |
| class SubscriptionManagerTest { |
| SubscriptionManager manager = SubscriptionManager(); |
| |
| String fooPath = '/project/lib/foo.dart'; |
| String barPath = '/project/lib/bar.dart'; |
| String bazPath = '/project/lib/baz.dart'; |
| |
| void test_hasSubscriptionForFile_differentSubscription() { |
| manager.setSubscriptions({ |
| AnalysisService.NAVIGATION: [barPath] |
| }); |
| expect(manager.hasSubscriptionForFile(fooPath, AnalysisService.HIGHLIGHTS), |
| isFalse); |
| } |
| |
| void test_hasSubscriptionForFile_hasSubscription() { |
| manager.setSubscriptions({ |
| AnalysisService.HIGHLIGHTS: [fooPath] |
| }); |
| expect(manager.hasSubscriptionForFile(fooPath, AnalysisService.HIGHLIGHTS), |
| isTrue); |
| } |
| |
| void test_hasSubscriptionForFile_noSubscription() { |
| expect(manager.hasSubscriptionForFile(fooPath, AnalysisService.HIGHLIGHTS), |
| isFalse); |
| } |
| |
| void test_servicesForFile() { |
| expect(manager.servicesForFile('/project/lib/test.dart'), hasLength(0)); |
| } |
| |
| void test_setSubscriptions() { |
| // |
| // Set the initial set of subscriptions. |
| // |
| var newSubscriptions = manager.setSubscriptions({ |
| AnalysisService.HIGHLIGHTS: [fooPath, barPath], |
| AnalysisService.NAVIGATION: [fooPath] |
| }); |
| |
| expect( |
| manager.servicesForFile(fooPath), |
| unorderedEquals( |
| [AnalysisService.HIGHLIGHTS, AnalysisService.NAVIGATION])); |
| expect(manager.servicesForFile(barPath), |
| unorderedEquals([AnalysisService.HIGHLIGHTS])); |
| expect(manager.servicesForFile(bazPath), hasLength(0)); |
| |
| expect( |
| newSubscriptions[fooPath], |
| unorderedEquals( |
| [AnalysisService.HIGHLIGHTS, AnalysisService.NAVIGATION])); |
| expect(newSubscriptions[barPath], |
| unorderedEquals([AnalysisService.HIGHLIGHTS])); |
| // |
| // Update the subscriptions. |
| // |
| newSubscriptions = manager.setSubscriptions({ |
| AnalysisService.HIGHLIGHTS: [bazPath, barPath], |
| AnalysisService.NAVIGATION: [barPath] |
| }); |
| |
| expect(manager.servicesForFile(fooPath), hasLength(0)); |
| expect( |
| manager.servicesForFile(barPath), |
| unorderedEquals( |
| [AnalysisService.HIGHLIGHTS, AnalysisService.NAVIGATION])); |
| expect(manager.servicesForFile(bazPath), |
| unorderedEquals([AnalysisService.HIGHLIGHTS])); |
| |
| expect(newSubscriptions[barPath], |
| unorderedEquals([AnalysisService.NAVIGATION])); |
| expect(newSubscriptions[bazPath], |
| unorderedEquals([AnalysisService.HIGHLIGHTS])); |
| } |
| } |