Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'package:analyzer/src/dart/analysis/byte_store.dart'; | 5 import 'package:analyzer/src/dart/analysis/byte_store.dart'; |
| 6 import 'package:test/test.dart'; | 6 import 'package:test/test.dart'; |
| 7 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 7 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 8 import 'package:typed_mock/typed_mock.dart'; | 8 import 'package:typed_mock/typed_mock.dart'; |
| 9 | 9 |
| 10 main() { | 10 main() { |
| 11 defineReflectiveSuite(() { | 11 defineReflectiveSuite(() { |
| 12 defineReflectiveTests(MemoryCachingByteStoreTest); | 12 defineReflectiveTests(MemoryCachingByteStoreTest); |
| 13 defineReflectiveTests(NullByteStoreTest); | |
| 13 }); | 14 }); |
| 14 } | 15 } |
| 15 | 16 |
| 17 List<int> _b(int length) { | |
|
Brian Wilkerson
2017/01/26 14:51:18
This is only used in one place. Please consider in
| |
| 18 return new List<int>(length); | |
| 19 } | |
| 20 | |
| 16 @reflectiveTest | 21 @reflectiveTest |
| 17 class MemoryCachingByteStoreTest { | 22 class MemoryCachingByteStoreTest { |
| 18 test_get_notFound_evict() { | 23 test_get_notFound_evict() { |
| 19 var store = new _TestByteStore(); | 24 var store = new _TestByteStore(); |
| 20 var cachingStore = new MemoryCachingByteStore(store, 100); | 25 var cachingStore = new MemoryCachingByteStore(store, 100); |
| 21 | 26 |
| 22 // Request '1'. Nothing found. | 27 // Request '1'. Nothing found. |
| 23 cachingStore.get('1'); | 28 cachingStore.get('1'); |
| 24 | 29 |
| 25 // Add enough data to the store to force an eviction. | 30 // Add enough data to the store to force an eviction. |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 expect(cachingStore.get('1'), hasLength(10)); | 97 expect(cachingStore.get('1'), hasLength(10)); |
| 93 expect(cachingStore.get('2'), hasLength(80)); | 98 expect(cachingStore.get('2'), hasLength(80)); |
| 94 | 99 |
| 95 // 10 + 80 + 30 > 100 | 100 // 10 + 80 + 30 > 100 |
| 96 // So, '1' and '2' are evicted. | 101 // So, '1' and '2' are evicted. |
| 97 cachingStore.put('3', _b(30)); | 102 cachingStore.put('3', _b(30)); |
| 98 expect(cachingStore.get('1'), isNull); | 103 expect(cachingStore.get('1'), isNull); |
| 99 expect(cachingStore.get('2'), isNull); | 104 expect(cachingStore.get('2'), isNull); |
| 100 expect(cachingStore.get('3'), hasLength(30)); | 105 expect(cachingStore.get('3'), hasLength(30)); |
| 101 } | 106 } |
| 107 } | |
| 102 | 108 |
| 103 static List<int> _b(int length) { | 109 @reflectiveTest |
| 104 return new List<int>(length); | 110 class NullByteStoreTest { |
| 111 test_get() { | |
| 112 var store = new NullByteStore(); | |
| 113 | |
| 114 expect(store.get('1'), isNull); | |
| 115 | |
| 116 store.put('1', _b(10)); | |
| 117 expect(store.get('1'), isNull); | |
| 105 } | 118 } |
| 106 } | 119 } |
| 107 | 120 |
| 108 class _TestByteStore extends TypedMock implements ByteStore {} | 121 class _TestByteStore extends TypedMock implements ByteStore {} |
| OLD | NEW |