| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #library('lock_file_test'); | 5 #library('lock_file_test'); |
| 6 | 6 |
| 7 #import('../../../pkg/unittest/unittest.dart'); | 7 #import('../../../pkg/unittest/unittest.dart'); |
| 8 #import('../../pub/lock_file.dart'); | 8 #import('../../pub/lock_file.dart'); |
| 9 #import('../../pub/package.dart'); | 9 #import('../../pub/package.dart'); |
| 10 #import('../../pub/source.dart'); | 10 #import('../../pub/source.dart'); |
| 11 #import('../../pub/source_registry.dart'); | 11 #import('../../pub/source_registry.dart'); |
| 12 #import('../../pub/utils.dart'); | 12 #import('../../pub/utils.dart'); |
| 13 #import('../../pub/version.dart'); | 13 #import('../../pub/version.dart'); |
| 14 #import('../../pub/yaml/yaml.dart'); | 14 #import('../../pub/yaml/yaml.dart'); |
| 15 | 15 |
| 16 class MockSource extends Source { | 16 class MockSource extends Source { |
| 17 final String name = 'mock'; | 17 final String name = 'mock'; |
| 18 final bool shouldCache = false; | 18 final bool shouldCache = false; |
| 19 | 19 |
| 20 void validateDescription(String description, [bool fromLockFile=false]) { | 20 void validateDescription(String description, [bool fromLockFile=false]) { |
| 21 description.endsWith(' desc'); | 21 if (!description.endsWith(' desc')) throw new FormatException(); |
| 22 } | 22 } |
| 23 | 23 |
| 24 String packageName(String description) { | 24 String packageName(String description) { |
| 25 // Strip off ' desc'. | 25 // Strip off ' desc'. |
| 26 return description.substring(0, description.length - 5); | 26 return description.substring(0, description.length - 5); |
| 27 } | 27 } |
| 28 } | 28 } |
| 29 | 29 |
| 30 main() { | 30 main() { |
| 31 var sources = new SourceRegistry(); | 31 var sources = new SourceRegistry(); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 new LockFile.parse(''' | 134 new LockFile.parse(''' |
| 135 packages: | 135 packages: |
| 136 foo: | 136 foo: |
| 137 version: 1.2.3 | 137 version: 1.2.3 |
| 138 source: mock | 138 source: mock |
| 139 description: foo desc is bad | 139 description: foo desc is bad |
| 140 ''', sources); | 140 ''', sources); |
| 141 }, throwsFormatException); | 141 }, throwsFormatException); |
| 142 }); | 142 }); |
| 143 | 143 |
| 144 test("throws if the source name doesn't match the given name", () { | |
| 145 expect(() { | |
| 146 new LockFile.parse(''' | |
| 147 packages: | |
| 148 foo: | |
| 149 version: 1.2.3 | |
| 150 source: mock | |
| 151 description: notfoo desc | |
| 152 ''', sources); | |
| 153 }, throwsFormatException); | |
| 154 }); | |
| 155 | |
| 156 test("ignores extra stuff in file", () { | 144 test("ignores extra stuff in file", () { |
| 157 var lockFile = new LockFile.parse(''' | 145 var lockFile = new LockFile.parse(''' |
| 158 extra: | 146 extra: |
| 159 some: stuff | 147 some: stuff |
| 160 packages: | 148 packages: |
| 161 foo: | 149 foo: |
| 162 bonus: not used | 150 bonus: not used |
| 163 version: 1.2.3 | 151 version: 1.2.3 |
| 164 source: mock | 152 source: mock |
| 165 description: foo desc | 153 description: foo desc |
| 166 ''', sources); | 154 ''', sources); |
| 167 }); | 155 }); |
| 168 }); | 156 }); |
| 169 | 157 |
| 170 group('serialize()', () { | 158 group('serialize()', () { |
| 171 test('dumps the lockfile to YAML', () { | 159 test('dumps the lockfile to YAML', () { |
| 172 var lockfile = new LockFile.empty(); | 160 var lockfile = new LockFile.empty(); |
| 173 lockfile.packages['foo'] = | 161 lockfile.packages['foo'] = new PackageId( |
| 174 new PackageId(mockSource, new Version.parse('1.2.3'), 'foo desc'); | 162 'foo', mockSource, new Version.parse('1.2.3'), 'foo desc'); |
| 175 lockfile.packages['bar'] = | 163 lockfile.packages['bar'] = new PackageId( |
| 176 new PackageId(mockSource, new Version.parse('3.2.1'), 'bar desc'); | 164 'foo', mockSource, new Version.parse('3.2.1'), 'bar desc'); |
| 177 | 165 |
| 178 expect(loadYaml(lockfile.serialize()), equals({ | 166 expect(loadYaml(lockfile.serialize()), equals({ |
| 179 'packages': { | 167 'packages': { |
| 180 'foo': { | 168 'foo': { |
| 181 'version': '1.2.3', | 169 'version': '1.2.3', |
| 182 'source': 'mock', | 170 'source': 'mock', |
| 183 'description': 'foo desc' | 171 'description': 'foo desc' |
| 184 }, | 172 }, |
| 185 'bar': { | 173 'bar': { |
| 186 'version': '3.2.1', | 174 'version': '3.2.1', |
| 187 'source': 'mock', | 175 'source': 'mock', |
| 188 'description': 'bar desc' | 176 'description': 'bar desc' |
| 189 } | 177 } |
| 190 } | 178 } |
| 191 })); | 179 })); |
| 192 }); | 180 }); |
| 193 }); | 181 }); |
| 194 }); | 182 }); |
| 195 } | 183 } |
| OLD | NEW |