Test: adding checkpoint for ALL passing test
This commit is contained in:
parent
f4f36206b6
commit
7dfa47cfe9
2 changed files with 68 additions and 1 deletions
|
@ -7,6 +7,15 @@ import 'package:angel3_mq/mq.dart';
|
||||||
import 'package:mockito/mockito.dart';
|
import 'package:mockito/mockito.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
class IsMessage extends Matcher {
|
||||||
|
@override
|
||||||
|
bool matches(item, Map matchState) => item is Message;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Description describe(Description description) =>
|
||||||
|
description.add('is a Message');
|
||||||
|
}
|
||||||
|
|
||||||
class MockContainer extends Mock implements Container {
|
class MockContainer extends Mock implements Container {
|
||||||
final Map<Type, dynamic> _instances = {};
|
final Map<Type, dynamic> _instances = {};
|
||||||
|
|
||||||
|
@ -31,7 +40,26 @@ class MockEventBus extends Mock implements EventBus {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MockMQClient extends Mock implements MQClient {}
|
class MockMQClient extends Mock implements MQClient {
|
||||||
|
Message? capturedMessage;
|
||||||
|
String? capturedExchangeName;
|
||||||
|
String? capturedRoutingKey;
|
||||||
|
|
||||||
|
@override
|
||||||
|
dynamic noSuchMethod(Invocation invocation,
|
||||||
|
{Object? returnValue, Object? returnValueForMissingStub}) {
|
||||||
|
if (invocation.memberName == #sendMessage) {
|
||||||
|
final namedArgs = invocation.namedArguments;
|
||||||
|
capturedMessage = namedArgs[#message] as Message?;
|
||||||
|
capturedExchangeName = namedArgs[#exchangeName] as String?;
|
||||||
|
capturedRoutingKey = namedArgs[#routingKey] as String?;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return super.noSuchMethod(invocation,
|
||||||
|
returnValue: returnValue,
|
||||||
|
returnValueForMissingStub: returnValueForMissingStub);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class TestCommand implements Command {
|
class TestCommand implements Command {
|
||||||
final String data;
|
final String data;
|
||||||
|
@ -117,6 +145,45 @@ void main() {
|
||||||
await commandEventController.close();
|
await commandEventController.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('dispatch should queue ShouldQueue commands', () async {
|
||||||
|
final command = TestQueuedCommand('queued data');
|
||||||
|
|
||||||
|
// Dispatch the command
|
||||||
|
await dispatcher.dispatch(command);
|
||||||
|
|
||||||
|
// Verify that sendMessage was called and check the message properties
|
||||||
|
expect(mqClient.capturedMessage, isNotNull);
|
||||||
|
expect(mqClient.capturedMessage!.payload, equals(command));
|
||||||
|
expect(mqClient.capturedMessage!.headers?['commandType'],
|
||||||
|
equals('TestQueuedCommand'));
|
||||||
|
|
||||||
|
// Optionally, verify exchange name and routing key if needed
|
||||||
|
expect(mqClient.capturedExchangeName, isNull);
|
||||||
|
expect(mqClient.capturedRoutingKey, isNull);
|
||||||
|
});
|
||||||
|
|
||||||
|
test(
|
||||||
|
'dispatchAfterResponse should send message to queue with specific header',
|
||||||
|
() {
|
||||||
|
final command = TestCommand('after response data');
|
||||||
|
|
||||||
|
// Call dispatchAfterResponse
|
||||||
|
dispatcher.dispatchAfterResponse(command);
|
||||||
|
|
||||||
|
// Verify that sendMessage was called and check the message properties
|
||||||
|
expect(mqClient.capturedMessage, isNotNull);
|
||||||
|
expect(mqClient.capturedMessage!.payload, equals(command));
|
||||||
|
expect(mqClient.capturedMessage!.headers?['commandType'],
|
||||||
|
equals('TestCommand'));
|
||||||
|
expect(mqClient.capturedMessage!.headers?['dispatchAfterResponse'],
|
||||||
|
equals('true'));
|
||||||
|
|
||||||
|
// Verify routing key
|
||||||
|
expect(mqClient.capturedRoutingKey, equals('after_response_queue'));
|
||||||
|
|
||||||
|
// Optionally, verify exchange name if needed
|
||||||
|
expect(mqClient.capturedExchangeName, isNull);
|
||||||
|
});
|
||||||
test('map should register command handlers', () {
|
test('map should register command handlers', () {
|
||||||
dispatcher.map({TestCommand: TestHandler});
|
dispatcher.map({TestCommand: TestHandler});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue