implemented tests

This commit is contained in:
Sergey Penkovsky
2020-06-27 07:40:58 +03:00
parent b6b2aa6c49
commit feba1692c1
3 changed files with 74 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
import 'package:dart_di/resolvers/factory_resolver.dart';
import 'package:test/test.dart';
import 'package:mockito/mockito.dart' as mockito;
void main() {
test('Factory resolver resolves with factory', () {
const expected = 3;
final factoryResolver = new FactoryResolver(() => expected);
expect(factoryResolver.resolve(), expected);
});
test('Factory creates value only after resolve() call', () {
final spy = new SpyMock();
final factoryResolver = new FactoryResolver(() => spy.onFactory());
mockito.verifyNever(spy.onFactory());
factoryResolver.resolve();
mockito.verify(spy.onFactory());
});
}
abstract class Spy {
void onFactory();
}
class SpyMock extends mockito.Mock implements Spy {}

View File

@@ -0,0 +1,36 @@
import 'package:dart_di/resolvers/factory_resolver.dart';
import 'package:dart_di/resolvers/singelton_resolver.dart';
import 'package:test/test.dart';
import 'package:mockito/mockito.dart' as mockito;
void main() {
test(
'Not singleton resolver resolves different values after multiple resolve() calls',
() {
const callCount = 3;
final spy = new SpyMock();
final factoryResolver = new FactoryResolver(() => spy..onFactory());
for (var i = 0; i < callCount; i++) factoryResolver.resolve();
mockito.verify(spy.onFactory()).called(callCount);
});
test('Singleton resolver resolves same value after multiple resolve() calls',
() {
const callCount = 3;
final spy = new SpyMock();
final singletonResolver =
new SingletonResolver(new FactoryResolver(() => spy..onFactory()));
for (var i = 0; i < callCount; i++) singletonResolver.resolve();
mockito.verify(spy.onFactory()).called(1);
});
}
abstract class Spy {
void onFactory();
}
class SpyMock extends mockito.Mock implements Spy {}

View File

@@ -0,0 +1,11 @@
import 'package:dart_di/resolvers/value_resolver.dart';
import 'package:test/test.dart';
void main() {
test('Value resolver resolves with selected value', () {
var a = 3;
final valResolver = new ValueResolver(a);
expect(valResolver.resolve(), a);
});
}