From 3a06a07c38ceb04ce4a2bd41eb98d1d9fa713bed Mon Sep 17 00:00:00 2001 From: Pavel Bodiachevskii Date: Fri, 26 Jul 2024 12:53:50 +0400 Subject: [PATCH] test(definitions): IBM MQ bindings new tests structure https://github.com/asyncapi/spec-json-schemas/issues/551 --- .../channel/examples/queue destination.json | 9 -- .../channel/examples/topic destination.json | 10 -- .../ibmmq/0.1.0/channel/extended.json | 7 -- .../channel/only required properties.json | 1 - .../channel/without required properties.json | 1 - .../ibmmq/0.1.0/channel/wrongly extended.json | 8 -- .../bindings/ibmmq/0.1.0/message/example.json | 5 - .../ibmmq/0.1.0/message/extended.json | 10 -- .../message/only required properties.json | 1 - .../message/without required properties.json | 1 - .../ibmmq/0.1.0/message/wrongly extended.json | 11 -- test/bindings/ibmmq/0.1.0/server/example.json | 7 -- .../bindings/ibmmq/0.1.0/server/extended.json | 7 -- .../server/only required properties.json | 1 - .../server/without required properties.json | 1 - .../ibmmq/0.1.0/server/wrongly extended.json | 8 -- .../ibmmq/ibmmq channel binding.test.mjs | 63 ++++++++++ .../ibmmq/ibmmq message binding.test.mjs | 58 +++++++++ .../ibmmq/ibmmq server binding.test.mjs | 51 ++++++++ test/bindings/ibmmq/ibmmq.test.mjs | 115 ------------------ 20 files changed, 172 insertions(+), 203 deletions(-) delete mode 100644 test/bindings/ibmmq/0.1.0/channel/examples/queue destination.json delete mode 100644 test/bindings/ibmmq/0.1.0/channel/examples/topic destination.json delete mode 100644 test/bindings/ibmmq/0.1.0/channel/extended.json delete mode 100644 test/bindings/ibmmq/0.1.0/channel/only required properties.json delete mode 100644 test/bindings/ibmmq/0.1.0/channel/without required properties.json delete mode 100644 test/bindings/ibmmq/0.1.0/channel/wrongly extended.json delete mode 100644 test/bindings/ibmmq/0.1.0/message/example.json delete mode 100644 test/bindings/ibmmq/0.1.0/message/extended.json delete mode 100644 test/bindings/ibmmq/0.1.0/message/only required properties.json delete mode 100644 test/bindings/ibmmq/0.1.0/message/without required properties.json delete mode 100644 test/bindings/ibmmq/0.1.0/message/wrongly extended.json delete mode 100644 test/bindings/ibmmq/0.1.0/server/example.json delete mode 100644 test/bindings/ibmmq/0.1.0/server/extended.json delete mode 100644 test/bindings/ibmmq/0.1.0/server/only required properties.json delete mode 100644 test/bindings/ibmmq/0.1.0/server/without required properties.json delete mode 100644 test/bindings/ibmmq/0.1.0/server/wrongly extended.json create mode 100644 test/bindings/ibmmq/ibmmq channel binding.test.mjs create mode 100644 test/bindings/ibmmq/ibmmq message binding.test.mjs create mode 100644 test/bindings/ibmmq/ibmmq server binding.test.mjs delete mode 100644 test/bindings/ibmmq/ibmmq.test.mjs diff --git a/test/bindings/ibmmq/0.1.0/channel/examples/queue destination.json b/test/bindings/ibmmq/0.1.0/channel/examples/queue destination.json deleted file mode 100644 index 89055d3b..00000000 --- a/test/bindings/ibmmq/0.1.0/channel/examples/queue destination.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "destinationType": "queue", - "queue": { - "objectName": "message", - "isPartitioned": false, - "exclusive": true - }, - "maxMsgLength": 1024 -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/channel/examples/topic destination.json b/test/bindings/ibmmq/0.1.0/channel/examples/topic destination.json deleted file mode 100644 index 740c51a1..00000000 --- a/test/bindings/ibmmq/0.1.0/channel/examples/topic destination.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "destinationType": "topic", - "topic": { - "string": "messages", - "objectName": "message", - "durablePermitted": true, - "lastMsgRetained": true - }, - "maxMsgLength": 1024 -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/channel/extended.json b/test/bindings/ibmmq/0.1.0/channel/extended.json deleted file mode 100644 index 2da8cc79..00000000 --- a/test/bindings/ibmmq/0.1.0/channel/extended.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - } -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/channel/only required properties.json b/test/bindings/ibmmq/0.1.0/channel/only required properties.json deleted file mode 100644 index 9e26dfee..00000000 --- a/test/bindings/ibmmq/0.1.0/channel/only required properties.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/channel/without required properties.json b/test/bindings/ibmmq/0.1.0/channel/without required properties.json deleted file mode 100644 index 9e26dfee..00000000 --- a/test/bindings/ibmmq/0.1.0/channel/without required properties.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/channel/wrongly extended.json b/test/bindings/ibmmq/0.1.0/channel/wrongly extended.json deleted file mode 100644 index e6738ad9..00000000 --- a/test/bindings/ibmmq/0.1.0/channel/wrongly extended.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/message/example.json b/test/bindings/ibmmq/0.1.0/message/example.json deleted file mode 100644 index 9c097e10..00000000 --- a/test/bindings/ibmmq/0.1.0/message/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "jms", - "description": "JMS stream message", - "expiry": 0 -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/message/extended.json b/test/bindings/ibmmq/0.1.0/message/extended.json deleted file mode 100644 index ad885462..00000000 --- a/test/bindings/ibmmq/0.1.0/message/extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "type": "jms", - "description": "JMS stream message", - "expiry": 0, - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - } -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/message/only required properties.json b/test/bindings/ibmmq/0.1.0/message/only required properties.json deleted file mode 100644 index 9e26dfee..00000000 --- a/test/bindings/ibmmq/0.1.0/message/only required properties.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/message/without required properties.json b/test/bindings/ibmmq/0.1.0/message/without required properties.json deleted file mode 100644 index 9e26dfee..00000000 --- a/test/bindings/ibmmq/0.1.0/message/without required properties.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/message/wrongly extended.json b/test/bindings/ibmmq/0.1.0/message/wrongly extended.json deleted file mode 100644 index 828bba9b..00000000 --- a/test/bindings/ibmmq/0.1.0/message/wrongly extended.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "jms", - "description": "JMS stream message", - "expiry": 0, - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/server/example.json b/test/bindings/ibmmq/0.1.0/server/example.json deleted file mode 100644 index 47dbbe64..00000000 --- a/test/bindings/ibmmq/0.1.0/server/example.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "groupId": "PRODCLSTR1", - "ccdtQueueManagerName": "*", - "multiEndpointServer": false, - "heartBeatInterval": 300, - "cipherSpec": "ANY_TLS12_OR_HIGHER" -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/server/extended.json b/test/bindings/ibmmq/0.1.0/server/extended.json deleted file mode 100644 index 2da8cc79..00000000 --- a/test/bindings/ibmmq/0.1.0/server/extended.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - } -} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/server/only required properties.json b/test/bindings/ibmmq/0.1.0/server/only required properties.json deleted file mode 100644 index 9e26dfee..00000000 --- a/test/bindings/ibmmq/0.1.0/server/only required properties.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/server/without required properties.json b/test/bindings/ibmmq/0.1.0/server/without required properties.json deleted file mode 100644 index 9e26dfee..00000000 --- a/test/bindings/ibmmq/0.1.0/server/without required properties.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/test/bindings/ibmmq/0.1.0/server/wrongly extended.json b/test/bindings/ibmmq/0.1.0/server/wrongly extended.json deleted file mode 100644 index e6738ad9..00000000 --- a/test/bindings/ibmmq/0.1.0/server/wrongly extended.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/test/bindings/ibmmq/ibmmq channel binding.test.mjs b/test/bindings/ibmmq/ibmmq channel binding.test.mjs new file mode 100644 index 00000000..6fddce25 --- /dev/null +++ b/test/bindings/ibmmq/ibmmq channel binding.test.mjs @@ -0,0 +1,63 @@ +import { + JsonSchemaTestSuite, + JsonSchemaTestSuiteConfig, + JsonSchemaTestSuiteData +} from '@test/definitions/base-schema-test.mjs'; +import {describe} from 'vitest'; + +const config = new JsonSchemaTestSuiteConfig( + false, + [], + true, + [] +); + +let data = { + "0.1.0": new JsonSchemaTestSuiteData( + require(`@bindings/ibmmq/0.1.0/channel.json`), + [ + { + "destinationType": "queue", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "maxMsgLength": 1024 + }, + { + "destinationType": "topic", + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024 + } + ], + {}, + {}, + { + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + } + }, + { + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 + } + ), +} + +describe.each([ + '0.1.0', +])('IBM MQ channel binding v%s', (bindingVersion) => { + new JsonSchemaTestSuite(data[bindingVersion], config).testSuite() +}) diff --git a/test/bindings/ibmmq/ibmmq message binding.test.mjs b/test/bindings/ibmmq/ibmmq message binding.test.mjs new file mode 100644 index 00000000..2737b03b --- /dev/null +++ b/test/bindings/ibmmq/ibmmq message binding.test.mjs @@ -0,0 +1,58 @@ +import { + JsonSchemaTestSuite, + JsonSchemaTestSuiteConfig, + JsonSchemaTestSuiteData +} from '@test/definitions/base-schema-test.mjs'; +import {describe} from 'vitest'; + +const config = new JsonSchemaTestSuiteConfig( + true, + [ + 'must match exactly one schema in oneOf' + ], + true, + [] +); + +let data = { + "0.1.0": new JsonSchemaTestSuiteData( + require(`@bindings/ibmmq/0.1.0/message.json`), + [ + { + "type": "jms", + "description": "JMS stream message", + "expiry": 0 + } + ], + { + "type": "jms", + "description": "JMS stream message", + }, + {}, + { + "type": "jms", + "description": "JMS stream message", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + } + }, + { + "type": "jms", + "description": "JMS stream message", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 + } + ), +} + +describe.each([ + '0.1.0', +])('IBM MQ message binding v%s', (bindingVersion) => { + new JsonSchemaTestSuite(data[bindingVersion], config).testSuite() +}) diff --git a/test/bindings/ibmmq/ibmmq server binding.test.mjs b/test/bindings/ibmmq/ibmmq server binding.test.mjs new file mode 100644 index 00000000..e6d2cacc --- /dev/null +++ b/test/bindings/ibmmq/ibmmq server binding.test.mjs @@ -0,0 +1,51 @@ +import { + JsonSchemaTestSuite, + JsonSchemaTestSuiteConfig, + JsonSchemaTestSuiteData +} from '@test/definitions/base-schema-test.mjs'; +import {describe} from 'vitest'; + +const config = new JsonSchemaTestSuiteConfig( + false, + [], + true, + [] +); + +let data = { + "0.1.0": new JsonSchemaTestSuiteData( + require(`@bindings/ibmmq/0.1.0/server.json`), + [ + { + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER" + } + ], + {}, + {}, + { + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + } + }, + { + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 + } + ), +} + +describe.each([ + '0.1.0', +])('IBM MQ server binding v%s', (bindingVersion) => { + new JsonSchemaTestSuite(data[bindingVersion], config).testSuite() +}) diff --git a/test/bindings/ibmmq/ibmmq.test.mjs b/test/bindings/ibmmq/ibmmq.test.mjs deleted file mode 100644 index 91e16e2f..00000000 --- a/test/bindings/ibmmq/ibmmq.test.mjs +++ /dev/null @@ -1,115 +0,0 @@ -import {it} from 'vitest'; -import TestHelper from '@test/test-helper.mjs'; -import path from 'path'; - -describe.each([ - '0.1.0', -])('IBM MQ bindings v%s', async (bindingVersion) => { - - const channelSchema = await import(`@bindings/ibmmq/${bindingVersion}/channel.json`); - const messageSchema = await import(`@bindings/ibmmq/${bindingVersion}/message.json`); - const serverSchema = await import(`@bindings/ibmmq/${bindingVersion}/server.json`); - - describe('channel', () => { - it('queue destination', () => TestHelper.objectIsValid( - channelSchema, - path.resolve(__dirname, `./${bindingVersion}/channel/examples/queue destination.json`), - )); - - it('topic destination', () => TestHelper.objectIsValid( - channelSchema, - path.resolve(__dirname, `./${bindingVersion}/channel/examples/topic destination.json`), - )); - - it(TestHelper.canBeEmptyTestName, () => TestHelper.objectIsValid( - channelSchema, - {}, - )); - - it(TestHelper.isValidWithoutRequiredPropertiesTestName, () => TestHelper.objectIsValid( - channelSchema, - path.resolve(__dirname, `./${bindingVersion}/channel/without required properties.json`), - )); - - it(TestHelper.isValidWithOnlyRequiredPropertiesTestName, () => TestHelper.objectIsValid( - channelSchema, - path.resolve(__dirname, `./${bindingVersion}/channel/only required properties.json`), - )); - - it(TestHelper.isValidWhenIsExtendedTestName, () => TestHelper.objectIsValid( - channelSchema, - path.resolve(__dirname, `./${bindingVersion}/channel/extended.json`), - )); - - it(TestHelper.isNotValidWhenIsWronglyExtendedTestName, () => TestHelper.wronglyExtended( - channelSchema, - path.resolve(__dirname, `./${bindingVersion}/channel/wrongly extended.json`), - )); - }) - - describe('message', () => { - it(TestHelper.exampleIsValidTestName, () => TestHelper.objectIsValid( - messageSchema, - path.resolve(__dirname, `./${bindingVersion}/message/example.json`), - )); - - it(TestHelper.cannotBeEmptyTestName, () => TestHelper.objectIsNotValid( - messageSchema, - {}, - ['must match exactly one schema in oneOf'] - )); - - it(TestHelper.isNotValidWithoutRequiredPropertiesTestName, () => TestHelper.objectIsNotValid( - messageSchema, - path.resolve(__dirname, `./${bindingVersion}/message/without required properties.json`), - ['must match exactly one schema in oneOf'] - )); - - it.todo('\'type\' must be required?', () => TestHelper.objectIsValid( - messageSchema, - path.resolve(__dirname, `./${bindingVersion}/message/only required properties.json`), - )); - - it(TestHelper.isValidWhenIsExtendedTestName, () => TestHelper.objectIsValid( - messageSchema, - path.resolve(__dirname, `./${bindingVersion}/message/extended.json`), - )); - - it(TestHelper.isNotValidWhenIsWronglyExtendedTestName, () => TestHelper.wronglyExtended( - messageSchema, - path.resolve(__dirname, `./${bindingVersion}/message/wrongly extended.json`), - )); - }) - - describe('server', () => { - it(TestHelper.exampleIsValidTestName, () => TestHelper.objectIsValid( - serverSchema, - path.resolve(__dirname, `./${bindingVersion}/server/example.json`), - )); - - it(TestHelper.canBeEmptyTestName, () => TestHelper.objectIsValid( - serverSchema, - {} - )); - - it(TestHelper.isValidWithoutRequiredPropertiesTestName, () => TestHelper.objectIsValid( - serverSchema, - path.resolve(__dirname, `./${bindingVersion}/server/without required properties.json`), - )); - - it(TestHelper.isValidWithOnlyRequiredPropertiesTestName, () => TestHelper.objectIsValid( - serverSchema, - path.resolve(__dirname, `./${bindingVersion}/server/only required properties.json`), - )); - - it(TestHelper.isValidWhenIsExtendedTestName, () => TestHelper.objectIsValid( - serverSchema, - path.resolve(__dirname, `./${bindingVersion}/server/extended.json`), - )); - - it(TestHelper.isNotValidWhenIsWronglyExtendedTestName, () => TestHelper.wronglyExtended( - serverSchema, - path.resolve(__dirname, `./${bindingVersion}/server/wrongly extended.json`), - )); - }) -}) \ No newline at end of file