import 'dart:convert';
|
import 'package:test/test.dart';
|
import '../lib/redux_remote_devtools.dart';
|
|
class TestAction {
|
int value;
|
TestAction({this.value});
|
toJson() {
|
return {'value': this.value};
|
}
|
}
|
|
enum EnumActions { SimpleEnumAction }
|
|
void main() {
|
group('JsonActionEncoder', () {
|
group('encodeAction', () {
|
test('Returns a jsonified action', () {
|
var encoder = new JsonActionEncoder();
|
var result = encoder.encode(new TestAction(value: 5));
|
var decoded = jsonDecode(result);
|
expect(decoded['type'], equals('TestAction'));
|
expect(decoded['payload']['value'], equals(5));
|
});
|
|
test('Still returns the type if action is not jsonable', () {
|
var encoder = new JsonActionEncoder();
|
var result = encoder.encode(EnumActions.SimpleEnumAction);
|
var decoded = jsonDecode(result);
|
expect(decoded['type'], equals('EnumActions.SimpleEnumAction'));
|
expect(decoded['payload'], equals(null));
|
});
|
});
|
|
group('getActionType', () {
|
test('Returns the class name for a class based action', () {
|
var encoder = new JsonActionEncoder();
|
var result = encoder.getActionType(new TestAction());
|
expect(result, equals('TestAction'));
|
});
|
test('Returns the value for enum actions', () {
|
var encoder = new JsonActionEncoder();
|
var result = encoder.getActionType(EnumActions.SimpleEnumAction);
|
expect(result, equals('EnumActions.SimpleEnumAction'));
|
});
|
});
|
});
|
}
|