Index: sdk/lib/_internal/pub_generated/test/lock_file_test.dart |
diff --git a/sdk/lib/_internal/pub_generated/test/lock_file_test.dart b/sdk/lib/_internal/pub_generated/test/lock_file_test.dart |
index 679bbc3f3fced2f13916113dfbd36cb6e3f890f9..de144c2a5b4f24f59cb0deff98df4441e9766f16 100644 |
--- a/sdk/lib/_internal/pub_generated/test/lock_file_test.dart |
+++ b/sdk/lib/_internal/pub_generated/test/lock_file_test.dart |
@@ -1,48 +1,68 @@ |
+// Copyright (c) 2012, 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 lock_file_test; |
+ |
import 'dart:async'; |
+ |
import 'package:pub_semver/pub_semver.dart'; |
import 'package:unittest/unittest.dart'; |
import 'package:yaml/yaml.dart'; |
+ |
import '../lib/src/lock_file.dart'; |
import '../lib/src/package.dart'; |
import '../lib/src/pubspec.dart'; |
import '../lib/src/source.dart'; |
import '../lib/src/source_registry.dart'; |
import 'test_pub.dart'; |
+ |
class MockSource extends Source { |
final String name = 'mock'; |
+ |
Future<Pubspec> doDescribe(PackageId id) => |
throw new UnsupportedError("Cannot describe mock packages."); |
+ |
Future get(PackageId id, String symlink) => |
throw new UnsupportedError("Cannot get a mock package."); |
+ |
Future<String> getDirectory(PackageId id) => |
throw new UnsupportedError("Cannot get the directory for mock packages."); |
+ |
dynamic parseDescription(String filePath, String description, |
{bool fromLockFile: false}) { |
if (!description.endsWith(' desc')) throw new FormatException(); |
return description; |
} |
+ |
bool descriptionsEqual(description1, description2) => |
description1 == description2; |
+ |
String packageName(String description) { |
+ // Strip off ' desc'. |
return description.substring(0, description.length - 5); |
} |
} |
+ |
main() { |
initConfig(); |
+ |
var sources = new SourceRegistry(); |
var mockSource = new MockSource(); |
sources.register(mockSource); |
+ |
group('LockFile', () { |
group('parse()', () { |
test('returns an empty lockfile if the contents are empty', () { |
var lockFile = new LockFile.parse('', sources); |
expect(lockFile.packages.length, equals(0)); |
}); |
+ |
test('returns an empty lockfile if the contents are whitespace', () { |
var lockFile = new LockFile.parse(' \t\n ', sources); |
expect(lockFile.packages.length, equals(0)); |
}); |
+ |
test('parses a series of package descriptions', () { |
var lockFile = new LockFile.parse(''' |
packages: |
@@ -55,18 +75,22 @@ packages: |
source: mock |
description: foo desc |
''', sources); |
+ |
expect(lockFile.packages.length, equals(2)); |
+ |
var bar = lockFile.packages['bar']; |
expect(bar.name, equals('bar')); |
expect(bar.version, equals(new Version(1, 2, 3))); |
expect(bar.source, equals(mockSource.name)); |
expect(bar.description, equals('bar desc')); |
+ |
var foo = lockFile.packages['foo']; |
expect(foo.name, equals('foo')); |
expect(foo.version, equals(new Version(2, 3, 4))); |
expect(foo.source, equals(mockSource.name)); |
expect(foo.description, equals('foo desc')); |
}); |
+ |
test("allows an unknown source", () { |
var lockFile = new LockFile.parse(''' |
packages: |
@@ -78,12 +102,14 @@ packages: |
var foo = lockFile.packages['foo']; |
expect(foo.source, equals('bad')); |
}); |
+ |
test("allows an empty dependency map", () { |
var lockFile = new LockFile.parse(''' |
packages: |
''', sources); |
expect(lockFile.packages, isEmpty); |
}); |
+ |
test("throws if the top level is not a map", () { |
expect(() { |
new LockFile.parse(''' |
@@ -91,6 +117,7 @@ not a map |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("throws if the contents of 'packages' is not a map", () { |
expect(() { |
new LockFile.parse(''' |
@@ -98,6 +125,7 @@ packages: not a map |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("throws if the version is missing", () { |
expect(() { |
new LockFile.parse(''' |
@@ -108,6 +136,7 @@ packages: |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("throws if the version is invalid", () { |
expect(() { |
new LockFile.parse(''' |
@@ -119,6 +148,7 @@ packages: |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("throws if the source is missing", () { |
expect(() { |
new LockFile.parse(''' |
@@ -129,6 +159,7 @@ packages: |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("throws if the description is missing", () { |
expect(() { |
new LockFile.parse(''' |
@@ -139,6 +170,7 @@ packages: |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("throws if the description is invalid", () { |
expect(() { |
new LockFile.parse(''' |
@@ -150,6 +182,7 @@ packages: |
''', sources); |
}, throwsFormatException); |
}); |
+ |
test("ignores extra stuff in file", () { |
var lockFile = new LockFile.parse(''' |
extra: |
@@ -163,16 +196,19 @@ packages: |
''', sources); |
}); |
}); |
+ |
group('serialize()', () { |
var lockfile; |
setUp(() { |
lockfile = new LockFile.empty(); |
}); |
+ |
test('dumps the lockfile to YAML', () { |
lockfile.packages['foo'] = |
new PackageId('foo', mockSource.name, new Version.parse('1.2.3'), 'foo desc'); |
lockfile.packages['bar'] = |
new PackageId('bar', mockSource.name, new Version.parse('3.2.1'), 'bar desc'); |
+ |
expect(loadYaml(lockfile.serialize(null, sources)), equals({ |
'packages': { |
'foo': { |