from unittest import mock, TestCase
from asynctest import TestCase as AsyncTestCase
from ....connections.messages.connection_invitation import ConnectionInvitation
from ..forward_invitation import ForwardInvitation
from ...message_types import FORWARD_INVITATION
[docs]class TestConfig:
label = "Label"
did = "did:sov:QmWbsNYhMrjHiqZDTUTEJs"
endpoint_url = "https://example.com/endpoint"
endpoint_did = "did:sov:A2wBhNYhMrjHiqZDTUYH7u"
key = "8HH5gYEeNc3z7PYXmd54d4x6qAfCNrqQqEB3nS7Zfu7K"
test_message = "test message"
[docs]class TestForwardInvitation(TestCase, TestConfig):
[docs] def setUp(self):
self.connection_invitation = ConnectionInvitation(
label=self.label, recipient_keys=[self.key], endpoint=self.endpoint_url
)
self.invitation = ForwardInvitation(
invitation=self.connection_invitation, message=self.test_message
)
[docs] def test_init(self):
"""Test initialization."""
assert self.invitation.invitation == self.connection_invitation
assert self.invitation.message == self.test_message
[docs] def test_type(self):
"""Test type."""
assert self.invitation._type == FORWARD_INVITATION
[docs] @mock.patch(
"aries_cloudagent.messaging.introduction.messages."
+ "forward_invitation.ForwardInvitationSchema.load"
)
def test_deserialize(self, mock_invitation_schema_load):
"""
Test deserialization.
"""
obj = {"obj": "obj"}
invitation = ForwardInvitation.deserialize(obj)
mock_invitation_schema_load.assert_called_once_with(obj)
assert invitation is mock_invitation_schema_load.return_value
[docs] @mock.patch(
"aries_cloudagent.messaging.introduction.messages."
+ "forward_invitation.ForwardInvitationSchema.dump"
)
def test_serialize(self, mock_invitation_schema_dump):
"""
Test serialization.
"""
invitation_dict = self.invitation.serialize()
mock_invitation_schema_dump.assert_called_once_with(self.invitation)
assert invitation_dict is mock_invitation_schema_dump.return_value
[docs]class TestForwardInvitationSchema(AsyncTestCase, TestConfig):
"""Test forward invitation schema."""
[docs] async def test_make_model(self):
invitation = ForwardInvitation(
invitation=ConnectionInvitation(
label=self.label, recipient_keys=[self.key], endpoint=self.endpoint_url
),
message=self.test_message,
)
data = invitation.serialize()
model_instance = ForwardInvitation.deserialize(data)
assert type(model_instance) is type(invitation)