SQLite format 3@ E# NE-%  t KY ctablepactspacts CREATE TABLE `pacts`(`id` integer DEFAULT (NULL) NOT NULL PRIMARY KEY, `json_content` mediumtext DEFAULT (NULL) NULL, `version_id` integer DEFAULT (NULL) NOT NULL, `provider_id` integer DEFAULT (NULL) NOT NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL, FOREIGN KEY (`provider_id`) REFERENCES `pacticipants` ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY (`version_id`) REFERENCES `versions` ON DELETE NO ACTION ON UPDATE NO ACTION)Q'_indexpacts_versio$"R"wtablewebhookswebhooks CREATE TABLE `webhooks` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `uuid` varchar(255) NOT NULL CONSTRAINT `uq_webhook_uuid` UNIQUE, `method` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, `body` varchar(255), `is_json_request_body` Boolean, `consumer_id` integer NOT NULL CONSTRAINT `fk_webhooks_consumer` REFERENCES `pacticipants`, `provider_id` integer NOT NULL CONSTRAINT `fk_webhooks_provider` REFERENCES `pacticipants`)/#Cindexsqlite_autoindex_webhooks_1webhooks !QOindexpacts_version_id_provider_id_indexpactsCREATE UNIQUE INDEX `pacts_version_id_provider_id_index` ON `pacts` (`version_id`, `provider_id`)UWindexversions_pacticipant_id_number_indexversionsCREATE UNIQUE INDEX `versions_pacticipant_id_number_index` ON `versions` (`pacticipant_id`, `number`)] tableversionsversionsCREATE TABLE `versions`(`id` integer DEFAULT (NULL) NOT NULL PRIMARY KEY, `number` varchar(255) DEFAULT (NULL) NULL, `repository_ref` varchar(255) DEFAULT (NULL) NULL, `pacticipant_id` integer DEFAULT (NULL) NOT NULL, `order` integer DEFAULT (NULL) NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL, FOREIGN KEY (`pacticipant_id`) REFERENCES `pacticipants` ON DELETE NO ACTION ON UPDATE NO ACTION)7K%indexsqlite_autoindex_pacticipants_1pacticipants5%%-tablepacticipantspacticipantsCREATE TABLE `pacticipants`(`id` integer DEFAULT (NULL) NOT NULL PRIMARY KEY, `name` varchar(255) DEFAULT (NULL) NULL UNIQUE, `repository_url` varchar(255) DEFAULT (NULL) NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL)';indexsqlite_autoindex_tags_1tags ]tabletagstags CREATE TABLE `tags`(`name` varchar(255) DEFAULT (NULL) NULL, `version_id` integer DEFAULT (NULL) NOT NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL, PRIMARY KEY ('name', 'version_id'), FOREIGN KEY (`version_id`) REFERENCES `versions` ON DELETE NO ACTION ON UPDATE NO ACTION)=%%Aviewlatest_pactslatest_pactsCREATE VIEW `latest_pacts` AS select ap.* from all_pacts ap inner join latest_pact_consumer_version_orders lp on ap.consumer_id = lp.consumer_id and ap.provider_id = lp.provider_id and ap.consumer_version_order = latest_consumer_version_order SS+viewlatest_pact_consumer_version_orderslatest_pact_consumer_version_ordersCREATE VIEW `latest_pact_consumer_version_orders` AS select provider_id, consumer_id, max(consumer_version_order) as latest_consumer_version_order from all_pacts group by provider_id, consumer_id kviewall_pactsall_pactsCREATE VIEW `all_pacts` AS SELECT `pacts`.`id`, `c`.`id` AS 'consumer_id', `c`.`name` AS 'consumer_name', `cv`.`number` AS 'consumer_version_number', `cv`.`order` AS 'consumer_version_order', `p`.`id` AS 'provider_id', `p`.`name` AS 'provider_name', `pacts`.`json_content` FROM `pacts` INNER JOIN `versions` AS 'cv' ON (`cv`.`id` = `pacts`.`version_id`) INNER JOIN `pacticipants` AS 'c' ON (`c`.`id` = `cv`.`pacticipant_id`) INNER JOIN `pacticipants` AS 'p' ON (`p`.`id` = `pacts`.`provider_id`)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)f##tableschema_infoschema_infoCREATE TABLE `schema_info` (`version` integer DEFAULT (0) NOT   v/L1AAPact Broker Client2014-11-16 10:32:20.3494812014-11-16 10:32:20.349481E#AAPact Broker2014-11-16 10:32:09.1873092014-11-16 10:32:09.187309F%AAPact Brokers2014-11-16 10:31:48.3260812014-11-16 10:31:48.326081@AABroker2014-11-16 10:31:48.3185632014-11-16 10:31:48.318563 1Pact Broker Client#Pact Broker%Pact Brokers  Broker 7pact_version_contents  0.0.7  0.0.7 xxBAA0.0.72014-11-16 10:32:25.1183642014-11-16 10:32:25.119954BAA0.0.72014-11-16 10:31:48.3315492014-11-16 10:31:48.333162   >AA2014-11-16 10:32:25.1244432014-11-16 10:32:25.124443; AA 2014-11-16 10:31:48.3389472014-11-16 10:31:48.338947       b &     y    ctablepactspacts CREATE TABLE `pacts`(`id` integer DEFAULT f##tableschema_infoschema_infoCREATE TABLE `schema_info` (`version` integer DEFAULT (0) NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) kviewall_pactsall_pactsCREATE VIEW `all_pacts` AS SELECT `pacts`.`id`, `c`.`id` AS 'consumer_id', `c`.`name` AS 'consumer_name', `cv`.`number` AS 'consumer_version_number', `cv`.`order` AS 'consumer_version_order', `p`.`id` AS 'provider_id', `p`.`name` AS 'provider_name', `pacts`.`json_content` FROM `pacts` INNER JOIN `versions` AS 'cv' ON (`cv`.`id` = `pacts`.`version_id`) INNER JOIN `pacticipants` AS 'c' ON (`c`.`id` = `cv`.`pacticipant_id`) INNER JOIN `pacticipants` AS 'p' ON (`p`.`id` = `pacts`.`provider_id`) SS+viewlatest_pact_consumer_version_orderslatest_pact_consumer_version_ordersCREATE VIEW `latest_pact_consumer_version_orders` AS select provider_id, consumer_id, max(consumer_version_order) as latest_consumer_version_order from all_pacts group by provider_id, consumer_id=%%Aviewlatest_pactslatest_pactsCREATE VIEW `latest_pacts` AS select ap.* from all_pacts ap inner join latest_pact_consumer_version_orders lp on ap.consumer_id = lp.consumer_id and ap.provider_id = lp.provider_id and ap.consumer_version_order = latest_consumer_version_order]tabletagstags CREATE TABLE `tags`(`name` varchar(255) DEFAULT (NULL) NULL, `versif##tableschema_infoschema_infoCREATE TABLE `schema_info` (`version` integer DEFAULT (0) NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)rkviewall_pactsall_pactsCREATE VIEW `all_pacts` AS SELECT `pacts`.`id`, `c`.`id` AS 'consumer_id', `c`.`name` AS 'consumer_name', `cv`.`number` AS 'consumer_version_number', `cv`.`order` AS 'consumer_version_order', `p`.`id` AS 'provider_id', `p`.`name` AS 'provider_name', `pacts`.`json_content` FROM `pacts` INNER JOIN `versions` AS 'cv' ON (`cv`.`id` = `pacts`.`version_id`) INNER JOIN `pacticipants` AS 'c' ON (`c`.`id` = `cv`.`pacticipant_id`) INNER JOIN `pacticipants` AS 'p' ON (`p`.`id` = `pacts`.`provider_id`)#SS+viewlatest_pact_consumer_version_orderslatest_pact_consumer_version_ordersCREATE VIEW `latest_pact_consumer_version_orders` AS select provider_id, consumer_id, max(consumer_version_order) as latest_consumer_version_order from all_pacts group by provider_id, consumer_id@%%Aviewlatest_pactslatest_pactsCREATE VIEW `latest_pacts` AS select ap.* from all_pacts ap inner join latest_pact_consumer_version_orders lp on ap.consumer_id = lp.consumer_id and ap.provider_id = lp.provider_id and ap.consumer_version_order = latest_consumer_version_order]tabletagstags CREATE TABLE `tags`(`name` varchar(255) DEFAULT (NULL) NULL, `version_id` integer DEFAULT (NULL) NOT NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL, PRIMARY KEY ('name', 'version_id'), FOREIGN KEY (`version_id`) REFERENCES `versions` ON DELETE NO ACTION ON UPDATE NO ACTION)';indexsqlite_autoindex_tags_1tags 5%%-tablepacticipantspacticipantsCREATE TABLE `pacticipants`(`id` integer DEFAULT (NULL) NOT NULL PRIMARY KEY, `name` varchar(255) DEFAULT (NULL) NULL UNIQUE, `repository_url` varchar(255) DEFAULT (NULL) NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL)7K%indexsqlite_autoindex_pacticipants_1pacticipants] tableversionsversionsCREATE TABLE `versions`(`id` integer DEFAULT (NULL) NOT NULL PRIMARY KEY, `number` varchar(255) DEFAULT (NULL) NULL, `repository_ref` varchar(255) DEFAULT (NULL) NULL, `pacticipant_id` integer DEFAULT (NULL) NOT NULL, `order` integer DEFAULT (NULL) NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL, FOREIGN KEY (`pacticipant_id`) REFERENCES `pacticipants` ON DELETE NO ACTION ON UPDATE NO ACTION) Z _ ( 7Q,ctablepactspacts CREATE TABLE `pacts`(`id` integer DEFAULT (NULL) NOT NULL PRIMARY KEY, `version_id` integer DEFAULT (NULL) NOT NULL, `provider_id` integer DEFAULT (NULL) NOT NULL, `created_at` timestamp DEFAULT (NULL) NOT NULL, `updated_at` timestamp DEFAULT (NULL) NOT NULL, `pact_version_content_id` integer DEFAULT (NULL) NOT NULL, FOREIGN KEY (`pact_version_content_id`) REFERENCES `pact_version_contents` ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY (`provider_id`) REFERENCES `pacticipants` ON DELETE NO ACTION ON UPDATE NO ACTION, FOREIGN KEY (`version_id`) REFERENCES `versions` ON DELETE NO ACTION ON UPDATE NO ACTION) Z#.viewall_pactsall_pactsCREATE VIEW `all_pacts` AS SELECT `pacts`.`id`, `c`.`id` AS 'consumer_id', `c`.`name` AS 'consumer_name', `cv`.`number` AS 'consumer_version_number', `cv`.`order` AS 'consumer_version_order', `p`.`id` AS 'provider_id', `p`.`name` AS 'provider_name', `pvc`.`content` AS 'json_content', `pacts`.`created_at`, `pacts`.`updated_at` FROM `pacts` INNER JOIN `versions` AS 'cv' ON (`cv`.`id` = `pacts`.`version_id`) INNER JOIN `pacticipants` AS 'c' ON (`c`.`id` = `cv`.`pacticipant_id`) INNER JOIN `pacticipants` AS 'p' ON (`p`.`id` = `pacts`.`provider_id`) INNER JOIN `pact_version_contents` AS 'pvc' ON (`pvc`.`id` = `pacts`.`pact_version_content_id`)-QOindexpacts_version_id_provider_id_indexpactsCREATE UNIQUE INDEX `pacts_version_id_provider_id_index` ON `pacts` (`version_id`, `provider_id`)#)77etablepact_version_contentspact_version_contentsCREATE TABLE `pact_version_contents` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `content` mediumtext)=(%%Aviewlatest_pactslatest_pactsCREATE VIEW `latest_pacts` AS select ap.* from all_pacts ap inner join latest_pact_consumer_version_orders lp on ap.consumer_id = lp.consumer_id and ap.provider_id = lp.provider_id and ap.consumer_version_order = latest_consumer_version_order 'SS+viewlatest_pact_consumer_version_orderslatest_pact_consumer_version_ordersCREATE VIEW `latest_pact_consumer_version_orders` AS select provider_id, consumer_id, max(consumer_version_order) as latest_consumer_version_order from all_pacts group by provider_id, consumer_id;Cviewall_pactsall_pactsCREATE VIEW `all_pacts` AS SELECT `pacts`.`id`, `c`.`id` AS 'consumer_id', `c`.`name` AS 'consumer_name', `cv`.`number` AS 'consumer_version_number', `cv`.`order` AS 'consumer_version_order', `p`.`id` AS 'provider_id', `p`.`name` AS 'provider_name', `pacts`.`json_content`, `pacts`.`created_at`, `pacts`.`updated_at` FROM `pacts` INNER JOIN `versions` AS 'cv' ON (`cv`.`id` = `pacts`.`version_id`) INNER JOIN `pacticipants` AS 'c' ON (`c`.`id` = `cv`.`pacticipant_id`) INNER JOIN `pacticipants` AS 'p' ON (`p`.`id` = `pacts`.`provider_id`)=%Q+indexsqlite_autoindex_webhook_headers_1webhook_headers $++wtablewebhook_headerswebhook_headersCREATE TABLE `webhook_headers` (`name` varchar(255) NOT NULL, `value` varchar(255), `webhook_id` integer NOT NULL CONSTRAINT `fk_webhookheaders_webhooks` REFERENCES `webhooks`, CONSTRAINT `webhooks_headers_pk` PRIMARY KEY (`webhook_id`, `name`))/#Cindexsqlite_autoindex_webhooks_1webhooks 4";tablewebhookswebhooks CREATE TABLE `webhooks` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `uuid` varchar(255) NOT NULL CONSTRAINT `uq_webhook_uuid` UNIQUE, `method` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, `body` varchar(255), `is_json_request_body` Boolean, `consumer_id` integer NOT NULL CONSTRAINT `fk_webhooks_consumer` REFERENCES `pacticipants`, `provider_id` integer NOT NULL CONSTRAINT `fk_webhooks_provider` REFERENCES `pacticipants`, `created_at` timestamp, `updated_at` timestamp, `username` varchar(255), `password` varchar(255))UWindexversions_pacticipant_id_number_indexversionsCREATE UNIQUE INDEX `versions_pacticipant_id_number_index` ON `versions` (`pacticipant_id`, `number`) ] } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" }, "latest_version": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/latest" } }, "name": "Pricing Service", "repository_url": "git@git.realestate.com.au:business-systems/pri  # AA { "provider": { "name": "Broker" }, "consumer": { "name": "Pact Brokers" }, "interactions": [ { "description": "a request to list the latest pacts", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/latest", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacts/latest" } }, "pacts": [ { "_links": { "self": [ { "href": "http://example.org/pact/provider/Pricing%20Service/consumer/Condor/latest" }, { "href": "http://example.org/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0" } ] }, "_embedded": { "consumer": { "name": "Condor", "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "_embedded": { "version": { "number": "1.3.0" } } }, "provider": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" } }, "name": "Pricing Service" } } } ] } } }, { "description": "a request to list pacticipants", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants" }, "pacticipants": [ { "href": "http://example.org/pacticipants/Condor", "title": "Condor" } ] }, "pacticipants": [ { "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest_version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "number": "1.3.0" } } # }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" }, "latest_version": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/latest" } }, "name": "Pricing Service", "repository_url": "git@git.realestate.com.au:business-systems/pricing-service", "_embedded": { "latest_version": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/1.3.0" } }, "number": "1.3.0" } } } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "status": 404 } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201 } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 200 } }, { "description": "a request to publish a pact", "provider_state": "'Condor' already exist in the pact-broker, but the 'Pricing Service' does not", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201 } }, { "description": "a request to publish a pact", "provider_state": "an error occurs while publishing a pact", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": {  "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "status": 500, "headers": { "Content-Type": "application/json" }, "body": { "message": { "json_class": "Pact::Term", "data": { "generate": "An error occurred", "matcher": {"json_class":"Regexp","o":0,"s":".*"} } } } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 201, "headers": { } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 200, "headers": { } } }, { "description": "a request retrieve a pact for a specific version", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { } }, "response": { "headers": { }, "status": 200, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 200, "headers": { "Content-Type": "application/json", "X-Pact-Consumer-Version": "1.3.0" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "no pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to retrieve the pact between the production verison of Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists for the production version of Condor", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/latest/prod", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { p://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "number": "1.3.0" } } } ] } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" }, "latest-version": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/latest" } }, "name": "Pricing Service", "repositoryUrl": "git@git.realestate.com.au:businesS 1AA{ "provider": { "name": "Pact Broker" }, "consumer": { "name": "Pact Broker Client" }, "interactions": [ { "description": "a request to list the latest pacts", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/latest", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacts/latest" } }, "pacts": [ { "_links": { "self": [ { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" }, { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0" } ] }, "_embedded": { "consumer": { "name": "Condor", "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "_embedded": { "version": { "number": "1.3.0" } } }, "provider": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" } }, "name": "Pricing Service" } } } ] } } }, { "description": "a request to list pacticipants", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants" }, "pacticipants": [ { "href": "http://example.org/pacticipants/Condor", "title": "Condor" } ] }, "pacticipants": [ { "_links": { "self": {  "href": "http://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "number": "1.3.0" } } } ] } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" }, "latest-version": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/latest" } }, "name": "Pricing Service", "repositoryUrl": "git@git.realestate.com.au:business-systems/pricing-service", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/1.3.0" } }, "number": "1.3.0" } } } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201, "body": { "_links": { "latest-pact": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 200, "body": { "_links": { "latest-pact": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } } }, { "description": "a request to publish a pact", "provider_state": "'Condor' already exist in the pact-broker, but the 'Pricing Service' does not", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201, "body": { "_links": { "latest-pact": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } } }, { "description": "a request to publish a pact", "provider_state": "an error occurs while publishing a pact", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "status": 500, "headers": { "Content-Type": "application/json" }, "body": { "message": { "json_class": "Pact::Term", "data": { "generate": "An error occurred", "matcher": {"json_class":"Regexp","o":0,"s":".*"} } } } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 201, "headers": { } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 200, "headers": { } } }, { "description": "a request retrieve a pact for a specific version", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { } }, "response": { "headers": { }, "status": 200, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 200, "headers": { "Content-Type": "application/json", "X-Pact-Consumer-Version": "1.3.0" }, "body": { "consumer": { "name": "Condor" }, "provi "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request for the latest version tagged with 'prod'", "provider_state": "a version with production details exists for the Pricing Service", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service/versions/latest", "query": "tag=prod", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { "Content-Type": "application/json" }, "body": { "number": "1.2.3", "repository_ref": "package/pricing-service-1.2.3", "tags": [ "prod" ] } } }, { "description": "a request for the latest version", "provider_state": "no version exists for the Pricing Service", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service/versions/latest", "headers": { "Accept": "application/json" } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' does not exist in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker with version 1.3.0, tagged with 'prod'", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } } ], "metadata": { "pactSpecificationVersion": "1.0.0" } }2014-11-16 10:31:48.3389472014-11-16 10:31:48.338947der": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "no pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to retrieve the pact between the production verison of Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists for the production version of Condor", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' does not exist in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker with version 1.3.0, tagged with 'prod'", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } } ], "metadata": { "pactSpecificationVersion": "1.0.0" } }2014-11-16 10:32:25.1244432014-11-16 10:32:25.124443"P#{ "provider": { "name": "Broker" }, "consumer": { "name": "Pact Brokers" }, "interactions": [ { "description": "a request to list the latest pacts", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/latest", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacts/latest" } }, "pacts": [ { "_links": { "self": [ { "href": "http://example.org/pact/provider/Pricing%20Service/consumer/Condor/latest" }, { "href": "http://example.org/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0" } ] }, "_embedded": { "consumer": { "name": "Condor", "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "_embedded": { "version": { "number": "1.3.0" } } }, "provider": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" } }, "name": "Pricing Service" } } } ] } } }, { "description": "a request to list pacticipants", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants" }, "pacticipants": [ { "href": "http://example.org/pacticipants/Condor", "title": "Condor" } ] }, "pacticipants": [ { "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest_version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "nu!ber": "1.3.0" } } } ] } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" }, "latest_version": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/latest" } }, "name": "Pricing Service", "repository_url": "git@git.realestate.com.au:business-systems/pricing-service", "_embedded": { "latest_version": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/1.3.0" } }, "number": "1.3.0" } } } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "status": 404 } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201 } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 200 } }, { "description": "a request to publish a pact", "provider_state": "'Condor' already exist in the pact-broker, but the 'Pricing Service' does not", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201 } }, { "description": "a request to publish a pact", "provider_state": "an error occurs while publishing a pact", "request": { "method": "put", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json"  }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "status": 500, "headers": { "Content-Type": "application/json" }, "body": { "message": { "json_class": "Pact::Term", "data": { "generate": "An error occurred", "matcher": {"json_class":"Regexp","o":0,"s":".*"} } } } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 201, "headers": { } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 200, "headers": { } } }, { "description": "a request retrieve a pact for a specific version", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { } }, "response": { "headers": { }, "status": 200, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 200, "headers": { "Content-Type": "application/json", "X-Pact-Consumer-Version": "1.3.0" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "no pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to retrieve the pact between the production verison of Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists for the production version of Condor", "request": { "method": "get", "path": "/pact/provider/Pricing%20Service/consumer/Condor/latest/prod", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request for the latest version tagged with 'prod'", "provider_state": "a version with production details exists for the Pricing Service", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service/versions/latest", "query": "tag=prod", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { "Content-Type": "application/json" }, "body": { "number": "1.2.3", "repository_ref": "package/pricing-service-1.2.3", "tags": [ "prod" ] } } }, { "description": "a request for the latest version", "provider_state": "no version exists for the Pricing Service", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service/versions/latest", "headers": { "Accept": "application/json" } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' does not exist in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker with version 1.3.0, tagged with 'prod'", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } } ], "metadata": { "pactSpecificationVersion": "1.0.0" } } "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "number": "1.3.0" } } } ] } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" }, "latest-version": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/latest" } }, "name": "Pricing Service", "repositoryUrl": "git@git.realestate.com.au:business-systems/pricing-service", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/1.3.0" } }, "number": "1.3.0" } } } } }, { "description": "a request to get the Pricing Service", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "get", "path": "/pacticipants/Pricing%20Service", "headers": { } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201, "body": { "_links": { "latest-pact": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } } }, { "description": "a request to publish a pact", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 200, "body": { "_links": { "latest-pact": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } } }, { "description": "a request to publish a pact", "provider_state": "'Condor' already exist in the pact-broker, but the 'Pricing Service' does not", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "headers": { }, "status": 201, "body": { "_links": { "latest-pact": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } } }, { "description": "a request to publish a pact", "provider_state": "an error occurs while publishing a pact", "request": { "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }, "response": { "status": 500, "headers": { "Content-Type": "application/json" }, "body": { "message": { "json_class": "Pact::Term", "data": { "generate": "An error occurred", "matcher": {"json_class":"Regexp","o":0,"s":".*"} } } } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' does not exist in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 201, "headers": { } } }, { "description": "a request to register the repository URL of a pacticipant", "provider_state": "the 'Pricing Service' already exists in the pact-broker", "request": { "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }, "response": { "status": 200, "headers": { } } }, { "description": "a request retrieve a pact for a specific version", "provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { } }, "response": { "headers": { }, "status": 200, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 200, "headers": { "Content-Type": "application/json", "X-Pact-Consumer-Version": "1.3.0" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to retrieve the latest pact between Condor and the Pricing Service", "provider_state": "no pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest", "headers": { } }, "response": { "status": 404, "headers": { } } }, { "description": "a request to retrieve the pact between the production verison of Condor and the Pricing Service", "provider_state": "a pact between Condor and the Pricing Service exists for the production version of Condor", "request": { "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' does not exist in the pact-broker", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 201, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } }, { "description": "a request to tag the production version of Condor", "provider_state": "'Condor' exists in the pact-broker with version 1.3.0, tagged with 'prod'", "request": { "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }, "response": { "status": 200, "headers": { }, "body": { "_links": { "self": { "href": { "json_class": "Pact::Term", "data": { "generate": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod", "matcher": {"json_class":"Regexp","o":0,"s":"http://.*/pacticipants/Condor/versions/1.3.0/tags/prod"} } } } } } } } ], "metadata": { "pactSpecificationVersion": "1.0.0" } } P#{ "provider": { "name": "Broker" }, "consumer": { "name": "Pact Brokers" }, "interactions": [ { "description": "a request to list the latest pacts", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/latest", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacts/latest" } }, "pacts": [ { "_links": { "self": [ { "href": "http://example.org/pact/provider/Pricing%20Service/consumer/Condor/latest" }, { "href": "http://example.org/pact/provider/Pricing%20Service/consumer/Condor/version/1.3.0" } ] }, "_embedded": { "consumer": { "name": "Condor", "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "_embedded": { "version": { "number": "1.3.0" } } }, "provider": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" } }, "name": "Pricing Service" } } } ] } } }, { "description": "a request to list pacticipants", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants" }, "pacticipants": [ { "href": "http://example.org/pacticipants/Condor", "title": "Condor" } ] }, "pacticipants": [ { "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest_version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "num 1{ "provider": { "name": "Pact Broker" }, "consumer": { "name": "Pact Broker Client" }, "interactions": [ { "description": "a request to list the latest pacts", "provider_state": "a pact between Condor and the Pricing Service exists", "request": { "method": "get", "path": "/pacts/latest", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacts/latest" } }, "pacts": [ { "_links": { "self": [ { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" }, { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0" } ] }, "_embedded": { "consumer": { "name": "Condor", "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "_embedded": { "version": { "number": "1.3.0" } } }, "provider": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" } }, "name": "Pricing Service" } } } ] } } }, { "description": "a request to list pacticipants", "provider_state": "'Condor' exists in the pact-broker", "request": { "method": "get", "path": "/pacticipants", "headers": { } }, "response": { "headers": { "Content-Type": "application/hal+json" }, "status": 200, "body": { "_links": { "self": { "href": "http://example.org/pacticipants" }, "pacticipants": [ { "href": "http://example.org/pacticipants/Condor", "title": "Condor" } ] }, "pacticipants": [ {  >AA2014-11-16 10:32:25.1244432014-11-16 10:32:25.124443; AA 2014-11-16 10:31:48.3389472014-11-16 10:31:48.338947