# new feature # Tags: optional Feature: Subscriber Background: * url nbiBaseUrl * def Context = Java.type('org.onap.nbi.test.Context'); * call Context.startServers(); * def data = read('../data/subscriber.json') * def serviceOrderData = read('../data/serviceOrder.json') * def checkDateFormat = """ function(s) { var SimpleDateFormat = Java.type("java.text.SimpleDateFormat"); var sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); return sdf.parse(s); } """ Scenario: testFindWhenNoSubscriber Given path 'hub' When method get Then status 200 And match $ == '#[0]' Scenario: testCreationAndFindSubscriber Given path 'hub' And request data[0] When method post Then status 201 Given url 'http://localhost:8080/nbi/api/v3/hub/' When method get And match $ == '#[1]' Scenario: testGetByIdSubscriber Given path 'hub' When method get And def Id = $[0].id Given path 'hub',Id When method get And match $ contains { callback : 'http://localhost:8080/test' , query : 'eventType=ServiceOrderCreationNotification' } Scenario: testFindSubscriber Given path 'hub' And request data[1] When method post Then status 201 Given path 'hub' And request data[2] When method post Then status 201 Given path 'hub' When method get Then status 200 And match $ == '#notnull' Scenario: testFindWithFilteringSubscriber Given path 'hub' And params { query.eventType : 'ServiceOrderCreationNotification' } When method get Then status 200 And match $ == '#[1]' Scenario: testSubscriberDeletion Given path 'hub' And request { id : 'id', callback : 'http://localhost:8080/test' , query : 'eventType = ServiceOrderCreationNotification' } When method post Then status 201 Given path 'hub' When method get And def Id = $[0].id Given path 'hub',Id When method delete Then status 204 Scenario: testSubscriberWithTestListener * def listenerUrl = nbiBaseUrl + "/test/listener" Given path 'test/listener' When method delete Then status 204 Given path 'hub' And request { id : 'id', callback : '#(listenerUrl)' , query : 'eventType = ServiceOrderCreationNotification' } When method post Then status 201 Given path 'hub' When method get And def hubId = $[0].id Given path 'serviceOrder' And request serviceOrderData[17] When method post Then status 201 And def serviceOrderId = $.id Given path 'test/listener' And params {serviceOrderId : '#(serviceOrderId)'} When method get Then status 200 And assert response.length == 1 And match $[0] contains { eventId : '#notnull' , eventType : 'ServiceOrderCreationNotification' , eventDate : '#notnull' , event :'#notnull'} And def eventId = $[0].eventId And def eventDate = $[0].eventDate And call checkDateFormat(eventDate) Given path 'hub',hubId When method delete Then status 204 Given path 'test/listener',eventId When method delete Then status 204 Given path 'serviceOrder',serviceOrderId When method delete Then status 204