diff --git a/lib/src/acceptor.dart b/lib/src/acceptor.dart index 0643a73..c049217 100644 --- a/lib/src/acceptor.dart +++ b/lib/src/acceptor.dart @@ -79,9 +79,7 @@ class Acceptor { Response response = _authenticator.authenticate(request); _state = stateWelcomeSent; - Welcome welcome = Welcome( - WelcomeFields(_sessionID, routerRoles, response.authID, response.authRole, method, authExtra: {}), - ); + Welcome welcome = Welcome(_sessionID, routerRoles, response.authID, response.authRole, method, authExtra: {}); _sessionDetails = SessionDetails(_sessionID, msg.realm, welcome.authID, welcome.authRole); return welcome; @@ -99,7 +97,7 @@ class Acceptor { String challenge = generateCryptoSignChallenge(); _state = stateChallengeSent; - return Challenge(ChallengeFields(method, {"challenge": challenge})); + return Challenge(method, {"challenge": challenge}); case wampcra: WAMPCRARequest request = WAMPCRARequest(msg.realm, msg.authID, msg.authExtra); @@ -115,12 +113,12 @@ class Acceptor { _state = stateChallengeSent; _challenge = challenge; - return Challenge(ChallengeFields(method, {"challenge": challenge})); + return Challenge(method, {"challenge": challenge}); case ticket: _state = stateChallengeSent; - return Challenge(ChallengeFields(method, {})); + return Challenge(method, {}); default: throw ProtocolError("unknown auth method '$method'"); @@ -135,13 +133,12 @@ class Acceptor { var isVerified = verifyCryptoSignSignature(msg.signature, Base16Encoder.instance.decode(_publicKey)); if (!isVerified) { _state = stateAborted; - return Abort(AbortFields({}, errAuthenticationFailed)); + return Abort({}, errAuthenticationFailed); } _state = stateWelcomeSent; - Welcome welcome = Welcome( - WelcomeFields(_sessionID, routerRoles, _response.authID, _response.authRole, cryptosign, authExtra: {}), - ); + Welcome welcome = + Welcome(_sessionID, routerRoles, _response.authID, _response.authRole, cryptosign, authExtra: {}); _sessionDetails = SessionDetails(welcome.sessionID, _hello.realm, welcome.authID, welcome.authRole); return welcome; @@ -150,13 +147,12 @@ class Acceptor { var isVerified = verifyWampCRASignature(msg.signature, _challenge, Uint8List.fromList(_secret.codeUnits)); if (!isVerified) { _state = stateAborted; - return Abort(AbortFields({}, errAuthenticationFailed)); + return Abort({}, errAuthenticationFailed); } _state = stateWelcomeSent; - Welcome welcome = Welcome( - WelcomeFields(_sessionID, routerRoles, _response.authID, _response.authRole, wampcra, authExtra: {}), - ); + Welcome welcome = + Welcome(_sessionID, routerRoles, _response.authID, _response.authRole, wampcra, authExtra: {}); _sessionDetails = SessionDetails(welcome.sessionID, _hello.realm, welcome.authID, welcome.authRole); return welcome; @@ -166,9 +162,7 @@ class Acceptor { Response response = _authenticator.authenticate(request); _state = stateWelcomeSent; - Welcome welcome = Welcome( - WelcomeFields(_sessionID, routerRoles, response.authID, response.authRole, ticket, authExtra: {}), - ); + Welcome welcome = Welcome(_sessionID, routerRoles, response.authID, response.authRole, ticket, authExtra: {}); _sessionDetails = SessionDetails(welcome.sessionID, _hello.realm, welcome.authID, welcome.authRole); return welcome; diff --git a/lib/src/auth/cryptosign.dart b/lib/src/auth/cryptosign.dart index 9767782..47e0e95 100644 --- a/lib/src/auth/cryptosign.dart +++ b/lib/src/auth/cryptosign.dart @@ -31,7 +31,7 @@ class CryptoSignAuthenticator extends IClientAuthenticator { var challengeHex = challenge.extra["challenge"]; var signed = signCryptoSignChallenge(challengeHex, getPrivateKey()); - return Authenticate(AuthenticateFields(signed + challengeHex, {})); + return Authenticate(signed + challengeHex, {}); } } diff --git a/lib/src/auth/ticket.dart b/lib/src/auth/ticket.dart index 1ed9dd5..ec777ac 100644 --- a/lib/src/auth/ticket.dart +++ b/lib/src/auth/ticket.dart @@ -9,6 +9,6 @@ class TicketAuthenticator extends IClientAuthenticator { @override Authenticate authenticate(Challenge challenge) { - return Authenticate(AuthenticateFields(_ticket, {})); + return Authenticate(_ticket, {}); } } diff --git a/lib/src/auth/wampcra.dart b/lib/src/auth/wampcra.dart index 9ee03ea..beff6e3 100644 --- a/lib/src/auth/wampcra.dart +++ b/lib/src/auth/wampcra.dart @@ -15,7 +15,7 @@ class WAMPCRAAuthenticator extends IClientAuthenticator { @override Authenticate authenticate(Challenge challenge) { String signed = signWampCRAChallenge(challenge.extra["challenge"], utf8.encode(_secret)); - return Authenticate(AuthenticateFields(signed, {})); + return Authenticate(signed, {}); } } diff --git a/lib/src/broker.dart b/lib/src/broker.dart index a6c5a03..4cb6d10 100644 --- a/lib/src/broker.dart +++ b/lib/src/broker.dart @@ -59,7 +59,7 @@ class Broker { _subscriptionsBySession.putIfAbsent(sessionID, () => {})[subscription.id] = subscription; - Subscribed subscribed = Subscribed(SubscribedFields(message.requestID, subscription.id)); + Subscribed subscribed = Subscribed(message.requestID, subscription.id); return MessageWithRecipient(subscribed, sessionID); } else if (message is UnSubscribe) { if (!_subscriptionsBySession.containsKey(sessionID)) { @@ -82,7 +82,7 @@ class Broker { _subscriptionsBySession[sessionID]?.remove(message.subscriptionID); - UnSubscribed unSubscribed = UnSubscribed(UnSubscribedFields(message.requestID)); + UnSubscribed unSubscribed = UnSubscribed(message.requestID); return MessageWithRecipient(unSubscribed, sessionID); } else { throw Exception("message type not supported"); @@ -99,14 +99,14 @@ class Broker { var subscription = _subscriptionsByTopic[message.uri]; if (subscription != null) { - var event = Event(EventFields(subscription.id, publicationId, args: message.args, kwargs: message.kwargs)); + var event = Event(subscription.id, publicationId, args: message.args, kwargs: message.kwargs); result.event = event; result.recipients!.addAll(subscription.subscribers.keys); } var ack = message.options["acknowledge"] ?? false; if (ack) { - var published = Published(PublishedFields(message.requestID, publicationId)); + var published = Published(message.requestID, publicationId); result.ack = MessageWithRecipient(published, sessionId); } diff --git a/lib/src/dealer.dart b/lib/src/dealer.dart index 88bb7ea..1704890 100644 --- a/lib/src/dealer.dart +++ b/lib/src/dealer.dart @@ -61,7 +61,7 @@ class Dealer { if (message is Call) { var registration = _registrationsByProcedure[message.uri]; if (registration == null) { - var error = Error(ErrorFields(Register.id, message.requestID, errNoSuchProcedure)); + var error = Error(Register.id, message.requestID, errNoSuchProcedure); return MessageWithRecipient(error, sessionID); } @@ -81,13 +81,11 @@ class Dealer { ); var invocation = Invocation( - InvocationFields( - requestID, - registration.id, - args: message.args, - kwargs: message.kwargs, - details: receiveProgress ? {optionReceiveProgress: receiveProgress} : {}, - ), + requestID, + registration.id, + args: message.args, + kwargs: message.kwargs, + details: receiveProgress ? {optionReceiveProgress: receiveProgress} : {}, ); return MessageWithRecipient(invocation, calleeID); } else if (message is Yield) { @@ -108,8 +106,7 @@ class Dealer { } else { _pendingCalls.remove(message.requestID); } - var result = - Result(ResultFields(invocation.requestID, args: message.args, kwargs: message.kwargs, details: details)); + var result = Result(invocation.requestID, args: message.args, kwargs: message.kwargs, details: details); return MessageWithRecipient(result, invocation.callerID); } else if (message is Register) { if (!_registrationsBySession.containsKey(sessionID)) { @@ -123,11 +120,11 @@ class Dealer { _registrationsBySession.putIfAbsent(sessionID, () => {})[registrations.id] = registrations; } else { // TODO: implement shared registrations. - var error = Error(ErrorFields(Register.id, message.requestID, errProcedureAlreadyExists)); + var error = Error(Register.id, message.requestID, errProcedureAlreadyExists); return MessageWithRecipient(error, sessionID); } - var registered = Registered(RegisteredFields(message.requestID, registrations.id)); + var registered = Registered(message.requestID, registrations.id); return MessageWithRecipient(registered, sessionID); } else if (message is UnRegister) { var registrations = _registrationsBySession[sessionID]; @@ -147,7 +144,7 @@ class Dealer { } _registrationsBySession[sessionID] = registrations; - var unRegistered = UnRegistered(UnRegisteredFields(message.requestID)); + var unRegistered = UnRegistered(message.requestID); return MessageWithRecipient(unRegistered, sessionID); } else { throw Exception("message type not supported"); diff --git a/lib/src/joiner.dart b/lib/src/joiner.dart index 213a8b6..0a93a37 100644 --- a/lib/src/joiner.dart +++ b/lib/src/joiner.dart @@ -29,13 +29,11 @@ class Joiner { Object sendHello() { final hello = Hello( - HelloFields( - _realm, - clientRoles, - _authenticator.authID, - [_authenticator.authMethod], - authExtra: _authenticator.authExtra, - ), + _realm, + clientRoles, + _authenticator.authID, + [_authenticator.authMethod], + authExtra: _authenticator.authExtra, ); _state = stateHelloSent; diff --git a/lib/src/messages/abort.dart b/lib/src/messages/abort.dart index a9c3919..1a2ea33 100644 --- a/lib/src/messages/abort.dart +++ b/lib/src/messages/abort.dart @@ -22,7 +22,11 @@ class AbortFields implements IAbortFields { } class Abort implements Message { - Abort(this._abortFields); + Abort(Map details, String reason) { + _abortFields = AbortFields(details, reason); + } + + Abort.withFields(this._abortFields); static const int id = 3; @@ -38,7 +42,7 @@ class Abort implements Message { }, ); - final IAbortFields _abortFields; + late IAbortFields _abortFields; Map get details => _abortFields.details; @@ -47,7 +51,7 @@ class Abort implements Message { static Abort parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Abort(AbortFields(fields.details!, fields.reason!)); + return Abort(fields.details!, fields.reason!); } @override diff --git a/lib/src/messages/authenticate.dart b/lib/src/messages/authenticate.dart index a181dfd..d658df5 100644 --- a/lib/src/messages/authenticate.dart +++ b/lib/src/messages/authenticate.dart @@ -23,7 +23,11 @@ class AuthenticateFields implements IAuthenticateFields { } class Authenticate implements Message { - Authenticate(this._authenticateFields); + Authenticate(String signature, Map extra) { + _authenticateFields = AuthenticateFields(signature, extra); + } + + Authenticate.withFields(this._authenticateFields); static const int id = 5; @@ -39,7 +43,7 @@ class Authenticate implements Message { }, ); - final IAuthenticateFields _authenticateFields; + late IAuthenticateFields _authenticateFields; String get signature => _authenticateFields.signature; @@ -48,7 +52,7 @@ class Authenticate implements Message { static Authenticate parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Authenticate(AuthenticateFields(fields.signature!, fields.extra!)); + return Authenticate(fields.signature!, fields.extra!); } @override diff --git a/lib/src/messages/call.dart b/lib/src/messages/call.dart index 2aa6d0e..277fd35 100644 --- a/lib/src/messages/call.dart +++ b/lib/src/messages/call.dart @@ -48,7 +48,11 @@ class CallFields implements ICallFields { } class Call implements Message { - Call(this._callFields); + Call(int requestID, String uri, {List? args, Map? kwargs, Map? options}) { + _callFields = CallFields(requestID, uri, args: args, kwargs: kwargs, options: options); + } + + Call.withFields(this._callFields); static const int id = 48; @@ -67,7 +71,7 @@ class Call implements Message { }, ); - final ICallFields _callFields; + late ICallFields _callFields; int get requestID => _callFields.requestID; @@ -82,9 +86,7 @@ class Call implements Message { static Call parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Call( - CallFields(fields.requestID!, fields.uri!, args: fields.args, kwargs: fields.kwargs, options: fields.options), - ); + return Call(fields.requestID!, fields.uri!, args: fields.args, kwargs: fields.kwargs, options: fields.options); } @override diff --git a/lib/src/messages/cancel.dart b/lib/src/messages/cancel.dart index 95110aa..b8313e0 100644 --- a/lib/src/messages/cancel.dart +++ b/lib/src/messages/cancel.dart @@ -22,7 +22,11 @@ class CancelFields implements ICancelFields { } class Cancel implements Message { - Cancel(this._cancelFields); + Cancel(int requestID, {Map? options}) { + _cancelFields = CancelFields(requestID, options: options); + } + + Cancel.withFields(this._cancelFields); static const int id = 49; @@ -38,7 +42,7 @@ class Cancel implements Message { }, ); - final ICancelFields _cancelFields; + late ICancelFields _cancelFields; int get requestID => _cancelFields.requestID; @@ -47,7 +51,7 @@ class Cancel implements Message { static Cancel parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Cancel(CancelFields(fields.requestID!, options: fields.options)); + return Cancel(fields.requestID!, options: fields.options); } @override diff --git a/lib/src/messages/challenge.dart b/lib/src/messages/challenge.dart index d3529b4..228baa1 100644 --- a/lib/src/messages/challenge.dart +++ b/lib/src/messages/challenge.dart @@ -23,7 +23,11 @@ class ChallengeFields implements IChallengeFields { } class Challenge implements Message { - Challenge(this._challengeFields); + Challenge(String authMethod, Map extra) { + _challengeFields = ChallengeFields(authMethod, extra); + } + + Challenge.withFields(this._challengeFields); static const int id = 4; @@ -39,7 +43,7 @@ class Challenge implements Message { }, ); - final IChallengeFields _challengeFields; + late IChallengeFields _challengeFields; String get authMethod => _challengeFields.authMethod; @@ -48,7 +52,7 @@ class Challenge implements Message { static Challenge parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Challenge(ChallengeFields(fields.authmethod!, fields.extra!)); + return Challenge(fields.authmethod!, fields.extra!); } @override diff --git a/lib/src/messages/error.dart b/lib/src/messages/error.dart index 2f4b4f4..cc15af3 100644 --- a/lib/src/messages/error.dart +++ b/lib/src/messages/error.dart @@ -55,7 +55,18 @@ class ErrorFields implements IErrorFields { } class Error implements Message { - Error(this._errorFields); + Error( + int msgType, + int requestID, + String uri, { + List? args, + Map? kwargs, + Map? details, + }) { + _errorFields = ErrorFields(msgType, requestID, uri, args: args, kwargs: kwargs, details: details); + } + + Error.withFields(this._errorFields); static const int id = 8; @@ -75,7 +86,7 @@ class Error implements Message { }, ); - final IErrorFields _errorFields; + late IErrorFields _errorFields; int get msgType => _errorFields.msgType; @@ -93,14 +104,12 @@ class Error implements Message { var fields = validateMessage(message, id, text, _validationSpec); return Error( - ErrorFields( - fields.messageType!, - fields.requestID!, - fields.uri!, - args: fields.args, - kwargs: fields.kwargs, - details: fields.details, - ), + fields.messageType!, + fields.requestID!, + fields.uri!, + args: fields.args, + kwargs: fields.kwargs, + details: fields.details, ); } diff --git a/lib/src/messages/event.dart b/lib/src/messages/event.dart index 2a260b5..7b4ecad 100644 --- a/lib/src/messages/event.dart +++ b/lib/src/messages/event.dart @@ -48,7 +48,17 @@ class EventFields implements IEventFields { } class Event implements Message { - Event(this._eventFields); + Event( + int subscriptionID, + int publicationID, { + List? args, + Map? kwargs, + Map? details, + }) { + _eventFields = EventFields(subscriptionID, publicationID, args: args, kwargs: kwargs, details: details); + } + + Event.withFields(this._eventFields); static const int id = 36; @@ -67,7 +77,7 @@ class Event implements Message { }, ); - final IEventFields _eventFields; + late IEventFields _eventFields; int get subscriptionID => _eventFields.subscriptionID; @@ -83,13 +93,11 @@ class Event implements Message { var fields = validateMessage(message, id, text, _validationSpec); return Event( - EventFields( - fields.subscriptionID!, - fields.publicationID!, - args: fields.args, - kwargs: fields.kwargs, - details: fields.details, - ), + fields.subscriptionID!, + fields.publicationID!, + args: fields.args, + kwargs: fields.kwargs, + details: fields.details, ); } diff --git a/lib/src/messages/goodbye.dart b/lib/src/messages/goodbye.dart index 62aaeb4..dec647d 100644 --- a/lib/src/messages/goodbye.dart +++ b/lib/src/messages/goodbye.dart @@ -22,7 +22,11 @@ class GoodbyeFields implements IGoodbyeFields { } class Goodbye implements Message { - Goodbye(this._goodbyeFields); + Goodbye(Map details, String reason) { + _goodbyeFields = GoodbyeFields(details, reason); + } + + Goodbye.withFields(this._goodbyeFields); static const int id = 6; @@ -38,7 +42,7 @@ class Goodbye implements Message { }, ); - final IGoodbyeFields _goodbyeFields; + late IGoodbyeFields _goodbyeFields; Map get details => _goodbyeFields.details; @@ -47,7 +51,7 @@ class Goodbye implements Message { static Goodbye parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Goodbye(GoodbyeFields(fields.details!, fields.reason!)); + return Goodbye(fields.details!, fields.reason!); } @override diff --git a/lib/src/messages/hello.dart b/lib/src/messages/hello.dart index f17d116..9b8c093 100644 --- a/lib/src/messages/hello.dart +++ b/lib/src/messages/hello.dart @@ -1,3 +1,4 @@ +import "package:wampproto/messages.dart"; import "package:wampproto/src/messages/message.dart"; import "package:wampproto/src/messages/util.dart"; import "package:wampproto/src/messages/validation_spec.dart"; @@ -40,7 +41,17 @@ class HelloFields implements IHelloFields { } class Hello implements Message { - Hello(this._helloFields); + Hello( + String realm, + Map roles, + String authid, + List authMethods, { + Map? authExtra, + }) { + _helloFields = HelloFields(realm, roles, authid, authMethods, authExtra: authExtra); + } + + Hello.withFields(this._helloFields); static const int id = 1; static const String text = "HELLO"; @@ -55,7 +66,7 @@ class Hello implements Message { }, ); - final IHelloFields _helloFields; + late IHelloFields _helloFields; String get realm => _helloFields.realm; @@ -87,7 +98,7 @@ class Hello implements Message { authExtra = validateMapOrRaise(fields.details!["authextra"], text, "authextra"); } - return Hello(HelloFields(fields.realm!, roles, authid, authMethods, authExtra: authExtra)); + return Hello(fields.realm!, roles, authid, authMethods, authExtra: authExtra); } @override diff --git a/lib/src/messages/interrupt.dart b/lib/src/messages/interrupt.dart index 8dd68da..db46dff 100644 --- a/lib/src/messages/interrupt.dart +++ b/lib/src/messages/interrupt.dart @@ -22,7 +22,11 @@ class InterruptFields implements IInterruptFields { } class Interrupt implements Message { - Interrupt(this._interruptFields); + Interrupt(int requestID, {Map? options}) { + _interruptFields = InterruptFields(requestID, options: options); + } + + Interrupt.withFields(this._interruptFields); static const int id = 69; @@ -38,7 +42,7 @@ class Interrupt implements Message { }, ); - final IInterruptFields _interruptFields; + late IInterruptFields _interruptFields; int get requestID => _interruptFields.requestID; @@ -47,7 +51,7 @@ class Interrupt implements Message { static Interrupt parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Interrupt(InterruptFields(fields.requestID!, options: fields.options)); + return Interrupt(fields.requestID!, options: fields.options); } @override diff --git a/lib/src/messages/invocation.dart b/lib/src/messages/invocation.dart index 0e49441..dec9622 100644 --- a/lib/src/messages/invocation.dart +++ b/lib/src/messages/invocation.dart @@ -48,7 +48,17 @@ class InvocationFields implements IInvocationFields { } class Invocation implements Message { - Invocation(this._invocationFields); + Invocation( + int requestID, + int registrationID, { + List? args, + Map? kwargs, + Map? details, + }) { + _invocationFields = InvocationFields(requestID, registrationID, args: args, kwargs: kwargs, details: details); + } + + Invocation.withFields(this._invocationFields); static const int id = 68; @@ -67,7 +77,7 @@ class Invocation implements Message { }, ); - final IInvocationFields _invocationFields; + late IInvocationFields _invocationFields; int get requestID => _invocationFields.requestID; @@ -83,13 +93,11 @@ class Invocation implements Message { var fields = validateMessage(message, id, text, _validationSpec); return Invocation( - InvocationFields( - fields.requestID!, - fields.registrationID!, - args: fields.args, - kwargs: fields.kwargs, - details: fields.details, - ), + fields.requestID!, + fields.registrationID!, + args: fields.args, + kwargs: fields.kwargs, + details: fields.details, ); } diff --git a/lib/src/messages/publish.dart b/lib/src/messages/publish.dart index f8bba56..87123fe 100644 --- a/lib/src/messages/publish.dart +++ b/lib/src/messages/publish.dart @@ -48,7 +48,17 @@ class PublishFields implements IPublishFields { } class Publish implements Message { - Publish(this._publishFields); + Publish( + int requestID, + String uri, { + List? args, + Map? kwargs, + Map? options, + }) { + _publishFields = PublishFields(requestID, uri, args: args, kwargs: kwargs, options: options); + } + + Publish.withFields(this._publishFields); static const int id = 16; @@ -67,7 +77,7 @@ class Publish implements Message { }, ); - final IPublishFields _publishFields; + late IPublishFields _publishFields; int get requestID => _publishFields.requestID; @@ -82,9 +92,7 @@ class Publish implements Message { static Publish parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Publish( - PublishFields(fields.requestID!, fields.uri!, args: fields.args, kwargs: fields.kwargs, options: fields.options), - ); + return Publish(fields.requestID!, fields.uri!, args: fields.args, kwargs: fields.kwargs, options: fields.options); } @override diff --git a/lib/src/messages/published.dart b/lib/src/messages/published.dart index 7d8e44b..bd94af0 100644 --- a/lib/src/messages/published.dart +++ b/lib/src/messages/published.dart @@ -22,7 +22,11 @@ class PublishedFields implements IPublishedFields { } class Published implements Message { - Published(this._publishedFields); + Published(int requestID, int publicationID) { + _publishedFields = PublishedFields(requestID, publicationID); + } + + Published.withFields(this._publishedFields); static const int id = 17; @@ -38,7 +42,7 @@ class Published implements Message { }, ); - final IPublishedFields _publishedFields; + late IPublishedFields _publishedFields; int get requestID => _publishedFields.requestID; @@ -47,7 +51,7 @@ class Published implements Message { static Published parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Published(PublishedFields(fields.requestID!, fields.publicationID!)); + return Published(fields.requestID!, fields.publicationID!); } @override diff --git a/lib/src/messages/register.dart b/lib/src/messages/register.dart index 188b2ad..c67c0c5 100644 --- a/lib/src/messages/register.dart +++ b/lib/src/messages/register.dart @@ -32,7 +32,11 @@ class RegisterFields implements IRegisterFields { } class Register implements Message { - Register(this._registerFields); + Register(int requestID, String uri, {Map? options}) { + _registerFields = RegisterFields(requestID, uri, options: options); + } + + Register.withFields(this._registerFields); static const int id = 64; @@ -49,7 +53,7 @@ class Register implements Message { }, ); - final IRegisterFields _registerFields; + late IRegisterFields _registerFields; int get requestID => _registerFields.requestID; @@ -60,7 +64,7 @@ class Register implements Message { static Register parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Register(RegisterFields(fields.requestID!, fields.uri!, options: fields.options)); + return Register(fields.requestID!, fields.uri!, options: fields.options); } @override diff --git a/lib/src/messages/registered.dart b/lib/src/messages/registered.dart index ce76411..0b3ece2 100644 --- a/lib/src/messages/registered.dart +++ b/lib/src/messages/registered.dart @@ -22,7 +22,11 @@ class RegisteredFields implements IRegisteredFields { } class Registered implements Message { - Registered(this._registeredFields); + Registered(int requestID, int registrationID) { + _registeredFields = RegisteredFields(requestID, registrationID); + } + + Registered.withFields(this._registeredFields); static const int id = 65; @@ -38,7 +42,7 @@ class Registered implements Message { }, ); - final IRegisteredFields _registeredFields; + late IRegisteredFields _registeredFields; int get requestID => _registeredFields.requestID; @@ -47,7 +51,7 @@ class Registered implements Message { static Registered parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Registered(RegisteredFields(fields.requestID!, fields.registrationID!)); + return Registered(fields.requestID!, fields.registrationID!); } @override diff --git a/lib/src/messages/result.dart b/lib/src/messages/result.dart index dc2d0df..d052d71 100644 --- a/lib/src/messages/result.dart +++ b/lib/src/messages/result.dart @@ -41,7 +41,11 @@ class ResultFields implements IResultFields { } class Result implements Message { - Result(this._resultFields); + Result(int requestID, {List? args, Map? kwargs, Map? details}) { + _resultFields = ResultFields(requestID, args: args, kwargs: kwargs, details: details); + } + + Result.withFields(this._resultFields); static const int id = 50; @@ -59,7 +63,7 @@ class Result implements Message { }, ); - final IResultFields _resultFields; + late IResultFields _resultFields; int get requestID => _resultFields.requestID; @@ -72,7 +76,7 @@ class Result implements Message { static Result parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Result(ResultFields(fields.requestID!, args: fields.args, kwargs: fields.kwargs, details: fields.details)); + return Result(fields.requestID!, args: fields.args, kwargs: fields.kwargs, details: fields.details); } @override diff --git a/lib/src/messages/subscribe.dart b/lib/src/messages/subscribe.dart index 0c14ab6..3ca048b 100644 --- a/lib/src/messages/subscribe.dart +++ b/lib/src/messages/subscribe.dart @@ -32,7 +32,11 @@ class SubscribeFields implements ISubscribeFields { } class Subscribe implements Message { - Subscribe(this._subscribeFields); + Subscribe(int requestID, String topic, {Map? options}) { + _subscribeFields = SubscribeFields(requestID, topic, options: options); + } + + Subscribe.withFields(this._subscribeFields); static const int id = 32; @@ -49,7 +53,7 @@ class Subscribe implements Message { }, ); - final ISubscribeFields _subscribeFields; + late ISubscribeFields _subscribeFields; int get requestID => _subscribeFields.requestID; @@ -60,7 +64,7 @@ class Subscribe implements Message { static Subscribe parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Subscribe(SubscribeFields(fields.requestID!, fields.topic!, options: fields.options)); + return Subscribe(fields.requestID!, fields.topic!, options: fields.options); } @override diff --git a/lib/src/messages/subscribed.dart b/lib/src/messages/subscribed.dart index 1fa862d..ba408fd 100644 --- a/lib/src/messages/subscribed.dart +++ b/lib/src/messages/subscribed.dart @@ -22,7 +22,11 @@ class SubscribedFields implements ISubscribedFields { } class Subscribed implements Message { - Subscribed(this._subscribedFields); + Subscribed(int requestID, int subscriptionID) { + _subscribedFields = SubscribedFields(requestID, subscriptionID); + } + + Subscribed.withFields(this._subscribedFields); static const int id = 33; @@ -38,7 +42,7 @@ class Subscribed implements Message { }, ); - final ISubscribedFields _subscribedFields; + late ISubscribedFields _subscribedFields; int get requestID => _subscribedFields.requestID; @@ -47,7 +51,7 @@ class Subscribed implements Message { static Subscribed parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Subscribed(SubscribedFields(fields.requestID!, fields.subscriptionID!)); + return Subscribed(fields.requestID!, fields.subscriptionID!); } @override diff --git a/lib/src/messages/unregister.dart b/lib/src/messages/unregister.dart index 73248aa..7c1a351 100644 --- a/lib/src/messages/unregister.dart +++ b/lib/src/messages/unregister.dart @@ -22,7 +22,11 @@ class UnRegisterFields implements IUnRegisterFields { } class UnRegister implements Message { - UnRegister(this._unRegisterFields); + UnRegister(int requestID, int registrationID) { + _unRegisterFields = UnRegisterFields(requestID, registrationID); + } + + UnRegister.withFields(this._unRegisterFields); static const int id = 66; @@ -38,7 +42,7 @@ class UnRegister implements Message { }, ); - final IUnRegisterFields _unRegisterFields; + late IUnRegisterFields _unRegisterFields; int get requestID => _unRegisterFields.requestID; @@ -47,7 +51,7 @@ class UnRegister implements Message { static UnRegister parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return UnRegister(UnRegisterFields(fields.requestID!, fields.registrationID!)); + return UnRegister(fields.requestID!, fields.registrationID!); } @override diff --git a/lib/src/messages/unregistered.dart b/lib/src/messages/unregistered.dart index b3a5f67..f7e1f69 100644 --- a/lib/src/messages/unregistered.dart +++ b/lib/src/messages/unregistered.dart @@ -16,7 +16,11 @@ class UnRegisteredFields implements IUnRegisteredFields { } class UnRegistered implements Message { - UnRegistered(this._unRegisteredFields); + UnRegistered(int requestID) { + _unRegisteredFields = UnRegisteredFields(requestID); + } + + UnRegistered.withFields(this._unRegisteredFields); static const int id = 67; @@ -31,14 +35,14 @@ class UnRegistered implements Message { }, ); - final IUnRegisteredFields _unRegisteredFields; + late IUnRegisteredFields _unRegisteredFields; int get requestID => _unRegisteredFields.requestID; static UnRegistered parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return UnRegistered(UnRegisteredFields(fields.requestID!)); + return UnRegistered(fields.requestID!); } @override diff --git a/lib/src/messages/unsubscribe.dart b/lib/src/messages/unsubscribe.dart index 24c3c58..7649434 100644 --- a/lib/src/messages/unsubscribe.dart +++ b/lib/src/messages/unsubscribe.dart @@ -22,7 +22,11 @@ class UnSubscribeFields implements IUnSubscribeFields { } class UnSubscribe implements Message { - UnSubscribe(this._unSubscribeFields); + UnSubscribe(int requestID, int subscriptionID) { + _unSubscribeFields = UnSubscribeFields(requestID, subscriptionID); + } + + UnSubscribe.withFields(this._unSubscribeFields); static const int id = 34; @@ -38,7 +42,7 @@ class UnSubscribe implements Message { }, ); - final IUnSubscribeFields _unSubscribeFields; + late IUnSubscribeFields _unSubscribeFields; int get requestID => _unSubscribeFields.requestID; @@ -47,7 +51,7 @@ class UnSubscribe implements Message { static UnSubscribe parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return UnSubscribe(UnSubscribeFields(fields.requestID!, fields.subscriptionID!)); + return UnSubscribe(fields.requestID!, fields.subscriptionID!); } @override diff --git a/lib/src/messages/unsubscribed.dart b/lib/src/messages/unsubscribed.dart index c98c9dc..dfa6f50 100644 --- a/lib/src/messages/unsubscribed.dart +++ b/lib/src/messages/unsubscribed.dart @@ -16,7 +16,11 @@ class UnSubscribedFields implements IUnSubscribedFields { } class UnSubscribed implements Message { - UnSubscribed(this._unSubscribedFields); + UnSubscribed(int requestID) { + _unSubscribedFields = UnSubscribedFields(requestID); + } + + UnSubscribed.withFields(this._unSubscribedFields); static const int id = 35; @@ -31,14 +35,14 @@ class UnSubscribed implements Message { }, ); - final IUnSubscribedFields _unSubscribedFields; + late IUnSubscribedFields _unSubscribedFields; int get requestID => _unSubscribedFields.requestID; static UnSubscribed parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return UnSubscribed(UnSubscribedFields(fields.requestID!)); + return UnSubscribed(fields.requestID!); } @override diff --git a/lib/src/messages/welcome.dart b/lib/src/messages/welcome.dart index e5bd89d..f78c3be 100644 --- a/lib/src/messages/welcome.dart +++ b/lib/src/messages/welcome.dart @@ -52,7 +52,18 @@ class WelcomeFields implements IWelcomeFields { } class Welcome implements Message { - Welcome(this._welcomeFields); + Welcome( + int sessionID, + Map roles, + String authid, + String authRole, + String authMethod, { + Map? authExtra, + }) { + _welcomeFields = WelcomeFields(sessionID, roles, authid, authRole, authMethod, authExtra: authExtra); + } + + Welcome.withFields(this._welcomeFields); static const int id = 2; static const String text = "WELCOME"; @@ -67,7 +78,7 @@ class Welcome implements Message { }, ); - final IWelcomeFields _welcomeFields; + late IWelcomeFields _welcomeFields; int get sessionID => _welcomeFields.sessionID; @@ -97,7 +108,7 @@ class Welcome implements Message { authExtra = validateMapOrRaise(fields.details!["authextra"], text, "authextra"); } - return Welcome(WelcomeFields(fields.sessionID!, roles, authid, authRole, authMethod, authExtra: authExtra)); + return Welcome(fields.sessionID!, roles, authid, authRole, authMethod, authExtra: authExtra); } @override diff --git a/lib/src/messages/yield.dart b/lib/src/messages/yield.dart index cda9d57..27aaa51 100644 --- a/lib/src/messages/yield.dart +++ b/lib/src/messages/yield.dart @@ -41,7 +41,11 @@ class YieldFields implements IYieldFields { } class Yield implements Message { - Yield(this._yieldFields); + Yield(int requestID, {List? args, Map? kwargs, Map? options}) { + _yieldFields = YieldFields(requestID, args: args, kwargs: kwargs, options: options); + } + + Yield.withYield(this._yieldFields); static const int id = 70; @@ -59,7 +63,7 @@ class Yield implements Message { }, ); - final IYieldFields _yieldFields; + late IYieldFields _yieldFields; int get requestID => _yieldFields.requestID; @@ -72,7 +76,7 @@ class Yield implements Message { static Yield parse(final List message) { var fields = validateMessage(message, id, text, _validationSpec); - return Yield(YieldFields(fields.requestID!, args: fields.args, kwargs: fields.kwargs, options: fields.options)); + return Yield(fields.requestID!, args: fields.args, kwargs: fields.kwargs, options: fields.options); } @override diff --git a/test/auth/anonymous.dart b/test/auth/anonymous.dart index 32a6275..31d87f6 100644 --- a/test/auth/anonymous.dart +++ b/test/auth/anonymous.dart @@ -18,7 +18,7 @@ void main() { }); test("authenticate", () { - final challenge = Challenge(ChallengeFields(authenticator.authMethod, {"challenge": "test"})); + final challenge = Challenge(authenticator.authMethod, {"challenge": "test"}); expect(() => authenticator.authenticate(challenge), throwsA(isA())); }); }); diff --git a/test/auth/cryptosign_test.dart b/test/auth/cryptosign_test.dart index a4ace80..8212b42 100644 --- a/test/auth/cryptosign_test.dart +++ b/test/auth/cryptosign_test.dart @@ -21,8 +21,7 @@ void main() { }); test("authenticate", () { - final authenticate = - authenticator.authenticate(Challenge(ChallengeFields("cryptosign", {"challenge": challenge}))); + final authenticate = authenticator.authenticate(Challenge("cryptosign", {"challenge": challenge})); expect(authenticate.signature, signature + challenge); }); }); diff --git a/test/auth/ticket_test.dart b/test/auth/ticket_test.dart index e1536ea..d72ad44 100644 --- a/test/auth/ticket_test.dart +++ b/test/auth/ticket_test.dart @@ -18,7 +18,7 @@ void main() { }); test("authenticate", () { - final challenge = Challenge(ChallengeFields(authenticator.authMethod, {"challenge": "test"})); + final challenge = Challenge(authenticator.authMethod, {"challenge": "test"}); final authenticate = authenticator.authenticate(challenge); expect(authenticate.signature, isNotNull); expect(authenticate.signature, ticket); diff --git a/test/auth/wampcra_test.dart b/test/auth/wampcra_test.dart index 29bb144..eca06c7 100644 --- a/test/auth/wampcra_test.dart +++ b/test/auth/wampcra_test.dart @@ -14,7 +14,7 @@ void main() { group("WAMPCRAAuthenticator", () { test("authenticate", () { final authenticator = WAMPCRAAuthenticator(key, "authID", {}); - final challenge = Challenge(ChallengeFields("wampcra", {"challenge": craChallenge})); + final challenge = Challenge("wampcra", {"challenge": craChallenge}); final authenticate = authenticator.authenticate(challenge); expect(authenticate.signature, validSignature); diff --git a/test/broker_test.dart b/test/broker_test.dart index d3f2e1e..1f2fdc5 100644 --- a/test/broker_test.dart +++ b/test/broker_test.dart @@ -26,7 +26,7 @@ void main() { var details = SessionDetails(1, "realm1", "authid", "authrole"); broker.addSession(details); - var subscribe = Subscribe(SubscribeFields(1, topicName)); + var subscribe = Subscribe(1, topicName); var messagesWithRecipient = broker.receiveMessage(1, subscribe); expect(messagesWithRecipient!.recipient, 1); expect(messagesWithRecipient.message, isA()); @@ -40,7 +40,7 @@ void main() { }); test("unsubscribing from a topic", () { - var unSubscribe = UnSubscribe(UnSubscribeFields(1, 1)); + var unSubscribe = UnSubscribe(1, 1); var messagesWithRecipient = broker.receiveMessage(1, unSubscribe); expect(messagesWithRecipient!.recipient, 1); expect(messagesWithRecipient.message, isA()); @@ -53,7 +53,7 @@ void main() { expect(() => broker.receiveMessage(2, unSubscribe), throwsException); // unsubscribe with invalid subscriptionID - var invalidUnSubscribe = UnSubscribe(UnSubscribeFields(1, 2)); + var invalidUnSubscribe = UnSubscribe(1, 2); expect(() => broker.receiveMessage(1, invalidUnSubscribe), throwsException); // unsubscribe with non-existing subscriptionID @@ -61,24 +61,24 @@ void main() { }); test("publishing to a topic", () { - var subscribe = Subscribe(SubscribeFields(1, topicName)); + var subscribe = Subscribe(1, topicName); broker.receiveMessage(1, subscribe); - var publish = Publish(PublishFields(1, topicName, args: [1, 2, 3])); + var publish = Publish(1, topicName, args: [1, 2, 3]); var messagesWithRecipient = broker.receivePublish(1, publish); expect(messagesWithRecipient.recipients!.length, 1); expect(messagesWithRecipient.event, isA()); expect(messagesWithRecipient.ack, null); // publish message to a topic with no subscribers - var publishNoSubscriber = Publish(PublishFields(2, "topic1", args: [1, 2, 3])); + var publishNoSubscriber = Publish(2, "topic1", args: [1, 2, 3]); var messages = broker.receivePublish(1, publishNoSubscriber); expect(messages.recipients!.length, 0); expect(messages.event, null); expect(messages.ack, null); // publish with acknowledge true - var publishAcknowledge = Publish(PublishFields(2, topicName, args: [1, 2, 3], options: {"acknowledge": true})); + var publishAcknowledge = Publish(2, topicName, args: [1, 2, 3], options: {"acknowledge": true}); var msgWithRecipient = broker.receivePublish(1, publishAcknowledge); expect(msgWithRecipient.recipients!.length, 1); expect(msgWithRecipient.event, isA()); @@ -89,7 +89,7 @@ void main() { }); test("receive invalid message", () { - var call = Call(CallFields(1, topicName)); + var call = Call(1, topicName); expect(() => broker.receiveMessage(1, call), throwsException); }); }); diff --git a/test/dealer_test.dart b/test/dealer_test.dart index 07b6efc..737e5bd 100644 --- a/test/dealer_test.dart +++ b/test/dealer_test.dart @@ -27,7 +27,7 @@ void main() { var details = SessionDetails(1, "realm1", "authid", "authrole"); dealer.addSession(details); - final registerMessage = Register(RegisterFields(1, procedureName)); + final registerMessage = Register(1, procedureName); final messageWithRecipient = dealer.receiveMessage(1, registerMessage); expect(messageWithRecipient.recipient, 1); expect(messageWithRecipient.message, isA()); @@ -50,13 +50,13 @@ void main() { }); test("call a procedure and receive yield for invocation", () { - var callMessage = Call(CallFields(1, procedureName)); + var callMessage = Call(1, procedureName); var messageWithRecipient = dealer.receiveMessage(1, callMessage); expect(messageWithRecipient.recipient, 1); expect(messageWithRecipient.message, isA()); // call a non-existing procedure - var invalidCallMessage = Call(CallFields(1, "invalid")); + var invalidCallMessage = Call(1, "invalid"); var errMsgWithRecipient = dealer.receiveMessage(1, invalidCallMessage); expect(errMsgWithRecipient.message, isA()); var errMsg = errMsgWithRecipient.message as Error; @@ -64,7 +64,7 @@ void main() { // process yield message correctly var invocation = messageWithRecipient.message as Invocation; - var yieldMessage = Yield(YieldFields(invocation.requestID)); + var yieldMessage = Yield(invocation.requestID); var resultMsgWithRecipient = dealer.receiveMessage(1, yieldMessage); expect(resultMsgWithRecipient.recipient, 1); expect(resultMsgWithRecipient.message, isA()); @@ -74,11 +74,11 @@ void main() { // receive yield with invalid sessionID var msg = dealer.receiveMessage(1, callMessage).message as Invocation; - expect(() => dealer.receiveMessage(3, Yield(YieldFields(msg.requestID))), throwsException); + expect(() => dealer.receiveMessage(3, Yield(msg.requestID)), throwsException); }); test("unregister a procedure", () { - var unRegister = UnRegister(UnRegisterFields(1, 1)); + var unRegister = UnRegister(1, 1); var messagesWithRecipient = dealer.receiveMessage(1, unRegister); expect(messagesWithRecipient.recipient, 1); expect(messagesWithRecipient.message, isA()); @@ -91,7 +91,7 @@ void main() { expect(() => dealer.receiveMessage(2, unRegister), throwsException); // unregister with invalid registrationID - var invalidUnRegister = UnRegister(UnRegisterFields(1, 2)); + var invalidUnRegister = UnRegister(1, 2); expect(() => dealer.receiveMessage(1, invalidUnRegister), throwsException); // unregister with non-existing registrationID @@ -99,7 +99,7 @@ void main() { }); test("receive invalid message", () { - final subscribe = Subscribe(SubscribeFields(1, procedureName)); + final subscribe = Subscribe(1, procedureName); expect(() => dealer.receiveMessage(1, subscribe), throwsException); }); @@ -110,17 +110,17 @@ void main() { ..addSession(SessionDetails(3, "realm1", "authid", "authrole")) ..addSession(SessionDetails(4, "realm1", "authid", "authrole")); - var register = Register(RegisterFields(1, "foo.bar")); + var register = Register(1, "foo.bar"); dealer.receiveMessage(calleeId, register); - var call = Call(CallFields(2, "foo.bar", options: {optionReceiveProgress: true})); + var call = Call(2, "foo.bar", options: {optionReceiveProgress: true}); var messageWithRecipient = dealer.receiveMessage(callerId, call); expect(messageWithRecipient.recipient, calleeId); var invMsg = messageWithRecipient.message as Invocation; expect(invMsg.details[optionReceiveProgress], isTrue); for (var i = 0; i < 10; i++) { - var yield = Yield(YieldFields(invMsg.requestID, options: {optionProgress: true})); + var yield = Yield(invMsg.requestID, options: {optionProgress: true}); var msgWithRecipient = dealer.receiveMessage(calleeId, yield); expect(messageWithRecipient.recipient, calleeId); var resultMsg = msgWithRecipient.message as Result; @@ -128,14 +128,14 @@ void main() { expect(resultMsg.details[optionProgress], isTrue); } - var yield = Yield(YieldFields(invMsg.requestID)); + var yield = Yield(invMsg.requestID); var msg = dealer.receiveMessage(calleeId, yield); expect(msg.recipient, callerId); var resultMsg = msg.message as Result; expect(resultMsg.requestID, equals(call.requestID)); expect(resultMsg.details[optionProgress] ?? false, isFalse); - var nonPendingYield = Yield(YieldFields(resultMsg.requestID)); + var nonPendingYield = Yield(resultMsg.requestID); expect( () => dealer.receiveMessage(calleeId, nonPendingYield), throwsA(predicate((e) => e is Exception && e.toString().contains("no pending calls for session"))), diff --git a/test/session_test.dart b/test/session_test.dart index eb64e83..7945f7e 100644 --- a/test/session_test.dart +++ b/test/session_test.dart @@ -13,137 +13,137 @@ void main() { group("sendMessage & receiveMessage", () { test("send Register message and receive Registered message", () { - final register = Register(RegisterFields(2, "io.xconn.test")); + final register = Register(2, "io.xconn.test"); var toSend = session.sendMessage(register); expect(toSend, '[${Register.id},${register.requestID},${register.options},"${register.uri}"]'); - final registered = Registered(RegisteredFields(2, 3)); + final registered = Registered(2, 3); var received = session.receiveMessage(registered); expect(received, equals(registered)); }); test("send Call message and receive Result", () { - final call = Call(CallFields(10, "io.xconn.test")); + final call = Call(10, "io.xconn.test"); var toSend = session.sendMessage(call); expect(toSend, '[${Call.id},${call.requestID},${call.options},"${call.uri}"]'); - final result = Result(ResultFields(10)); + final result = Result(10); var received = session.receiveMessage(result); expect(received, equals(result)); }); test("receive Invocation and send Yield for that invocation", () { - final invocation = Invocation(InvocationFields(4, 3)); + final invocation = Invocation(4, 3); var toSend = session.receiveMessage(invocation); expect(toSend, equals(invocation)); - final yield = Yield(YieldFields(4)); + final yield = Yield(4); var received = session.sendMessage(yield); expect(received, "[70,4,{}]"); }); test("send UnRegister message and receive UnRegistered message", () { - final unregister = UnRegister(UnRegisterFields(3, 3)); + final unregister = UnRegister(3, 3); var toSend = session.sendMessage(unregister); expect(toSend, "[${UnRegister.id},${unregister.requestID},${unregister.registrationID}]"); - final unregistered = UnRegistered(UnRegisteredFields(3)); + final unregistered = UnRegistered(3); var received = session.receiveMessage(unregistered); expect(received, equals(unregistered)); }); test("send Publish message with acknowledge true and receive Published message", () { - final publish = Publish(PublishFields(6, "topic", options: {"acknowledge": true})); + final publish = Publish(6, "topic", options: {"acknowledge": true}); var toSend = session.sendMessage(publish); expect(toSend, '[${Publish.id},${publish.requestID},${jsonEncode(publish.options)},"${publish.uri}"]'); - final published = Published(PublishedFields(6, 6)); + final published = Published(6, 6); var received = session.receiveMessage(published); expect(received, equals(published)); }); test("send Subscribe message, receive Subscribed message and receive Event for subscription", () { - final subscribe = Subscribe(SubscribeFields(7, "topic")); + final subscribe = Subscribe(7, "topic"); var toSend = session.sendMessage(subscribe); expect(toSend, '[${Subscribe.id},${subscribe.requestID},${subscribe.options},"${subscribe.topic}"]'); - final subscribed = Subscribed(SubscribedFields(7, 8)); + final subscribed = Subscribed(7, 8); var received = session.receiveMessage(subscribed); expect(received, equals(subscribed)); - final event = Event(EventFields(8, 6)); + final event = Event(8, 6); var receivedEvent = session.receiveMessage(event); expect(receivedEvent, equals(event)); }); test("send UnSubscribe message and receive UnSubscribed message", () { - final unsubscribe = UnSubscribe(UnSubscribeFields(8, 8)); + final unsubscribe = UnSubscribe(8, 8); var toSend = session.sendMessage(unsubscribe); expect(toSend, "[${UnSubscribe.id},${unsubscribe.requestID},${unsubscribe.subscriptionID}]"); - final unsubscribed = UnSubscribed(UnSubscribedFields(8)); + final unsubscribed = UnSubscribed(8); var received = session.receiveMessage(unsubscribed); expect(received, equals(unsubscribed)); }); }); test("send error message correctly", () { - final error = Error(ErrorFields(Invocation.id, 10, errProcedureAlreadyExists)); + final error = Error(Invocation.id, 10, errProcedureAlreadyExists); var toSend = session.sendMessage(error); expect(toSend, '[${Error.id},${Invocation.id},${error.requestID},${error.details},"${error.uri}"]'); }); group("receive error message correctly", () { test("send Call message and receive Error for that Call", () { - final call = Call(CallFields(1, "io.xconn.test")); + final call = Call(1, "io.xconn.test"); session.sendMessage(call); - final callErr = Error(ErrorFields(Call.id, call.requestID, errInvalidArgument)); + final callErr = Error(Call.id, call.requestID, errInvalidArgument); var received = session.receiveMessage(callErr); expect(received, callErr); }); test("send Register message and receive Error for that Register", () { - final register = Register(RegisterFields(2, "io.xconn.test")); + final register = Register(2, "io.xconn.test"); session.sendMessage(register); - final registerErr = Error(ErrorFields(Register.id, register.requestID, errInvalidArgument)); + final registerErr = Error(Register.id, register.requestID, errInvalidArgument); var received = session.receiveMessage(registerErr); expect(received, registerErr); }); test("send UnRegister message and receive Error for that UnRegister", () { - final unregister = UnRegister(UnRegisterFields(3, 3)); + final unregister = UnRegister(3, 3); session.sendMessage(unregister); - final unregisterErr = Error(ErrorFields(UnRegister.id, unregister.requestID, errInvalidArgument)); + final unregisterErr = Error(UnRegister.id, unregister.requestID, errInvalidArgument); var received = session.receiveMessage(unregisterErr); expect(received, unregisterErr); }); test("send Subscribe message and receive Error for that Subscribe", () { - final subscribe = Subscribe(SubscribeFields(7, "topic")); + final subscribe = Subscribe(7, "topic"); session.sendMessage(subscribe); - final subscribeError = Error(ErrorFields(Subscribe.id, subscribe.requestID, errInvalidURI)); + final subscribeError = Error(Subscribe.id, subscribe.requestID, errInvalidURI); var received = session.receiveMessage(subscribeError); expect(received, subscribeError); }); test("send UnSubscribe message and receive Error for that UnSubscribe", () { - final unsubscribe = UnSubscribe(UnSubscribeFields(8, 8)); + final unsubscribe = UnSubscribe(8, 8); session.sendMessage(unsubscribe); - final unsubscribeError = Error(ErrorFields(UnSubscribe.id, unsubscribe.requestID, errInvalidURI)); + final unsubscribeError = Error(UnSubscribe.id, unsubscribe.requestID, errInvalidURI); var received = session.receiveMessage(unsubscribeError); expect(received, unsubscribeError); }); test("send Publish message and receive Error for that Publish", () { - final publish = Publish(PublishFields(6, "topic", options: {"acknowledge": true})); + final publish = Publish(6, "topic", options: {"acknowledge": true}); session.sendMessage(publish); - final publishErr = Error(ErrorFields(Publish.id, publish.requestID, errInvalidURI)); + final publishErr = Error(Publish.id, publish.requestID, errInvalidURI); var received = session.receiveMessage(publishErr); expect(received, publishErr); }); @@ -151,39 +151,39 @@ void main() { test("exceptions", () { // send Yield for unknown invocation - final invalidYield = Yield(YieldFields(5)); + final invalidYield = Yield(5); expect(() => session.sendMessage(invalidYield), throwsArgumentError); // send error for invalid message - final invalidError = Error(ErrorFields(Register.id, 10, errProcedureAlreadyExists)); + final invalidError = Error(Register.id, 10, errProcedureAlreadyExists); expect(() => session.sendMessage(invalidError), throwsArgumentError); // send invalid message - final invalidMessage = Registered(RegisteredFields(11, 12)); + final invalidMessage = Registered(11, 12); expect(() => session.sendMessage(invalidMessage), throwsException); // receive invalid message - expect(() => session.receiveMessage(Register(RegisterFields(100, "io.xconn.test"))), throwsException); + expect(() => session.receiveMessage(Register(100, "io.xconn.test")), throwsException); // receive error for invalid message - expect(() => session.receiveMessage(Error(ErrorFields(Registered.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(Registered.id, 100, errInvalidArgument)), throwsException); // receive error invalid Call id - expect(() => session.receiveMessage(Error(ErrorFields(Call.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(Call.id, 100, errInvalidArgument)), throwsException); // receive error Register id - expect(() => session.receiveMessage(Error(ErrorFields(Register.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(Register.id, 100, errInvalidArgument)), throwsException); // receive error invalid UnRegister id - expect(() => session.receiveMessage(Error(ErrorFields(UnRegister.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(UnRegister.id, 100, errInvalidArgument)), throwsException); // receive error invalid Subscribe id - expect(() => session.receiveMessage(Error(ErrorFields(Subscribe.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(Subscribe.id, 100, errInvalidArgument)), throwsException); // receive error invalid UnSubscribe id - expect(() => session.receiveMessage(Error(ErrorFields(UnSubscribe.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(UnSubscribe.id, 100, errInvalidArgument)), throwsException); // receive error invalid Publish id - expect(() => session.receiveMessage(Error(ErrorFields(Publish.id, 100, errInvalidArgument))), throwsException); + expect(() => session.receiveMessage(Error(Publish.id, 100, errInvalidArgument)), throwsException); }); }