diff --git a/tests/abri/abri_relay_getscstenantdata_multitenant_response.xml b/tests/abri/abri_relay_getscstenantdata_multitenant_response.xml
new file mode 100644
index 000000000..d95e3ce81
--- /dev/null
+++ b/tests/abri/abri_relay_getscstenantdata_multitenant_response.xml
@@ -0,0 +1,8 @@
+
+ 10071650064015400721609261195827
+
+ 400721509286114923
+ 02769674129
+
+
+
diff --git a/tests/orchestration/test_tenant_data_sync_orchestrator.py b/tests/orchestration/test_tenant_data_sync_orchestrator.py
index 771abdb9d..3ed1272aa 100644
--- a/tests/orchestration/test_tenant_data_sync_orchestrator.py
+++ b/tests/orchestration/test_tenant_data_sync_orchestrator.py
@@ -136,3 +136,79 @@ def test_run_creates_an_associated_deal_contact_per_signatory_and_returns_a_summ
)
],
)
+
+
+def test_run_creates_a_separate_contact_for_each_signatory(
+ orchestrator: TenantDataSyncOrchestrator,
+ mock_session: MagicMock,
+ sdk_client: MagicMock,
+) -> None:
+ # Arrange
+ mock_session.post.return_value.content = _load_fixture(
+ "abri_relay_getscstenantdata_multitenant_response.xml"
+ )
+ sdk_client.crm.contacts.basic_api.create.side_effect = [
+ MagicMock(id="60123"),
+ MagicMock(id="60124"),
+ ]
+
+ # Act
+ result = orchestrator.run(PLACE_REF, deal_id=DEAL_ID)
+
+ # Assert
+ assert result == TenantDataSyncSummary(
+ tenancy_reference="10071650064015",
+ contact_ids=("60123", "60124"),
+ vulnerable_contact_count=0,
+ )
+ created_properties = [
+ call.kwargs["simple_public_object_input_for_create"].properties
+ for call in sdk_client.crm.contacts.basic_api.create.call_args_list
+ ]
+ assert created_properties == [
+ {
+ "firstname": "Harper",
+ "lastname": "Solecka",
+ "mobilephone": "09261195827",
+ "is_vulnerable": "false",
+ },
+ {
+ "firstname": "Naoimh",
+ "lastname": "Malyar",
+ "mobilephone": "09286114923",
+ "phone": "02769674129",
+ "is_vulnerable": "false",
+ },
+ ]
+ associated_contact_ids = [
+ call.kwargs["to_object_id"]
+ for call in sdk_client.crm.associations.v4.basic_api.create.call_args_list
+ ]
+ assert associated_contact_ids == ["60123", "60124"]
+
+
+def test_run_still_creates_a_contact_for_an_all_blank_signatory(
+ orchestrator: TenantDataSyncOrchestrator,
+ mock_session: MagicMock,
+ sdk_client: MagicMock,
+) -> None:
+ # Arrange
+ mock_session.post.return_value.content = _tenancy_response(
+ '4007216'
+ ''
+ )
+
+ # Act
+ result = orchestrator.run(PLACE_REF, deal_id=DEAL_ID)
+
+ # Assert
+ assert result == TenantDataSyncSummary(
+ tenancy_reference="10042020051017",
+ contact_ids=("60123",),
+ vulnerable_contact_count=0,
+ )
+ sdk_client.crm.contacts.basic_api.create.assert_called_once_with(
+ simple_public_object_input_for_create=SimplePublicObjectInputForCreate(
+ properties={"is_vulnerable": "false"}
+ )
+ )