Index: pkg/analysis_server/test/services/index/store/codec_test.dart |
diff --git a/pkg/analysis_server/test/services/index/store/codec_test.dart b/pkg/analysis_server/test/services/index/store/codec_test.dart |
deleted file mode 100644 |
index e7914b893f08289e18b9371e8b818483505d2bee..0000000000000000000000000000000000000000 |
--- a/pkg/analysis_server/test/services/index/store/codec_test.dart |
+++ /dev/null |
@@ -1,408 +0,0 @@ |
-// Copyright (c) 2014, 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. |
- |
-library test.services.src.index.store.codec; |
- |
-import 'package:analysis_server/src/provisional/index/index_core.dart'; |
-import 'package:analysis_server/src/services/index/index.dart'; |
-import 'package:analysis_server/src/services/index/indexable_element.dart'; |
-import 'package:analysis_server/src/services/index/store/codec.dart'; |
-import 'package:analyzer/dart/element/element.dart'; |
-import 'package:analyzer/src/generated/engine.dart'; |
-import 'package:test_reflective_loader/test_reflective_loader.dart'; |
-import 'package:unittest/unittest.dart'; |
- |
-import '../../../abstract_single_unit.dart'; |
-import '../../../mocks.dart'; |
-import '../../../utils.dart'; |
- |
-main() { |
- initializeTestEnvironment(); |
- defineReflectiveTests(_ContextCodecTest); |
- defineReflectiveTests(_ElementCodecTest); |
- defineReflectiveTests(_RelationshipCodecTest); |
- defineReflectiveTests(_StringCodecTest); |
-} |
- |
-@reflectiveTest |
-class _ContextCodecTest { |
- ContextCodec codec = new ContextCodec(); |
- |
- void test_encode_decode() { |
- AnalysisContext contextA = new MockAnalysisContext('contextA'); |
- AnalysisContext contextB = new MockAnalysisContext('contextB'); |
- int idA = codec.encode(contextA); |
- int idB = codec.encode(contextB); |
- expect(idA, codec.encode(contextA)); |
- expect(idB, codec.encode(contextB)); |
- expect(codec.decode(idA), contextA); |
- expect(codec.decode(idB), contextB); |
- } |
- |
- void test_remove() { |
- // encode |
- { |
- AnalysisContext context = new MockAnalysisContext('context'); |
- // encode |
- int id = codec.encode(context); |
- expect(id, 0); |
- expect(codec.decode(id), context); |
- // remove |
- codec.remove(context); |
- expect(codec.decode(id), isNull); |
- } |
- // encode again |
- { |
- AnalysisContext context = new MockAnalysisContext('context'); |
- // encode |
- int id = codec.encode(context); |
- expect(id, 1); |
- expect(codec.decode(id), context); |
- } |
- } |
-} |
- |
-@reflectiveTest |
-class _ElementCodecTest extends AbstractSingleUnitTest { |
- ElementCodec codec; |
- AnalysisContext context = new MockAnalysisContext('context'); |
- StringCodec stringCodec = new StringCodec(); |
- |
- void setUp() { |
- super.setUp(); |
- codec = new ElementCodec(stringCodec); |
- } |
- |
- void test_encode_CompilationUnitElement() { |
- addSource( |
- '/my_part.dart', |
- ''' |
-part of my_lib; |
-'''); |
- resolveTestUnit(''' |
-library my_lib; |
-part 'my_part.dart'; |
-'''); |
- // defining unit |
- { |
- Element element = testLibraryElement.definingCompilationUnit; |
- expect(element.source.fullName, '/test.dart'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, -1); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- // part |
- { |
- Element element = testLibraryElement.parts[0]; |
- expect(element.source.fullName, '/my_part.dart'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, -1); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- } |
- |
- void test_encode_ConstructorElement_default_real() { |
- resolveTestUnit(''' |
-class A { |
- A(); |
-} |
-'''); |
- ClassElement classA = findElement('A'); |
- ConstructorElement element = classA.constructors[0]; |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, classA.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_ConstructorElement_default_synthetic() { |
- resolveTestUnit(''' |
-class A { |
-} |
-'''); |
- ClassElement classA = findElement('A'); |
- ConstructorElement element = classA.constructors[0]; |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, classA.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_ConstructorElement_named_real() { |
- resolveTestUnit(''' |
-class A { |
- A.aaa(); |
- A.bbb(); |
-} |
-'''); |
- ClassElement classA = findElement('A'); |
- // A.aaa() |
- { |
- ConstructorElement element = classA.getNamedConstructor('aaa'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, classA.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- // A.bbb() |
- { |
- ConstructorElement element = classA.getNamedConstructor('bbb'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, classA.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- } |
- |
- void test_encode_ConstructorElement_named_synthetic() { |
- resolveTestUnit(''' |
-class A { |
- A.aaa(); |
- A.bbb(); |
-} |
-class M {} |
-class X = A with M; |
-'''); |
- ClassElement classX = findElement('X'); |
- // X.aaa() |
- { |
- ConstructorElement element = classX.getNamedConstructor('aaa'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, classX.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- // X.bbb() |
- { |
- ConstructorElement element = classX.getNamedConstructor('bbb'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, classX.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- } |
- |
- void test_encode_getter_real() { |
- resolveTestUnit(''' |
-class A { |
- int get test => 42; |
-} |
-'''); |
- PropertyAccessorElement element = findElement('test', ElementKind.GETTER); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, element.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_getter_synthetic() { |
- resolveTestUnit(''' |
-class A { |
- int test; |
-} |
-'''); |
- FieldElement field = findElement('test', ElementKind.FIELD); |
- PropertyAccessorElement element = field.getter; |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, element.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_IndexableName() { |
- IndexableName indexable = new IndexableName('test'); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, -1); |
- expect(id2, isNonNegative); |
- expect(id3, IndexableNameKind.INSTANCE.index); |
- expect(codec.decode(context, id1, id2, id3), indexable); |
- } |
- |
- void test_encode_LibraryElement() { |
- resolveTestUnit(''' |
-class A { |
- test() {} |
-} |
-'''); |
- Element element = testLibraryElement; |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, -1); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_MethodElement() { |
- resolveTestUnit(''' |
-class A { |
- test() {} |
-} |
-'''); |
- Element element = findElement('test'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, element.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_nullLibraryElement() { |
- resolveTestUnit(''' |
-test() {} |
-'''); |
- Element element = findElement('test'); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- context.setContents(testSource, ''); |
- IndexableObject object2 = codec.decode(context, id1, id2, id3); |
- expect(object2, isNull); |
- } |
- |
- void test_encode_setter_real() { |
- resolveTestUnit(''' |
-class A { |
- void set test(x) {} |
-} |
-'''); |
- PropertyAccessorElement element = findElement('test=', ElementKind.SETTER); |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, element.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encode_setter_synthetic() { |
- resolveTestUnit(''' |
-class A { |
- int test; |
-} |
-'''); |
- FieldElement field = findElement('test', ElementKind.FIELD); |
- PropertyAccessorElement element = field.setter; |
- IndexableObject indexable = new IndexableElement(element); |
- int id1 = codec.encode1(indexable); |
- int id2 = codec.encode2(indexable); |
- int id3 = codec.encode3(indexable); |
- expect(id1, isNonNegative); |
- expect(id2, element.nameOffset); |
- expect(id3, IndexableElementKind.forElement(element).index); |
- validateDecode(id1, id2, id3, element); |
- } |
- |
- void test_encodeHash_notLocal() { |
- resolveTestUnit(''' |
-class A { |
- void mainA() { |
- int foo; // A |
- } |
- void mainB() { |
- int foo; // B |
- int bar; |
- } |
-} |
-'''); |
- MethodElement mainA = findElement('mainA'); |
- MethodElement mainB = findElement('mainB'); |
- Element fooA = mainA.localVariables[0]; |
- Element fooB = mainB.localVariables[0]; |
- Element bar = mainB.localVariables[1]; |
- int id_fooA = codec.encodeHash(new IndexableElement(fooA)); |
- int id_fooB = codec.encodeHash(new IndexableElement(fooB)); |
- int id_bar = codec.encodeHash(new IndexableElement(bar)); |
- expect(id_fooA == id_fooB, isTrue); |
- expect(id_fooA == id_bar, isFalse); |
- } |
- |
- void validateDecode(int id1, int id2, int id3, Element element) { |
- IndexableObject object2 = codec.decode(context, id1, id2, id3); |
- expect(object2, new isInstanceOf<IndexableElement>()); |
- Element element2 = (object2 as IndexableElement).element; |
- expect(element2, element); |
- } |
-} |
- |
-@reflectiveTest |
-class _RelationshipCodecTest { |
- StringCodec stringCodec = new StringCodec(); |
- RelationshipCodec codec; |
- |
- void setUp() { |
- codec = new RelationshipCodec(stringCodec); |
- } |
- |
- void test_all() { |
- RelationshipImpl relationship = |
- RelationshipImpl.getRelationship('my-relationship'); |
- int id = codec.encode(relationship); |
- expect(codec.decode(id), relationship); |
- } |
-} |
- |
-@reflectiveTest |
-class _StringCodecTest { |
- StringCodec codec = new StringCodec(); |
- |
- void test_all() { |
- int idA = codec.encode('aaa'); |
- int idB = codec.encode('bbb'); |
- expect(codec.decode(idA), 'aaa'); |
- expect(codec.decode(idB), 'bbb'); |
- } |
-} |