def test_delete_relationship(self, delete_relationship):
        fake_endpoint = 'endpoint'
        fake_credential = 'credential'
        fake_digital_twin_id = 'digital_twin_id'
        fake_relationship_id = 'relationship_id'
        digital_twin_client = DigitalTwinsClient(fake_endpoint, fake_credential)

        digital_twin_client.delete_relationship(fake_digital_twin_id, fake_relationship_id)
        delete_relationship.assert_called_with(
            fake_digital_twin_id,
            fake_relationship_id,
            if_match=None
        )
    def test_delete_relationship_with_kwargs(self, delete_relationship):
        fake_endpoint = 'endpoint'
        fake_credential = 'credential'
        fake_digital_twin_id = 'digital_twin_id'
        fake_relationship_id = 'relationship_id'
        fake_etag = 'etag'
        fake_kwargs = {'par1_key':'par1_val', 'par2_key':2}
        digital_twin_client = DigitalTwinsClient(fake_endpoint, fake_credential)

        digital_twin_client.delete_relationship(
            fake_digital_twin_id,
            fake_relationship_id,
            **fake_kwargs
        )
        delete_relationship.assert_called_with(
            fake_digital_twin_id,
            fake_relationship_id,
            if_match=None,
            **fake_kwargs
        )
    def test_delete_relationship_with_etag(self, delete_relationship):
        fake_endpoint = 'endpoint'
        fake_credential = 'credential'
        fake_digital_twin_id = 'digital_twin_id'
        fake_relationship_id = 'relationship_id'
        fake_etag = 'etag'
        digital_twin_client = DigitalTwinsClient(fake_endpoint, fake_credential)

        digital_twin_client.delete_relationship(
            fake_digital_twin_id,
            fake_relationship_id,
            etag=fake_etag,
            match_condition=MatchConditions.IfPresent
        )
        delete_relationship.assert_called_with(
            fake_digital_twin_id,
            fake_relationship_id,
            if_match='*',
            etag=fake_etag,
            match_condition=MatchConditions.IfPresent
        )
    # Create event route
    event_route_id = 'eventRoute-' + str(uuid.uuid4())
    event_filter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'"
    service_client.upsert_event_route(event_route_id, event_hub_endpoint_name,
                                      **{"filter": event_filter})

    # Get event route
    created_event_route = service_client.get_event_route(event_route_id)
    print('Created Event Route:')
    print(created_event_route)

    # Clean up
    service_client.delete_event_route(event_route_id)

    for relationship in dtdl_relationships:
        service_client.delete_relationship(relationship["$sourceId"],
                                           relationship["$relationshipId"])

    service_client.delete_digital_twin(building_twin_id)
    service_client.delete_digital_twin(floor_twin_id)
    service_client.delete_digital_twin(hvac_twin_id)
    service_client.delete_digital_twin(room_twin_id)

    service_client.decommission_model(building_twin_id)
    service_client.decommission_model(floor_twin_id)
    service_client.decommission_model(hvac_twin_id)
    service_client.decommission_model(room_twin_id)

    service_client.delete_model(building_twin_id)
    service_client.delete_model(floor_twin_id)
    service_client.delete_model(hvac_twin_id)
    service_client.delete_model(room_twin_id)