Don't use NotificationListener (Servicehandler)
[transportpce.git] / servicehandler / src / test / java / org / opendaylight / transportpce / servicehandler / listeners / NetworkModelListenerImplTest.java
diff --git a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/listeners/NetworkModelListenerImplTest.java b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/listeners/NetworkModelListenerImplTest.java
deleted file mode 100644 (file)
index 93d1f95..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
- * Copyright © 2022 Orange, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.transportpce.servicehandler.listeners;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doCallRealMethod;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.opendaylight.mdsal.binding.api.NotificationPublishService;
-import org.opendaylight.transportpce.common.OperationResult;
-import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.TopologyUpdateResult;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.TopologyUpdateResultBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.topology.update.result.TopologyChanges;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.topology.update.result.TopologyChangesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116.topology.update.result.TopologyChangesKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.list.ServicesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.AToZDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZ;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ztoa.direction.ZToA;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ztoa.direction.ZToABuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ztoa.direction.ZToAKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.ResourceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.LinkBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.NodeBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.pce.resource.resource.resource.TerminationPointBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.path.PathDescription;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.path.PathDescriptionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.ServicePathListBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
-
-@ExtendWith(MockitoExtension.class)
-public class NetworkModelListenerImplTest {
-
-    @Mock
-    private NotificationPublishService notificationPublishService;
-    @Mock
-    private ServiceDataStoreOperations serviceDataStoreOperations;
-    private static PathDescription pathDescription;
-    private NetworkModelListenerImpl networkModelListener;
-
-    @BeforeEach
-    void setUp() {
-        pathDescription = new PathDescriptionBuilder()
-                .setAToZDirection(new AToZDirectionBuilder().setAToZ(new HashMap<>(createMapAtoZ())).build())
-                .setZToADirection(new ZToADirectionBuilder().setZToA(new HashMap<>(createMapZtoA())).build())
-                .build();
-        networkModelListener = new NetworkModelListenerImpl(notificationPublishService,
-                serviceDataStoreOperations);
-    }
-
-    @Test
-    void testChangePathElementStateZAShouldNotModifyPathDescriptionsElementStates() {
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.InService)
-                        .build(),
-                new TopologyChangesKey("tpNodeIdA", "TpIdA2"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA2")
-                        .setState(State.InService)
-                        .build()
-        );
-
-        assertEquals(
-            pathDescription.getZToADirection().getZToA(),
-            networkModelListener.changePathElementStateZA(topologyChanges, pathDescription));
-    }
-
-    @Test
-    void testChangePathElementStateZAShouldModifyPathDescriptionsElementStates() {
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.OutOfService)
-                        .build(),
-                new TopologyChangesKey("tpNodeIdA", "TpIdA2"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA2")
-                        .setState(State.OutOfService)
-                        .build());
-
-        Map<ZToAKey, ZToA> ztoamapExpected = pathDescription.getZToADirection().getZToA();
-        ztoamapExpected.computeIfPresent(
-                new ZToAKey("6"),
-                (zToAKey, zToA) -> new ZToABuilder(zToA)
-                        .setResource(new ResourceBuilder(zToA.getResource())
-                                .setState(State.OutOfService)
-                                .build())
-                        .build());
-        ztoamapExpected.computeIfPresent(
-                new ZToAKey("4"),
-                (zToAKey, zToA) -> new ZToABuilder(zToA)
-                        .setResource(new ResourceBuilder(zToA.getResource())
-                                .setState(State.OutOfService)
-                                .build())
-                        .build());
-        assertEquals(ztoamapExpected, networkModelListener.changePathElementStateZA(topologyChanges, pathDescription));
-    }
-
-    @Test
-    void testChangePathElementStateAZShouldNotModifyPathDescriptionsElementStates() {
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.InService)
-                        .build(),
-                new TopologyChangesKey("tpNodeIdA", "TpIdA2"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA2")
-                        .setState(State.InService)
-                        .build());
-
-        assertEquals(
-            pathDescription.getAToZDirection().getAToZ(),
-            networkModelListener.changePathElementStateAZ(topologyChanges, pathDescription));
-    }
-
-    @Test
-    void testChangePathElementStateAZShouldModifyPathDescriptionsElementStates() {
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.OutOfService)
-                        .build(),
-                new TopologyChangesKey("tpNodeIdA", "TpIdA2"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA2")
-                        .setState(State.OutOfService)
-                        .build());
-
-        Map<AToZKey, AToZ> atozmapExpected = pathDescription.getAToZDirection().getAToZ();
-        atozmapExpected.computeIfPresent(
-                new AToZKey("0"),
-                (aToZKey, aToZ) -> new AToZBuilder(aToZ)
-                        .setResource(new ResourceBuilder(aToZ.getResource())
-                                .setState(State.OutOfService)
-                                .build())
-                        .build());
-        atozmapExpected.computeIfPresent(
-                new AToZKey("2"),
-                (aToZKey, aToZ) -> new AToZBuilder(aToZ)
-                        .setResource(new ResourceBuilder(aToZ.getResource())
-                                .setState(State.OutOfService)
-                                .build())
-                        .build());
-        assertEquals(atozmapExpected, networkModelListener.changePathElementStateAZ(topologyChanges, pathDescription));
-    }
-
-    @Test
-    void testAllElementsinPathinServiceShouldReturnFalse() {
-        Map<AToZKey, AToZ> atozmap = pathDescription.getAToZDirection().getAToZ();
-        atozmap.computeIfPresent(
-                new AToZKey("0"),
-                (aToZKey, aToZ) -> new AToZBuilder(aToZ)
-                        .setResource(new ResourceBuilder(aToZ.getResource())
-                                .setState(State.OutOfService)
-                                .build())
-                        .build());
-        Map<ZToAKey, ZToA> ztoamap = pathDescription.getZToADirection().getZToA();
-        ztoamap.computeIfPresent(
-                new ZToAKey("6"),
-                (zToAKey, zToA) -> new ZToABuilder(zToA)
-                        .setResource(new ResourceBuilder(zToA.getResource())
-                                .setState(State.OutOfService)
-                                .build())
-                        .build());
-        assertFalse(networkModelListener.allElementsinPathinService(atozmap, ztoamap));
-    }
-
-    @Test
-    void testAllElementsinPathinServiceShouldReturnTrue() {
-        assertTrue(networkModelListener.allElementsinPathinService(pathDescription.getAToZDirection().getAToZ(),
-                pathDescription.getZToADirection().getZToA()));
-    }
-
-    @Test
-    void testUpdateServicePathsShouldNotModifyServiceState() {
-        Map<ServicePathsKey, ServicePaths> servicePathMap = Map.of(new ServicePathsKey("service-path 1"),
-                new ServicePathsBuilder()
-                        .setServicePathName("service-path 1")
-                        .setPathDescription(pathDescription)
-                        .build());
-
-        when(serviceDataStoreOperations.getServicePaths())
-            .thenReturn(Optional.of(new ServicePathListBuilder().setServicePaths(servicePathMap).build()));
-        when(serviceDataStoreOperations.modifyServicePath(any(PathDescription.class), anyString()))
-            .thenReturn(OperationResult.ok(""));
-        when(serviceDataStoreOperations.getService(anyString()))
-            .thenReturn(Optional.of(new ServicesBuilder()
-                    .setServiceName("serviceTest")
-                    .setOperationalState(State.InService)
-                    .setAdministrativeState(AdminStates.InService)
-                    .build()));
-
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdC", "TpIdC1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdC")
-                        .setTpId("TpIdC1")
-                        .setState(State.OutOfService)
-                        .build(),
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.InService)
-                        .build());
-
-        networkModelListener.updateServicePaths(new TopologyUpdateResultBuilder()
-                .setTopologyChanges(topologyChanges).build());
-        verify(serviceDataStoreOperations, never())
-            .modifyService(anyString(), any(State.class), any(AdminStates.class));
-    }
-
-    @Test
-    void testUpdateServicePathsShouldModifyServiceState() {
-        Map<ServicePathsKey, ServicePaths> servicePathMap = Map.of(
-                new ServicePathsKey("service-path 1"),
-                new ServicePathsBuilder()
-                        .setServicePathName("service-path 1")
-                        .setPathDescription(pathDescription)
-                        .build());
-
-        when(serviceDataStoreOperations.getServicePaths())
-            .thenReturn(Optional.of(new ServicePathListBuilder().setServicePaths(servicePathMap).build()));
-        when(serviceDataStoreOperations.modifyServicePath(any(PathDescription.class), anyString()))
-            .thenReturn(OperationResult.ok(""));
-        when(serviceDataStoreOperations.getService(anyString()))
-            .thenReturn(Optional.of(new ServicesBuilder()
-                    .setServiceName("serviceTest")
-                    .setOperationalState(State.InService)
-                    .setAdministrativeState(AdminStates.InService)
-                    .build()));
-        when(serviceDataStoreOperations.modifyService(anyString(), any(State.class), any(AdminStates.class)))
-            .thenReturn(OperationResult.ok(""));
-
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.OutOfService)
-                        .build());
-
-        networkModelListener.updateServicePaths(new TopologyUpdateResultBuilder()
-                .setTopologyChanges(topologyChanges).build());
-        verify(serviceDataStoreOperations, times(1))
-            .modifyService(anyString(), eq(State.OutOfService), any(AdminStates.class));
-    }
-
-    @Test
-    void testOnTopologyUpdateResultWhenNeverWired() {
-        NetworkModelListenerImpl networkModelListenerMocked = Mockito.mock(NetworkModelListenerImpl.class);
-        doCallRealMethod().when(networkModelListenerMocked).onTopologyUpdateResult(any(TopologyUpdateResult.class));
-
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges1 = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.OutOfService)
-                        .build());
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges2 = Map.of(
-                new TopologyChangesKey("tpNodeIdC", "TpIdC1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdC")
-                        .setTpId("TpIdC1")
-                        .setState(State.OutOfService)
-                        .build());
-
-        networkModelListenerMocked.onTopologyUpdateResult(new TopologyUpdateResultBuilder()
-                .setTopologyChanges(topologyChanges1).build());
-        networkModelListenerMocked.onTopologyUpdateResult(new TopologyUpdateResultBuilder()
-                .setTopologyChanges(topologyChanges2).build());
-        verify(networkModelListenerMocked, times(2)).updateServicePaths(any(TopologyUpdateResult.class));
-    }
-
-    @Test
-    void testOnTopologyUpdateResultWhenAlreadyWired() {
-        NetworkModelListenerImpl networkModelListenerMocked = Mockito.mock(NetworkModelListenerImpl.class);
-        doCallRealMethod().when(networkModelListenerMocked).onTopologyUpdateResult(any(TopologyUpdateResult.class));
-
-        Map<TopologyChangesKey, TopologyChanges> topologyChanges = Map.of(
-                new TopologyChangesKey("tpNodeIdA", "TpIdA1"),
-                new TopologyChangesBuilder()
-                        .setNodeId("tpNodeIdA")
-                        .setTpId("TpIdA1")
-                        .setState(State.OutOfService)
-                        .build());
-        TopologyUpdateResult topologyUpdateResult = new TopologyUpdateResultBuilder()
-                .setTopologyChanges(topologyChanges).build();
-
-        networkModelListenerMocked.onTopologyUpdateResult(topologyUpdateResult);
-        networkModelListenerMocked.onTopologyUpdateResult(topologyUpdateResult);
-        verify(networkModelListenerMocked, times(1)).updateServicePaths(any(TopologyUpdateResult.class));
-    }
-
-    private Map<AToZKey, AToZ> createMapAtoZ() {
-        Map<AToZKey, AToZ> atozmap = new HashMap<>();
-        atozmap.put(
-                new AToZKey("0"),
-                new AToZBuilder()
-                        .setId("0")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdA")
-                                        .setTpId("TpIdA1")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        atozmap.put(
-                new AToZKey("1"),
-                new AToZBuilder()
-                        .setId("1")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new NodeBuilder()
-                                        .setNodeId("NodeIdA")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        atozmap.put(
-                new AToZKey("2"),
-                new AToZBuilder()
-                        .setId("2")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdA")
-                                        .setTpId("TpIdA2")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        atozmap.put(
-                new AToZKey("3"),
-                new AToZBuilder()
-                        .setId("3")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new LinkBuilder()
-                                        .setLinkId("LinkIdAZ")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        atozmap.put(
-                new AToZKey("4"),
-                new AToZBuilder()
-                        .setId("4")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdZ")
-                                        .setTpId("TpIdZ2")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        atozmap.put(
-                new AToZKey("5"),
-                new AToZBuilder()
-                        .setId("5")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new NodeBuilder()
-                                        .setNodeId("NodeIdZ")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        atozmap.put(
-                new AToZKey("6"),
-                new AToZBuilder()
-                        .setId("6")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdZ")
-                                        .setTpId("TpIdZ1")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        return atozmap;
-    }
-
-    private Map<ZToAKey, ZToA> createMapZtoA() {
-        Map<ZToAKey, ZToA> ztoamap = new HashMap<>();
-        ztoamap.put(
-                new ZToAKey("0"),
-                new ZToABuilder()
-                        .setId("0")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdZ")
-                                        .setTpId("TpIdZ1")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        ztoamap.put(
-                new ZToAKey("1"),
-                new ZToABuilder()
-                        .setId("1")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new NodeBuilder()
-                                        .setNodeId("NodeIdZ")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        ztoamap.put(
-                new ZToAKey("2"),
-                new ZToABuilder()
-                        .setId("2")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdZ")
-                                        .setTpId("TpIdZ2")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        ztoamap.put(
-                new ZToAKey("3"),
-                new ZToABuilder()
-                        .setId("3")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new LinkBuilder()
-                                        .setLinkId("LinkIdAZ")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        ztoamap.put(
-                new ZToAKey("4"),
-                new ZToABuilder()
-                        .setId("4")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdA")
-                                        .setTpId("TpIdA2")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        ztoamap.put(
-                new ZToAKey("5"),
-                new ZToABuilder()
-                        .setId("5")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new NodeBuilder()
-                                        .setNodeId("NodeIdA")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        ztoamap.put(
-                new ZToAKey("6"),
-                new ZToABuilder()
-                        .setId("6")
-                        .setResource(new ResourceBuilder()
-                                .setResource(new TerminationPointBuilder()
-                                        .setTpNodeId("tpNodeIdA")
-                                        .setTpId("TpIdA1")
-                                        .build())
-                                .setState(State.InService)
-                                .build())
-                        .build());
-        return ztoamap;
-    }
-}