+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 17 30
+ cr_equal 0 received_callbacks?id=type-status1 11
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type101 testdata/ics/info-type-1.json REGISTERED type101 testdata/ics/info-type-1.json DEREGISTERED type101 testdata/ics/info-type-1.json REGISTERED
+else
+ cr_equal 0 received_callbacks 6
+fi
+
+ics_api_edp_get_type_ids 200 type101 type1 type2 type4 type6
+ics_api_edp_get_type_2 200 type101 testdata/ics/info-type-1.json
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-b prod-c prod-d prod-e
+ics_api_edp_get_producer_ids_2 200 type101 prod-ia
+ics_api_edp_get_producer_ids_2 200 type102 EMPTY
+
+ics_api_edp_get_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
+
+ics_api_edp_get_producer_status 200 prod-ia ENABLED
+
+ics_api_idc_get_job_ids 200 type101 NOWNER EMPTY
+ics_api_idc_get_job_ids 200 type101 test-owner EMPTY
+
+ics_api_idc_get_job 404 test-job
+
+ics_api_idc_get_job_status2 404 test-job
+ics_api_edp_get_producer_jobs_2 200 prod-ia EMPTY
+
+## Create a job for prod-ia
+## job101 - prod-ia
+ics_api_idc_put_job 201 job101 type101 $TARGET101 info-owner-1 $INFOSTATUS101 testdata/ics/job-template.json VALIDATE
+
+# Check the job data in the producer
+prodstub_check_jobdata_3 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json
+
+ics_api_idc_get_job_ids 200 type101 NOWNER job101
+ics_api_idc_get_job_ids 200 type101 info-owner-1 job101
+
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job1 job2 job3 job8 job10
+
+ics_api_idc_get_job 200 job101 type101 $TARGET101 info-owner-1 $INFOSTATUS101 testdata/ics/job-template.json
+
+ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
+
+prodstub_equal create/prod-ia/job101 1
+
+ics_api_edp_get_producer_jobs_2 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json
+
+## Create a second job for prod-ia
+## job102 - prod-ia
+ics_api_idc_put_job 201 job102 type101 $TARGET102 info-owner-2 $INFOSTATUS102 testdata/ics/job-template.json VALIDATE
+
+# Check the job data in the producer
+prodstub_check_jobdata_3 200 prod-ia job102 type101 $TARGET102 info-owner-2 testdata/ics/job-template.json
+ics_api_idc_get_job_ids 200 type101 NOWNER job101 job102
+ics_api_idc_get_job_ids 200 type101 info-owner-1 job101
+ics_api_idc_get_job_ids 200 type101 info-owner-2 job102
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job1 job2 job3 job8 job10
+
+ics_api_idc_get_job 200 job102 type101 $TARGET102 info-owner-2 $INFOSTATUS102 testdata/ics/job-template.json
+
+ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
+
+prodstub_equal create/prod-ia/job102 1
+
+ics_api_edp_get_producer_jobs_2 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json job102 type101 $TARGET102 info-owner-2 testdata/ics/job-template.json
+
+
+## Setup prod-ib
+ics_api_edp_put_type_2 201 type102 testdata/ics/info-type-2.json
+ics_api_edp_put_producer_2 201 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 18 30
+ cr_equal 0 received_callbacks?id=type-status1 12
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type102 testdata/ics/info-type-2.json REGISTERED
+else
+ cr_equal 0 received_callbacks 6
+fi
+
+ics_api_idc_get_type_ids 200 type101 type102 type1 type2 type4 type6
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ ics_api_idc_get_type 200 type101 testdata/ics/info-type-1.json ENABLED 1
+
+ ics_api_idc_get_type 200 type102 testdata/ics/info-type-2.json ENABLED 1
+else
+ ics_api_idc_get_type 200 type101 testdata/ics/info-type-1.json
+
+ ics_api_idc_get_type 200 type102 testdata/ics/info-type-2.json
+fi
+
+ics_api_edp_get_type_ids 200 type101 type102 type1 type2 type4 type6
+ics_api_edp_get_type_2 200 type101 testdata/ics/info-type-1.json
+ics_api_edp_get_type_2 200 type102 testdata/ics/info-type-2.json
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
+ics_api_edp_get_producer_2 200 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
+
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+
+## Create job for prod-ib
+## job103 - prod-ib
+ics_api_idc_put_job 201 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template.json VALIDATE
+
+prodstub_equal create/prod-ib/job103 1
+
+# Check the job data in the producer
+prodstub_check_jobdata_3 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template.json
+
+ics_api_idc_get_job_ids 200 type101 NOWNER job101 job102
+ics_api_idc_get_job_ids 200 type102 NOWNER job103
+ics_api_idc_get_job_ids 200 type101 info-owner-1 job101
+ics_api_idc_get_job_ids 200 type101 info-owner-2 job102
+ics_api_idc_get_job_ids 200 type102 info-owner-3 job103
+
+ics_api_idc_get_job 200 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template.json
+
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+
+ics_api_edp_get_producer_jobs_2 200 prod-ia job101 type101 $TARGET101 info-owner-1 testdata/ics/job-template.json job102 type101 $TARGET102 info-owner-2 testdata/ics/job-template.json
+ics_api_edp_get_producer_jobs_2 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template.json
+
+## Setup prod-ic (no types)
+ics_api_edp_put_producer_2 201 prod-ic $CB_JOB/prod-ic $CB_SV/prod-ic NOTYPE
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_2 200 prod-ia $CB_JOB/prod-ia $CB_SV/prod-ia type101
+ics_api_edp_get_producer_2 200 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
+ics_api_edp_get_producer_2 200 prod-ic $CB_JOB/prod-ic $CB_SV/prod-ic EMPTY
+
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+
+
+## Delete job103 and prod-ib and re-create if different order
+
+# Delete job then producer
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job1 job2 job3 job8 job10
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
+
+ics_api_idc_delete_job 204 job103
+
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job1 job2 job3 job8 job10
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
+
+ics_api_edp_delete_producer 204 prod-ib
+
+ics_api_edp_get_producer_status 404 prod-ib
+
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job1 job2 job3 job8 job10
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ic prod-b prod-c prod-d prod-e
+
+prodstub_equal delete/prod-ib/job103 1
+
+ics_api_idc_put_job 201 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template.json VALIDATE
+ics_api_idc_get_job_status2 200 job103 DISABLED EMPTYPROD
+
+# Put producer then job
+ics_api_edp_put_producer_2 201 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
+
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+
+ics_api_idc_put_job 200 job103 type102 $TARGET103 info-owner-3 $INFOSTATUS103 testdata/ics/job-template2.json VALIDATE
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+
+prodstub_check_jobdata_3 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template2.json
+
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job1 job2 job3 job8 job10
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-b prod-c prod-d prod-e
+
+prodstub_equal create/prod-ib/job103 3
+prodstub_equal delete/prod-ib/job103 1
+
+# Delete only the producer
+ics_api_edp_delete_producer 204 prod-ib
+
+ics_api_edp_get_producer_status 404 prod-ib
+
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job1 job2 job3 job8 job10
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ic prod-b prod-c prod-d prod-e
+
+ics_api_idc_get_job_status2 200 job103 DISABLED EMPTYPROD
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 19 30
+
+ cr_equal 0 received_callbacks?id=info-job103-status 1
+ cr_api_check_all_ics_events 200 0 info-job103-status DISABLED
+else
+ cr_equal 0 received_callbacks 7 30
+ cr_equal 0 received_callbacks?id=info-job103-status 1
+ cr_api_check_all_ics_events 200 0 info-job103-status DISABLED
+fi
+
+# Re-create the producer
+ics_api_edp_put_producer_2 201 prod-ib $CB_JOB/prod-ib $CB_SV/prod-ib type102
+
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 20 30
+ cr_equal 0 received_callbacks?id=info-job103-status 2
+ cr_api_check_all_ics_events 200 0 info-job103-status ENABLED
+else
+ cr_equal 0 received_callbacks 8 30
+ cr_equal 0 received_callbacks?id=info-job103-status 2
+ cr_api_check_all_ics_events 200 0 info-job103-status ENABLED
+fi
+
+prodstub_check_jobdata_3 200 prod-ib job103 type102 $TARGET103 info-owner-3 testdata/ics/job-template2.json
+
+## Setup prod-id
+ics_api_edp_put_type_2 201 type104 testdata/ics/info-type-4.json
+ics_api_edp_put_producer_2 201 prod-id $CB_JOB/prod-id $CB_SV/prod-id type104
+
+ics_api_idc_get_job_ids 200 type104 NOWNER EMPTY
+
+ics_api_idc_put_job 201 job108 type104 $TARGET108 info-owner-4 $INFOSTATUS108 testdata/ics/job-template.json VALIDATE
+
+prodstub_check_jobdata_3 200 prod-id job108 type104 $TARGET108 info-owner-4 testdata/ics/job-template.json
+
+prodstub_equal create/prod-id/job108 1
+prodstub_equal delete/prod-id/job108 0
+
+ics_api_idc_get_job_ids 200 type104 NOWNER job108
+
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+
+# Re-PUT the producer with zero types
+ics_api_edp_put_producer_2 200 prod-id $CB_JOB/prod-id $CB_SV/prod-id NOTYPE
+
+ics_api_idc_get_job_ids 200 type104 NOWNER job108
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job108 job1 job2 job3 job8 job10
+
+ics_api_idc_get_job_status2 200 job108 DISABLED EMPTYPROD
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 22 30
+ cr_equal 0 received_callbacks?id=type-status1 13
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type104 testdata/ics/info-type-4.json REGISTERED
+
+ cr_equal 0 received_callbacks?id=info-job108-status 1
+ cr_api_check_all_ics_events 200 0 info-job108-status DISABLED
+else
+ cr_equal 0 received_callbacks 9 30
+ cr_equal 0 received_callbacks?id=info-job108-status 1
+ cr_api_check_all_ics_events 200 0 info-job108-status DISABLED
+fi
+
+prodstub_equal create/prod-id/job108 1
+prodstub_equal delete/prod-id/job108 0
+
+## Re-setup prod-id
+ics_api_edp_put_type_2 200 type104 testdata/ics/info-type-4.json
+ics_api_edp_put_producer_2 200 prod-id $CB_JOB/prod-id $CB_SV/prod-id type104
+
+
+ics_api_idc_get_job_ids 200 type104 NOWNER job108
+ics_api_idc_get_job_ids 200 NOTYPE NOWNER job101 job102 job103 job108 job1 job2 job3 job8 job10
+
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+
+ics_api_edp_get_producer_status 200 prod-ia ENABLED
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 24 30
+
+ cr_equal 0 received_callbacks?id=type-status1 14
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type104 testdata/ics/info-type-4.json REGISTERED
+
+ cr_equal 0 received_callbacks?id=info-job108-status 2
+ cr_api_check_all_ics_events 200 0 info-job108-status ENABLED
+else
+ cr_equal 0 received_callbacks 10 30
+ cr_equal 0 received_callbacks?id=info-job108-status 2
+ cr_api_check_all_ics_events 200 0 info-job108-status ENABLED
+fi
+
+prodstub_equal create/prod-id/job108 2
+prodstub_equal delete/prod-id/job108 0
+
+
+## Setup prod-ie
+ics_api_edp_put_type_2 201 type106 testdata/ics/info-type-6.json
+ics_api_edp_put_producer_2 201 prod-ie $CB_JOB/prod-ie $CB_SV/prod-ie type106
+
+ics_api_idc_get_job_ids 200 type106 NOWNER EMPTY
+
+ics_api_idc_put_job 201 job110 type106 $TARGET110 info-owner-4 $INFOSTATUS110 testdata/ics/job-template.json VALIDATE
+
+prodstub_check_jobdata_3 200 prod-ie job110 type106 $TARGET110 info-owner-4 testdata/ics/job-template.json
+
+prodstub_equal create/prod-ie/job110 1
+prodstub_equal delete/prod-ie/job110 0
+
+ics_api_idc_get_job_ids 200 type106 NOWNER job110
+
+ics_api_idc_get_job_status2 200 job110 ENABLED 1 prod-ie
+
+## Setup prod-if
+ics_api_edp_put_type_2 200 type106 testdata/ics/info-type-6.json
+ics_api_edp_put_producer_2 201 prod-if $CB_JOB/prod-if $CB_SV/prod-if type106
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 26 30
+
+ cr_equal 0 received_callbacks?id=type-status1 16
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type106 testdata/ics/info-type-6.json REGISTERED type106 testdata/ics/info-type-6.json REGISTERED
+fi
+
+
+ics_api_idc_get_job_ids 200 type106 NOWNER job110
+
+prodstub_check_jobdata_3 200 prod-if job110 type106 $TARGET110 info-owner-4 testdata/ics/job-template.json
+
+prodstub_equal create/prod-if/job110 1
+prodstub_equal delete/prod-if/job110 0
+
+ics_api_idc_get_job_ids 200 type106 NOWNER job110
+
+ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
+
+## Status updates prod-ia and jobs
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_status 200 prod-ia ENABLED
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie ENABLED
+ics_api_edp_get_producer_status 200 prod-if ENABLED
+
+# Arm producer prod-ia for supervision failure
+prodstub_arm_producer 200 prod-ia 400
+
+# Wait for producer prod-ia to go disabled
+ics_api_edp_get_producer_status 200 prod-ia DISABLED 360
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_status 200 prod-ia DISABLED
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie ENABLED
+ics_api_edp_get_producer_status 200 prod-if ENABLED
+
+
+ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
+ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
+
+# Arm producer prod-ia for supervision
+prodstub_arm_producer 200 prod-ia 200
+
+# Wait for producer prod-ia to go enabled
+ics_api_edp_get_producer_status 200 prod-ia ENABLED 360
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_status 200 prod-ia ENABLED
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie ENABLED
+ics_api_edp_get_producer_status 200 prod-if ENABLED
+
+ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
+ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
+
+# Arm producer prod-ia for supervision failure
+prodstub_arm_producer 200 prod-ia 400
+
+# Wait for producer prod-ia to go disabled
+ics_api_edp_get_producer_status 200 prod-ia DISABLED 360
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ia prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_status 200 prod-ia DISABLED
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie ENABLED
+ics_api_edp_get_producer_status 200 prod-if ENABLED
+
+ics_api_idc_get_job_status2 200 job101 ENABLED 1 prod-ia
+ics_api_idc_get_job_status2 200 job102 ENABLED 1 prod-ia
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
+
+# Wait for producer prod-ia to be removed
+if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPES"* ]]; then
+ ics_equal json:data-producer/v1/info-producers 9 1000
+else
+ ics_equal json:ei-producer/v1/eiproducers 9 1000
+fi
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+
+ics_api_edp_get_producer_status 404 prod-ia
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie ENABLED
+ics_api_edp_get_producer_status 200 prod-if ENABLED
+
+ics_api_idc_get_job_status2 200 job101 DISABLED EMPTYPROD
+ics_api_idc_get_job_status2 200 job102 DISABLED EMPTYPROD
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
+
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 28 30
+
+ cr_equal 0 received_callbacks?id=info-job101-status 1
+ cr_equal 0 received_callbacks?id=info-job102-status 1
+ cr_api_check_all_ics_events 200 0 info-job101-status DISABLED
+ cr_api_check_all_ics_events 200 0 info-job102-status DISABLED
+else
+ cr_equal 0 received_callbacks 12 30
+
+ cr_equal 0 received_callbacks?id=info-job101-status 1
+ cr_equal 0 received_callbacks?id=info-job102-status 1
+ cr_api_check_all_ics_events 200 0 info-job101-status DISABLED
+ cr_api_check_all_ics_events 200 0 info-job102-status DISABLED
+fi
+
+
+# Arm producer prod-ie for supervision failure
+prodstub_arm_producer 200 prod-ie 400
+
+ics_api_edp_get_producer_status 200 prod-ie DISABLED 1000
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_status 404 prod-ia
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie DISABLED
+ics_api_edp_get_producer_status 200 prod-if ENABLED
+
+ics_api_idc_get_job_status2 200 job101 DISABLED EMPTYPROD
+ics_api_idc_get_job_status2 200 job102 DISABLED EMPTYPROD
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+ics_api_idc_get_job_status2 200 job110 ENABLED 2 prod-ie prod-if
+
+#Disable create for job110 in prod-ie
+prodstub_arm_job_create 200 prod-ie job110 400
+
+#Update tjob 10 - only prod-if will be updated
+ics_api_idc_put_job 200 job110 type106 $TARGET110 info-owner-4 $INFOSTATUS110 testdata/ics/job-template2.json VALIDATE
+#Reset producer and job responses
+prodstub_arm_producer 200 prod-ie 200
+prodstub_arm_job_create 200 prod-ie job110 200
+
+ics_api_edp_get_producer_status 200 prod-ie ENABLED 360
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-if prod-b prod-c prod-d prod-e
+
+#Wait for job to be updated
+sleep_wait 120
+
+prodstub_check_jobdata_3 200 prod-if job110 type106 $TARGET110 info-owner-4 testdata/ics/job-template2.json
+
+prodstub_arm_producer 200 prod-if 400
+
+ics_api_edp_get_producer_status 200 prod-if DISABLED 360
+
+if [[ "$ICS_FEATURE_LEVEL" == *"INFO-TYPES"* ]]; then
+ ics_equal json:data-producer/v1/info-producers 8 1000
+else
+ ics_equal json:ei-producer/v1/eiproducers 8 1000
+fi
+
+ics_api_edp_get_producer_ids_2 200 NOTYPE prod-ib prod-ic prod-id prod-ie prod-b prod-c prod-d prod-e
+
+ics_api_edp_get_producer_status 404 prod-ia
+ics_api_edp_get_producer_status 200 prod-ib ENABLED
+ics_api_edp_get_producer_status 200 prod-ic ENABLED
+ics_api_edp_get_producer_status 200 prod-id ENABLED
+ics_api_edp_get_producer_status 200 prod-ie ENABLED
+ics_api_edp_get_producer_status 404 prod-if
+
+ics_api_idc_get_job_status2 200 job101 DISABLED EMPTYPROD
+ics_api_idc_get_job_status2 200 job102 DISABLED EMPTYPROD
+ics_api_idc_get_job_status2 200 job103 ENABLED 1 prod-ib
+ics_api_idc_get_job_status2 200 job108 ENABLED 1 prod-id
+ics_api_idc_get_job_status2 200 job110 ENABLED 1 prod-ie
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 28
+else
+ cr_equal 0 received_callbacks 12
+fi
+### Test of pre and post validation
+
+ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106
+ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE
+ics_api_idc_put_job 201 job160 type160 $TARGET160 info-owner-1 $INFOSTATUS160 testdata/ics/job-template.json
+
+ics_api_idc_get_job_status2 404 job150
+ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60
+
+prodstub_arm_producer 200 prod-ig
+prodstub_arm_job_create 200 prod-ig job150
+prodstub_arm_job_create 200 prod-ig job160
+
+ics_api_edp_put_producer_2 201 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig NOTYPE
+ics_api_edp_get_producer_status 200 prod-ig ENABLED 360
+
+ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig EMPTY
+
+ics_api_idc_get_job_status2 404 job150
+ics_api_idc_get_job_status2 200 job160 DISABLED EMPTYPROD 60
+
+prodstub_arm_type 200 prod-ig type160
+
+ics_api_edp_put_type_2 201 type160 testdata/ics/info-type-60.json
+ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 type160
+
+ics_api_edp_put_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160
+ics_api_edp_get_producer_status 200 prod-ig ENABLED 360
+ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160
+
+ics_api_idc_put_job 404 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE
+
+ics_api_idc_get_job_status2 404 job150
+ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig 60
+
+prodstub_check_jobdata_3 200 prod-ig job160 type160 $TARGET160 info-owner-1 testdata/ics/job-template.json
+
+prodstub_equal create/prod-ig/job160 1
+prodstub_equal delete/prod-ig/job160 0
+
+prodstub_arm_type 200 prod-ig type150
+
+ics_api_edp_put_type_2 201 type150 testdata/ics/info-type-50.json
+ics_api_idc_get_type_ids 200 type1 type2 type4 type6 type101 type102 type104 type106 type160 type150
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 30 30
+ cr_equal 0 received_callbacks?id=type-status1 18
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type160 testdata/ics/info-type-60.json REGISTERED type150 testdata/ics/info-type-50.json REGISTERED
+else
+ cr_equal 0 received_callbacks 12
+fi
+
+ics_api_edp_put_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160 type150
+ics_api_edp_get_producer_status 200 prod-ig ENABLED 360
+
+ics_api_edp_get_producer_2 200 prod-ig $CB_JOB/prod-ig $CB_SV/prod-ig type160 type150
+
+ics_api_idc_get_job_status2 404 job150
+ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig
+
+ics_api_idc_put_job 201 job150 type150 $TARGET150 info-owner-1 $INFOSTATUS150 testdata/ics/job-template.json VALIDATE
+
+ics_api_idc_get_job_status2 200 job150 ENABLED 1 prod-ig 60
+ics_api_idc_get_job_status2 200 job160 ENABLED 1 prod-ig
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+ cr_equal 0 received_callbacks 30 30
+ cr_equal 0 received_callbacks?id=type-status1 18
+else
+ cr_equal 0 received_callbacks 12
+fi
+
+# Test job deletion at type delete
+
+if [[ "$ICS_FEATURE_LEVEL" == *"TYPE-SUBSCRIPTIONS"* ]]; then
+
+ if [[ "$ICS_FEATURE_LEVEL" == *"RESP_CODE_CHANGE_1" ]]; then
+ ics_api_edp_delete_type_2 409 type104
+ else
+ ics_api_edp_delete_type_2 406 type104
+ fi
+
+ ics_api_edp_delete_producer 204 prod-id
+
+ ics_api_edp_delete_type_2 204 type104
+
+ cr_equal 0 received_callbacks 32 30
+ cr_equal 0 received_callbacks?id=info-job108-status 3
+ cr_equal 0 received_callbacks?id=type-status1 19
+ cr_api_check_all_ics_subscription_events 200 0 type-status1 type104 testdata/ics/info-type-4.json DEREGISTERED
+ cr_api_check_all_ics_events 200 0 info-job108-status DISABLED
+
+ ics_api_edp_get_producer 404 prod-id
+
+ ics_api_idc_get_job 404 job-108
+
+else
+ cr_equal 0 received_callbacks 12
+fi