From 75b8efa2f844eb9223a5bc5067c9cd9f7fc0334e Mon Sep 17 00:00:00 2001 From: joris hermans Date: Sun, 21 Dec 2014 12:29:12 +0100 Subject: [PATCH] add tests for export with params --- lib/cargo_base.dart | 1 + lib/src/client/indexdb_impl.dart | 2 +- lib/src/shared/cargo_utils.dart | 12 +++++++++--- test/client/cargo_tests.dart | 17 +++++++++++++++-- test/logic/export_tests.dart | 4 ++-- test/server/utils_test.dart | 12 ++++++------ 6 files changed, 34 insertions(+), 14 deletions(-) diff --git a/lib/cargo_base.dart b/lib/cargo_base.dart index 8300d30..b263bb9 100644 --- a/lib/cargo_base.dart +++ b/lib/cargo_base.dart @@ -1,6 +1,7 @@ library cargo; import 'dart:async'; +import 'dart:convert'; part 'src/cargo.dart'; part 'src/shared/memory_impl.dart'; diff --git a/lib/src/client/indexdb_impl.dart b/lib/src/client/indexdb_impl.dart index c97358e..9dbcace 100644 --- a/lib/src/client/indexdb_impl.dart +++ b/lib/src/client/indexdb_impl.dart @@ -7,7 +7,7 @@ class IndexDbCargo extends Cargo { int count = 0; - List keys = new List(); + Set keys = new Set(); /// Returns true if IndexedDB is supported on this platform. static bool get supported => IdbFactory.supported; diff --git a/lib/src/shared/cargo_utils.dart b/lib/src/shared/cargo_utils.dart index 2ea483e..5a59702 100644 --- a/lib/src/shared/cargo_utils.dart +++ b/lib/src/shared/cargo_utils.dart @@ -3,7 +3,12 @@ part of cargo; Map queryMap(Map values, Map params) { Map newValues = new Map(); - values.forEach((key, value) { + for ( var key in values.keys) { + var value = values[key]; + if (value is String) { + value = JSON.decode(value); + } + if (value is Map) { Map examen_value = value; @@ -14,7 +19,7 @@ Map queryMap(Map values, Map params) { // use mirrors in the future newValues[key] = value; } - }); + } return newValues; } @@ -46,7 +51,8 @@ Map filterCollection(Map coll, collection) { for ( var key in coll.keys) { var value = coll[key]; if (key.startsWith(collection)) { - newValues[key] = value; + String newKey = key.replaceAll(collection, ''); + newValues[newKey] = value; } } return newValues; diff --git a/test/client/cargo_tests.dart b/test/client/cargo_tests.dart index 566f564..cb1ff45 100644 --- a/test/client/cargo_tests.dart +++ b/test/client/cargo_tests.dart @@ -4,6 +4,7 @@ import 'package:cargo/cargo_client.dart'; import '../logic/collection_tests.dart'; import '../logic/normal_tests.dart'; import '../logic/async_tests.dart'; +import '../logic/export_tests.dart'; void main() { MemoryCargo storageMem = new Cargo(MODE: CargoMode.MEMORY); @@ -19,8 +20,8 @@ void main() { run(storage, "localstorage"); }); - group('indexdb_normal', () { - runAsync(storageIndexDB, "indexdb"); + group('indexeddb_normal', () { + runAsync(storageIndexDB, "indexedDB"); }); group('memory', () { @@ -31,6 +32,18 @@ void main() { runCollection(storage, "localstorage"); }); + group('memory exports', () { + runExports(storageMem, "memory"); + }); + + group('localstorage exports', () { + runExports(storage, "localstorage"); + }); + + /*group('indexedDB exports', () { + runExports(storageIndexDB, "indexedDB"); + });*/ + /*group('indexdb', () { runCollection(storage, "indexdb"); });*/ diff --git a/test/logic/export_tests.dart b/test/logic/export_tests.dart index b3155d4..830d2c9 100644 --- a/test/logic/export_tests.dart +++ b/test/logic/export_tests.dart @@ -31,8 +31,8 @@ void runExports(CargoBase storage, String name) { return storage.setItem("Facebook", facebookData).then((_) { return storage.setItem("Medium", mediumData).then((_) { return storage.export(params: params).then((Map results) { - expect(2, results.length); - expect("Uber", results['Uber']['name']); + expect(results.length, 2); + expect(results['Uber']['name'], "Uber"); }); }); }); diff --git a/test/server/utils_test.dart b/test/server/utils_test.dart index f031f94..2ad7f9b 100644 --- a/test/server/utils_test.dart +++ b/test/server/utils_test.dart @@ -23,22 +23,22 @@ void main() { params2['date'] = date2; test('test contains positive', () { - expect(true, containsByOverlay(values['YO'], params)); + expect(containsByOverlay(values['YO'], params), true); }); test('test contains negative', () { - expect(false, containsByOverlay(values['YO'], params2)); + expect(containsByOverlay(values['YO'], params2), false); }); test('test query map', () { Map queryResult = queryMap(values, params2); - expect(2, queryResult.length); - expect("Uber", queryResult['Uber']['name']); + expect(queryResult.length, 2); + expect(queryResult['Uber']['name'], 'Uber'); }); test('test query map with params null', () { Map queryResult = queryMap(values, null); - expect(values.length, queryResult.length); - expect("Uber", queryResult['Uber']['name']); + expect(queryResult.length, values.length); + expect(queryResult['Uber']['name'], 'Uber'); }); } \ No newline at end of file