Repair tests (#30)

1. Update sdk in pubspec.yaml
2. Add cast for test working
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f1af3c3..761bfc9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+
+#### 3.0.4
+
+* Fix unit tests
+* Update SDK constraint to 3.
+
 #### 3.0.3
 
 * Update dependency on `package:file`
diff --git a/lib/src/record_replay/manifest.dart b/lib/src/record_replay/manifest.dart
index a6902fd..6bbd2c3 100644
--- a/lib/src/record_replay/manifest.dart
+++ b/lib/src/record_replay/manifest.dart
@@ -46,7 +46,8 @@
   /// If [json] does not represent a valid JSON string (matching the format of
   /// [toJson]), a [FormatException] will be thrown.
   factory Manifest.fromJson(String json) {
-    List<Map<String, dynamic>> decoded = new JsonDecoder().convert(json);
+    List<Map<String, dynamic>> decoded =
+        new JsonDecoder().convert(json).cast<Map<String, dynamic>>();
     Manifest manifest = new Manifest();
     decoded.forEach((Map<String, dynamic> entry) {
       switch (entry['type']) {
diff --git a/lib/src/record_replay/run_manifest_entry.dart b/lib/src/record_replay/run_manifest_entry.dart
index 2f89c77..68dba99 100644
--- a/lib/src/record_replay/run_manifest_entry.dart
+++ b/lib/src/record_replay/run_manifest_entry.dart
@@ -97,7 +97,7 @@
     RunManifestEntry entry = new RunManifestEntry(
       pid: data['pid'],
       basename: data['basename'],
-      command: data['command'],
+      command: data['command']?.cast<String>(),
       workingDirectory: data['workingDirectory'],
       environment: data['environment'],
       includeParentEnvironment: data['includeParentEnvironment'],
diff --git a/pubspec.yaml b/pubspec.yaml
index 479c1dc..c6ea319 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: process
-version: 3.0.3
+version: 3.0.4
 authors:
 - Todd Volkert <tvolkert@google.com>
 - Michael Goderbauer <goderbauer@google.com>
@@ -17,4 +17,4 @@
   test: ^0.12.33
 
 environment:
-  sdk: '>=2.0.0-dev.54.0 <2.0.0'
+  sdk: '>=2.0.0-dev.61 <3.0.0'