<p>Friendly Automation <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/c/testsuite/+/10952">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Joshua C. Colp: Looks good to me, but someone else must approve
  Kevin Harwell: Looks good to me, approved
  Friendly Automation: Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">testsuite: Added test for 'move' REST API call.<br><br>Added a new test that covers some simple use cases of the new 'move'<br>REST API call, which moves a channel from one application to another<br>without having to leave Stasis and re-enter dialplan. It tests a few<br>basic scenarios by putting a channel into Stasis and calling 'move' in<br>various ways, including trying to move to an application that doesn't<br>exist, moving to an application without specifying arguments, moving to<br>an application while specifying a single argument, and moving to an<br>application while specifying multiple arguments.<br><br>Change-Id: I83a2da829dc363727de8c7b56680d21692011e40<br>---<br>A tests/rest_api/move/configs/ast1/extensions.conf<br>A tests/rest_api/move/test-config.yaml<br>M tests/rest_api/tests.yaml<br>3 files changed, 134 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/rest_api/move/configs/ast1/extensions.conf b/tests/rest_api/move/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..1ab047e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rest_api/move/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+exten => s,1,NoOp()</span><br><span style="color: hsl(120, 100%, 40%);">+ same => n,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+ same => n,Echo()</span><br><span style="color: hsl(120, 100%, 40%);">+ same => n,Hangup()</span><br><span>diff --git a/tests/rest_api/move/test-config.yaml b/tests/rest_api/move/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..c4c23b1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/rest_api/move/test-config.yaml</span><br><span>@@ -0,0 +1,127 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: Test moving from one Stasis application to another.</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        "Test that moving from one Stasis application to another via the</span><br><span style="color: hsl(120, 100%, 40%);">+        move REST API call works as intended.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        A few different scenarios are covered:</span><br><span style="color: hsl(120, 100%, 40%);">+            - Moving from one app to another</span><br><span style="color: hsl(120, 100%, 40%);">+            - Switching apps and supplying one argument</span><br><span style="color: hsl(120, 100%, 40%);">+            - Switching apps and supplying multiple arguments</span><br><span style="color: hsl(120, 100%, 40%);">+            - Attempting to switch to a non-existent app"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: ari.AriOriginateTestObject</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: ari-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: ari.WebSocketEventModule</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: ari-test-stopper</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: pluggable_modules.EventActionModule</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    apps: testsuite,no-args,one-arg,multiple-args</span><br><span style="color: hsl(120, 100%, 40%);">+    stop-on-end: False</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ari-test-stopper:</span><br><span style="color: hsl(120, 100%, 40%);">+    -</span><br><span style="color: hsl(120, 100%, 40%);">+        ari-events:</span><br><span style="color: hsl(120, 100%, 40%);">+            match:</span><br><span style="color: hsl(120, 100%, 40%);">+                type: ChannelDestroyed</span><br><span style="color: hsl(120, 100%, 40%);">+                application: testsuite</span><br><span style="color: hsl(120, 100%, 40%);">+                channel:</span><br><span style="color: hsl(120, 100%, 40%);">+                    id: 'testsuite-default-id'</span><br><span style="color: hsl(120, 100%, 40%);">+        stop_test:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ari-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    events:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisStart</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: testsuite</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+            requests:</span><br><span style="color: hsl(120, 100%, 40%);">+                -</span><br><span style="color: hsl(120, 100%, 40%);">+                    method: 'post'</span><br><span style="color: hsl(120, 100%, 40%);">+                    uri: 'channels/testsuite-default-id/move'</span><br><span style="color: hsl(120, 100%, 40%);">+                    params:</span><br><span style="color: hsl(120, 100%, 40%);">+                        app: 'i-dont-exist'</span><br><span style="color: hsl(120, 100%, 40%);">+                -</span><br><span style="color: hsl(120, 100%, 40%);">+                    method: 'post'</span><br><span style="color: hsl(120, 100%, 40%);">+                    uri: 'channels/testsuite-default-id/move'</span><br><span style="color: hsl(120, 100%, 40%);">+                    params:</span><br><span style="color: hsl(120, 100%, 40%);">+                        app: 'no-args'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisEnd</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: testsuite</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisStart</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: no-args</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+            requests:</span><br><span style="color: hsl(120, 100%, 40%);">+                method: 'post'</span><br><span style="color: hsl(120, 100%, 40%);">+                uri: 'channels/testsuite-default-id/move'</span><br><span style="color: hsl(120, 100%, 40%);">+                params:</span><br><span style="color: hsl(120, 100%, 40%);">+                    app: 'one-arg'</span><br><span style="color: hsl(120, 100%, 40%);">+                    appArgs: 'apples'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisEnd</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: no-args</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisStart</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: one-arg</span><br><span style="color: hsl(120, 100%, 40%);">+                    args: ['apples']</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+            requests:</span><br><span style="color: hsl(120, 100%, 40%);">+                method: 'post'</span><br><span style="color: hsl(120, 100%, 40%);">+                uri: 'channels/testsuite-default-id/move'</span><br><span style="color: hsl(120, 100%, 40%);">+                params:</span><br><span style="color: hsl(120, 100%, 40%);">+                    app: 'multiple-args'</span><br><span style="color: hsl(120, 100%, 40%);">+                    appArgs: 'apples,bananas,carrots'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisEnd</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: one-arg</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisStart</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: multiple-args</span><br><span style="color: hsl(120, 100%, 40%);">+                    args: ['apples','bananas','carrots']</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+            requests:</span><br><span style="color: hsl(120, 100%, 40%);">+                method: 'delete'</span><br><span style="color: hsl(120, 100%, 40%);">+                uri: 'channels/testsuite-default-id'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+                match:</span><br><span style="color: hsl(120, 100%, 40%);">+                    type: StasisEnd</span><br><span style="color: hsl(120, 100%, 40%);">+                    application: multiple-args</span><br><span style="color: hsl(120, 100%, 40%);">+            count: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : autobahn.websocket</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : requests</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : twisted</span><br><span style="color: hsl(120, 100%, 40%);">+        - python : starpy</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : res_ari_channels</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : app_echo</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - ARI</span><br><span>diff --git a/tests/rest_api/tests.yaml b/tests/rest_api/tests.yaml</span><br><span>index ac9303c..8968f8f 100644</span><br><span>--- a/tests/rest_api/tests.yaml</span><br><span>+++ b/tests/rest_api/tests.yaml</span><br><span>@@ -17,3 +17,4 @@</span><br><span>     - dir:  'events'</span><br><span>     - dir:  'message'</span><br><span>     - dir:  'external_interaction'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'move'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/10952">change 10952</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/testsuite/+/10952"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I83a2da829dc363727de8c7b56680d21692011e40 </div>
<div style="display:none"> Gerrit-Change-Number: 10952 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: Joshua C. Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>