Files
flutter_dotenv/test/dotenv_test.dart
mockturtl e1764c2240 parser
2015-05-08 01:16:17 -04:00

54 lines
1.6 KiB
Dart

import 'dart:io';
import 'package:collection/equality.dart' show MapEquality;
import 'package:dotenv/dotenv.dart' as dotenv;
import 'package:test/test.dart';
void main() {
group('[dotenv]', () {
var subj = new DotenvTest();
setUp(() => dotenv.env.addAll(vars));
tearDown(() => dotenv.clean());
test('it can clean previously defined variables', subj.clean);
test('it is equal to the read-only process environment when clean',
subj.clean2);
test('it confirms all required vars are defined', subj.every);
test('it fails when a required var is not defined', subj.every_fail);
test('it loads the file', subj.load, skip: 'pending');
});
}
const extra = const {'servlets': 'yes', 'rats': 'yes', 'horses': 'omgyes'};
const vars = const {'x': '1', 'y': 'false', 'z': 'foo', 'empty': ''};
class DotenvTest {
void clean() {
dotenv.env.addAll(extra);
dotenv.clean();
extra.keys.forEach((k) => expect(dotenv.env.containsKey(k), isFalse));
vars.keys.forEach((k) => expect(dotenv.env.containsKey(k), isFalse));
}
void clean2() {
expect(_clean, isFalse);
dotenv.clean();
expect(_clean, isTrue);
}
void every() {
dotenv.env.addAll(extra);
expect(dotenv.isEveryDefined(['x', 'y', 'z']), isTrue);
expect(dotenv.isEveryDefined(['servlets', 'rats', 'horses']), isTrue);
}
void every_fail() {
expect(dotenv.isEveryDefined(['empty']), isFalse);
expect(dotenv.isEveryDefined(['no_such_key']), isFalse);
}
void load() {}
}
bool get _clean => const MapEquality().equals(dotenv.env, Platform.environment);