Test: adding checkpoint for passing test
This commit is contained in:
parent
3ab3a4261c
commit
96984ea7da
1 changed files with 31 additions and 2 deletions
|
@ -5,6 +5,7 @@ import 'package:angel3_container/angel3_container.dart';
|
||||||
import 'package:angel3_event_bus/event_bus.dart';
|
import 'package:angel3_event_bus/event_bus.dart';
|
||||||
import 'package:angel3_mq/mq.dart';
|
import 'package:angel3_mq/mq.dart';
|
||||||
import 'package:angel3_queue/src/queue.dart';
|
import 'package:angel3_queue/src/queue.dart';
|
||||||
|
//import 'package:angel3_queue/src/invalid_payload_exception.dart';
|
||||||
import 'queue_test.mocks.dart';
|
import 'queue_test.mocks.dart';
|
||||||
|
|
||||||
@GenerateMocks([Container, MQClient, TransactionManager])
|
@GenerateMocks([Container, MQClient, TransactionManager])
|
||||||
|
@ -15,7 +16,6 @@ void main() {
|
||||||
late TestQueue queue;
|
late TestQueue queue;
|
||||||
|
|
||||||
setUpAll(() {
|
setUpAll(() {
|
||||||
// Provide a dummy EventBus for Mockito to use
|
|
||||||
provideDummy<EventBus>(DummyEventBus());
|
provideDummy<EventBus>(DummyEventBus());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@ void main() {
|
||||||
mq = MockMQClient();
|
mq = MockMQClient();
|
||||||
queue = TestQueue(container, eventBus, mq);
|
queue = TestQueue(container, eventBus, mq);
|
||||||
|
|
||||||
// Basic setup
|
|
||||||
when(container.has<EventBus>()).thenReturn(true);
|
when(container.has<EventBus>()).thenReturn(true);
|
||||||
when(container.has<TransactionManager>()).thenReturn(false);
|
when(container.has<TransactionManager>()).thenReturn(false);
|
||||||
when(container.make<EventBus>()).thenReturn(eventBus);
|
when(container.make<EventBus>()).thenReturn(eventBus);
|
||||||
|
@ -41,14 +40,28 @@ void main() {
|
||||||
'test_queue', Duration(minutes: 5), 'test_job', 'test_data');
|
'test_queue', Duration(minutes: 5), 'test_job', 'test_data');
|
||||||
expect(result, equals('pushed later'));
|
expect(result, equals('pushed later'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('bulk pushes multiple jobs', () async {
|
||||||
|
await queue.bulk(['job1', 'job2', 'job3'], 'test_data', 'test_queue');
|
||||||
|
expect(queue.pushedJobs.length, equals(3));
|
||||||
|
expect(queue.pushedJobs, containsAll(['job1', 'job2', 'job3']));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('createPayload throws InvalidPayloadException for invalid job', () {
|
||||||
|
expect(() => queue.createPayload({}, 'test_queue'),
|
||||||
|
throwsA(isA<InvalidPayloadException>()));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestQueue extends Queue {
|
class TestQueue extends Queue {
|
||||||
|
List<dynamic> pushedJobs = [];
|
||||||
|
|
||||||
TestQueue(Container container, EventBus eventBus, MQClient mq)
|
TestQueue(Container container, EventBus eventBus, MQClient mq)
|
||||||
: super(container, eventBus, mq);
|
: super(container, eventBus, mq);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<dynamic> push(dynamic job, [dynamic data = '', String? queue]) async {
|
Future<dynamic> push(dynamic job, [dynamic data = '', String? queue]) async {
|
||||||
|
pushedJobs.add(job);
|
||||||
return 'pushed';
|
return 'pushed';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,9 +70,25 @@ class TestQueue extends Queue {
|
||||||
[dynamic data = '', String? queue]) async {
|
[dynamic data = '', String? queue]) async {
|
||||||
return 'pushed later';
|
return 'pushed later';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String> createPayload(dynamic job, String queue,
|
||||||
|
[dynamic data = '']) async {
|
||||||
|
if (job is Map && job.isEmpty) {
|
||||||
|
throw InvalidPayloadException('Invalid job: empty map');
|
||||||
|
}
|
||||||
|
return 'valid payload';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DummyEventBus implements EventBus {
|
class DummyEventBus implements EventBus {
|
||||||
@override
|
@override
|
||||||
dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
|
dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class InvalidPayloadException implements Exception {
|
||||||
|
final String message;
|
||||||
|
InvalidPayloadException(this.message);
|
||||||
|
@override
|
||||||
|
String toString() => 'InvalidPayloadException: $message';
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue