| // Copyright (c) 2020, 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:analysis_server/lsp_protocol/protocol.dart'; |
| import 'package:test/test.dart'; |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| |
| void main() { |
| defineReflectiveSuite(() { |
| defineReflectiveTests(GeneratedClassesTest); |
| }); |
| } |
| |
| @reflectiveTest |
| class GeneratedClassesTest { |
| void test_generatedClasses_equality() { |
| var a = TextDocumentIdentifier(uri: Uri.file('/a')); |
| var b = TextDocumentIdentifier(uri: Uri.file('/a')); |
| |
| expect(a, equals(b)); |
| expect(a.hashCode, equals(b.hashCode)); |
| } |
| |
| void test_generatedClasses_equality_aliasedListFields() { |
| var a = TextDocumentRegistrationOptions( |
| documentSelector: [ |
| TextDocumentFilterScheme(language: 'dart', scheme: 'file'), |
| ], |
| ); |
| var b = TextDocumentRegistrationOptions( |
| documentSelector: [ |
| TextDocumentFilterScheme(language: 'dart', scheme: 'file'), |
| ], |
| ); |
| |
| expect(a, equals(b)); |
| expect(a.hashCode, equals(b.hashCode)); |
| } |
| |
| void test_generatedClasses_equality_listField() { |
| var a = ClientCodeActionKindOptions(valueSet: [CodeActionKind.QuickFix]); |
| var b = ClientCodeActionKindOptions(valueSet: [CodeActionKind.QuickFix]); |
| |
| expect(a, equals(b)); |
| expect(a.hashCode, equals(b.hashCode)); |
| } |
| |
| void test_generatedClasses_equality_mapField() { |
| var a = WorkspaceEdit( |
| changes: { |
| Uri.file('/a'): [ |
| TextEdit( |
| range: Range( |
| start: Position(line: 0, character: 0), |
| end: Position(line: 0, character: 0), |
| ), |
| newText: 'a', |
| ), |
| ], |
| }, |
| ); |
| var b = WorkspaceEdit( |
| changes: { |
| Uri.file('/a'): [ |
| TextEdit( |
| range: Range( |
| start: Position(line: 0, character: 0), |
| end: Position(line: 0, character: 0), |
| ), |
| newText: 'a', |
| ), |
| ], |
| }, |
| ); |
| |
| expect(a, equals(b)); |
| expect(a.hashCode, equals(b.hashCode)); |
| } |
| |
| void test_generatedClasses_equality_subclasses() { |
| var a = TextDocumentRegistrationOptions( |
| documentSelector: [ |
| TextDocumentFilterScheme(language: 'dart', scheme: 'file'), |
| ], |
| ); |
| var b = TextDocumentSaveRegistrationOptions( |
| includeText: true, |
| documentSelector: [ |
| TextDocumentFilterScheme(language: 'dart', scheme: 'file'), |
| ], |
| ); |
| |
| expect(a, isNot(equals(b))); |
| expect(b, isNot(equals(a))); |
| } |
| |
| void test_generatedClasses_equality_unionFields() { |
| var a = SignatureInformation( |
| label: 'a', |
| documentation: Either2<MarkupContent, String>.t2('a'), |
| parameters: [], |
| ); |
| var b = SignatureInformation( |
| label: 'a', |
| documentation: Either2<MarkupContent, String>.t2('a'), |
| parameters: [], |
| ); |
| |
| expect(a, equals(b)); |
| expect(a.hashCode, equals(b.hashCode)); |
| } |
| |
| void test_generatedClasses_equality_unionsOfLists() { |
| var a = Either2<List<String>, List<int>>.t1(['test']); |
| var b = Either2<List<String>, List<int>>.t1(['test']); |
| |
| expect(a, equals(b)); |
| expect(a.hashCode, equals(b.hashCode)); |
| } |
| |
| void test_generatedClasses_flagsEnum_combined() { |
| var combined = FileExistence.combine([.New, .Existing]); |
| |
| expect(combined.toJson(), 3); |
| expect(combined.hasFlag(.New), isTrue); |
| expect(combined.hasFlag(.Existing), isTrue); |
| expect(combined.hasFlag(FileExistence(64)), isFalse); |
| } |
| |
| void test_generatedClasses_flagsEnum_notCombined() { |
| expect(FileExistence.New.hasFlag(.New), isTrue); |
| expect(FileExistence.New.hasFlag(.Existing), isFalse); |
| } |
| |
| void test_interactiveForms_deserialize_formFieldsIntoSubclasses() { |
| var stringField = FormField.fromJson({ |
| 'id': 'a', |
| 'type': {'kind': 'string'}, |
| 'description': '', |
| 'required': true, |
| }); |
| expect(stringField.type, isA<FormFieldTypeString>()); |
| |
| var boolField = FormField.fromJson({ |
| 'id': 'b', |
| 'type': {'kind': 'bool'}, |
| 'description': '', |
| 'required': false, |
| }); |
| expect(boolField.type, isA<FormFieldTypeBool>()); |
| } |
| } |