2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2022 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.cps.ncmp.api.impl.event.lcm
23 import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent
24 import spock.lang.Specification
26 class LcmEventsServiceSpec extends Specification {
28 def mockLcmEventsPublisher = Mock(LcmEventsPublisher)
30 def objectUnderTest = new LcmEventsService(mockLcmEventsPublisher)
32 def 'Create and Publish lcm event where events are #scenario'() {
33 given: 'a cm handle id and Ncmp Event'
34 def cmHandleId = 'test-cm-handle-id'
35 def ncmpEvent = new NcmpEvent(eventId: UUID.randomUUID().toString(), eventCorrelationId: cmHandleId)
36 and: 'notifications enabled is #notificationsEnabled'
37 objectUnderTest.notificationsEnabled = notificationsEnabled
38 when: 'service is called to publish lcm event'
39 objectUnderTest.publishLcmEvent('test-cm-handle-id', ncmpEvent)
40 then: 'publisher is called #expectedTimesMethodCalled times'
41 expectedTimesMethodCalled * mockLcmEventsPublisher.publishEvent(_, cmHandleId, ncmpEvent)
42 where: 'the following values are used'
43 scenario | notificationsEnabled || expectedTimesMethodCalled
45 'disabled' | false || 0