Search code examples
wso2wso2-integration-studiowso2-micro-integrator

WSO2 Integration Studio: Unit test fails with 'Not a valid operation type for services'


I have a simple API from a WSO2 tutorial and am trying to run a unit test on the integration studio using the embedded micro integrator server.

The assertEquals fails with the following error. But when I use curl I get the expected response. What does the error message mean below? Seems like no response is received or there is something wrong with $body.

[INFO] Failed Assertion(s): 
[INFO] +--------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------------------+
[INFO] |   TEST CASE                                |   ASSERT EXPRESSION           |       FAILURE                                                                                        |
[INFO] +============================================+===============================+======================================================================================================+
[INFO] | Test Case - querydoctorCategoryTestSuccess | assertEquals -                | Actual Response:                                                                                     |
[INFO] |                                            |                         $body | Received assert expression:                                                                          |
[INFO] |                                            |                               |                         $body                                                                        |
[INFO] |                                            |                               |                      is not a valid operation type for services                                      |
[INFO] |                                            |                               |                                                                                                      |
[INFO] |                                            |                               | Expected Response:                                                                                   |
[INFO] |                                            |                               | [{"name":"thomascollins","hospital":"grandoakcommunityhospital","category":"surgery","availability": |
[INFO] |                                            |                               | "9.00a.m-11.00a.m","fee":7000.0},{"name":"anneclement","hospital":"clemencymedicalcenter","category" |
[INFO] |                                            |                               | :"surgery","availability":"8.00a.m-10.00a.m","fee":12000.0},{"name":"sethmears","hospital":"pinevall |
[INFO] |                                            |                               | eycommunityhospital","category":"surgery","availability":"3.00p.m-5.00p.m","fee":8000.0}]            |
[INFO] +--------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------------------+

The test suite xml file:

<unit-test>
    <artifacts>
        <test-artifact>
            <artifact>/SampleServicesConfigs/src/main/synapse-config/api/HealthcareAPI.xml</artifact>
        </test-artifact>
        <supportive-artifacts>
            <artifact>/SampleServices/SampleServicesConfigs/src/main/synapse-config/endpoints/QueryDoctorEP.xml</artifact>
        </supportive-artifacts>
        <registry-resources/>
        <connector-resources/>
    </artifacts>
    <test-cases>
        <test-case name="querydoctorCategoryTestSuccess">
            <input>
                <request-path>/http://localhost:9008/healthcare/querydoctor/surgery</request-path>
                <request-method>GET</request-method>
                <request-protocol>http</request-protocol>
            </input>
            <assertions>
                <assertEquals>
                    <actual>
                        $body
                    </actual>
                    <expected><![CDATA[[
    {
        "name": "thomas collins",
        "hospital": "grand oak community hospital",
        "category": "surgery",
        "availability": "9.00 a.m - 11.00 a.m",
        "fee": 7000.0
    },
    {
        "name": "anne clement",
        "hospital": "clemency medical center",
        "category": "surgery",
        "availability": "8.00 a.m - 10.00 a.m",
        "fee": 12000.0
    },
    {
        "name": "seth mears",
        "hospital": "pine valley community hospital",
        "category": "surgery",
        "availability": "3.00 p.m - 5.00 p.m",
        "fee": 8000.0
    }
]]]></expected>
                    <message>Body does not match expected value!</message>
                </assertEquals>
            </assertions>
        </test-case>
    </test-cases>
    <mock-services/>
</unit-test>

Solution

  • I just found a GitHub issue that mentions this problem affecting Integration studio v8.1.0 (which is the latest and the one I'm using). Looks like a fix has been merged for this on May 5, so I assume this will be fixed in the next release.