Test case added for code coverage
[sdnc/northbound.git] / generic-resource-api / provider / src / test / java / org / onap / sdnc / northbound / util / MDSALUtil.java
index 6586c8e..a6300d6 100644 (file)
 
 package org.onap.sdnc.northbound.util;
 
-import com.google.common.base.Optional;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.BrgTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.BrgTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ConnectionAttachmentTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ConnectionAttachmentTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ContrailRouteTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ContrailRouteTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadNetworkTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadNetworkTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadVfModuleTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadVfModuleTopologyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.SecurityZoneTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.SecurityZoneTopologyOperationOutputBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ServiceTopologyOperationInputBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ServiceTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.Services;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.TunnelxconnTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.TunnelxconnTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VfModuleTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VfModuleTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.brg.response.information.BrgResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.connection.attachment.response.information.ConnectionAttachmentResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.contrail.route.response.information.ContrailRouteResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.information.NetworkInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.response.information.NetworkResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.topology.identifier.structure.NetworkTopologyIdentifierStructureBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.preload.network.topology.information.PreloadNetworkTopologyInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.preload.vf.module.topology.information.PreloadVfModuleTopologyInformationBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.request.information.RequestInformationBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.sdnc.request.header.SdncRequestHeaderBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.security.zone.response.information.SecurityZoneResponseInformationBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.data.ServiceDataBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.information.ServiceInformationBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.Service;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.level.oper.status.ServiceLevelOperStatusBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.ServiceBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.ServiceKey;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.response.information.ServiceResponseInformationBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.status.ServiceStatusBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.tunnelxconn.response.information.TunnelxconnResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.information.VfModuleInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.response.information.VfModuleResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.topology.VfModuleTopologyBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.topology.identifier.VfModuleTopologyIdentifierBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.information.VnfInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.response.information.VnfResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.topology.identifier.structure.VnfTopologyIdentifierStructureBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.details.PnfDetailsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.response.information.PnfResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.topology.identifier.structure.PnfTopologyIdentifierStructureBuilder;
 import org.opendaylight.yangtools.concepts.Builder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 
-import java.util.concurrent.Future;
-import java.util.function.Function;
-
 
 /**
  * This uill class provides utility to build yang objects using a recursive syntax that resembles the tree structure
@@ -72,12 +111,87 @@ import java.util.function.Function;
  */
 public class MDSALUtil {
 
+    public static PreloadVfModuleTopologyOperationInputBuilder preloadVfModuleTopologyOperationInput() {
+        return new PreloadVfModuleTopologyOperationInputBuilder();
+    }
+
+    public static GenericConfigurationTopologyOperationInputBuilder GenericConfigurationTopologyOperationInput() {
+        return new GenericConfigurationTopologyOperationInputBuilder();
+    }
+
+    public static PreloadVfModuleTopologyOperationOutputBuilder preloadVfModuleTopologyOperationOutput() {
+        return new PreloadVfModuleTopologyOperationOutputBuilder();
+    }
+
+    public static PreloadNetworkTopologyOperationInputBuilder preloadNetworkTopologyOperationInput() {
+        return new PreloadNetworkTopologyOperationInputBuilder();
+    }
+
+    public static PreloadNetworkTopologyOperationOutputBuilder preloadNetworkTopologyOperationOutput() {
+        return new PreloadNetworkTopologyOperationOutputBuilder();
+    }
+
+    public static BrgTopologyOperationInputBuilder brgTopologyOperationInput() {
+        return new BrgTopologyOperationInputBuilder();
+    }
+
+    public static BrgTopologyOperationOutputBuilder brgTopologyOperationOutput() {
+        return new BrgTopologyOperationOutputBuilder();
+    }
+
+    public static TunnelxconnTopologyOperationInputBuilder tunnelxconnTopologyOperationInput() {
+        return new TunnelxconnTopologyOperationInputBuilder();
+    }
+
+    public static TunnelxconnTopologyOperationOutputBuilder tunnelxconnTopologyOperationOutput() {
+        return new TunnelxconnTopologyOperationOutputBuilder();
+    }
+
+    public static SecurityZoneTopologyOperationInputBuilder securityZoneTopologyOperationInput() {
+        return new SecurityZoneTopologyOperationInputBuilder();
+    }
+
+    public static SecurityZoneTopologyOperationOutputBuilder securityZoneTopologyOperationOutput() {
+        return new SecurityZoneTopologyOperationOutputBuilder();
+    }
+
+    public static ContrailRouteTopologyOperationInputBuilder contrailRouteTopologyOperationInput() {
+        return new ContrailRouteTopologyOperationInputBuilder();
+    }
+
+    public static ContrailRouteTopologyOperationOutputBuilder contrailRouteTopologyOperationOutput() {
+        return new ContrailRouteTopologyOperationOutputBuilder();
+    }
+
+    public static VfModuleTopologyOperationInputBuilder vfModuleTopologyOperationInput() {
+        return new VfModuleTopologyOperationInputBuilder();
+    }
+
+    public static VfModuleTopologyOperationOutputBuilder vfModuleTopologyOperationOutput() {
+        return new VfModuleTopologyOperationOutputBuilder();
+    }
+
+    public static PnfTopologyOperationInputBuilder pnfTopologyOperationInput() {
+        return new PnfTopologyOperationInputBuilder();
+    }
+
+    public static PnfTopologyOperationOutputBuilder pnfTopologyOperationOutput() {
+        return new PnfTopologyOperationOutputBuilder();
+    }
+
+    public static VnfTopologyOperationInputBuilder vnfTopologyOperationInput() {
+        return new VnfTopologyOperationInputBuilder();
+    }
+
+    public static VnfTopologyOperationOutputBuilder vnfTopologyOperationOutput() {
+        return new VnfTopologyOperationOutputBuilder();
+    }
+
     public static ServiceTopologyOperationInputBuilder serviceTopologyOperationInput() {
         return new ServiceTopologyOperationInputBuilder();
     }
 
-
-    public static ServiceTopologyOperationOutputBuilder serviceTopologyOperationOutput(){
+    public static ServiceTopologyOperationOutputBuilder serviceTopologyOperationOutput() {
         return new ServiceTopologyOperationOutputBuilder();
     }
 
@@ -91,68 +205,152 @@ public class MDSALUtil {
         return new RequestInformationBuilder();
     }
 
-    public static ServiceResponseInformationBuilder serviceResponseInformation(){
-        return  new ServiceResponseInformationBuilder();
+    public static ServiceResponseInformationBuilder serviceResponseInformation() {
+        return new ServiceResponseInformationBuilder();
+    }
+    
+    public static SecurityZoneResponseInformationBuilder securityZoneResponseInformation() {
+        return new SecurityZoneResponseInformationBuilder();
+    }
+
+    public static TunnelxconnResponseInformationBuilder tunnelxconnResponseInformation() {
+        return new TunnelxconnResponseInformationBuilder();
+    }
+
+    public static BrgResponseInformationBuilder brgResponseInformation() {
+        return new BrgResponseInformationBuilder();
+    }
+
+    public static ContrailRouteResponseInformationBuilder contrailRouteResponseInformation() {
+        return new ContrailRouteResponseInformationBuilder();
+    }
+
+    public static PnfResponseInformationBuilder pnfResponseInformation() {
+        return new PnfResponseInformationBuilder();
+    }
+
+    public static VnfResponseInformationBuilder vnfResponseInformation() {
+        return new VnfResponseInformationBuilder();
+    }
+
+    public static VfModuleResponseInformationBuilder vfModuleResponseInformation() {
+        return new VfModuleResponseInformationBuilder();
     }
 
     public static ServiceInformationBuilder serviceInformationBuilder() {
-        return  new ServiceInformationBuilder();
+        return new ServiceInformationBuilder();
     }
 
+    public static PreloadNetworkTopologyInformationBuilder preloadNetworkTopologyInformationBuilder() {
+        return new PreloadNetworkTopologyInformationBuilder();
+    }
 
-    public static ServiceBuilder service(){return new ServiceBuilder();}
+    public static NetworkTopologyIdentifierStructureBuilder networkTopologyIdentifierStructureBuilder(){
+        return new NetworkTopologyIdentifierStructureBuilder();
+    }
 
+    public static PnfDetailsBuilder pnfDetailsBuilder() {
+        return new PnfDetailsBuilder();
+    }
 
-    public static ServiceDataBuilder serviceData(){return new ServiceDataBuilder();}
+    public static VnfInformationBuilder vnfInformationBuilder() {
+        return new VnfInformationBuilder();
+    }
 
+    public static VfModuleInformationBuilder vfModuleInformationBuilder() {
+        return new VfModuleInformationBuilder();
+    }
 
-    public static ServiceStatusBuilder serviceStatus(){return new ServiceStatusBuilder();}
+    public static ServiceBuilder service() {
+        return new ServiceBuilder();
+    }
 
-    public static <P> P build(Builder<P> b) {
-        return b == null? null :b.build();
+    public static ServiceDataBuilder serviceData() {
+        return new ServiceDataBuilder();
     }
 
-    public static <O> O result(Future<RpcResult<O>> future, Function<RpcResult<O>,O> function)  throws Exception {
-        return function.apply(future.get());
+    public static ServiceStatusBuilder serviceStatus() {
+        return new ServiceStatusBuilder();
     }
 
-    public static <I,O> O rpc(Function<I,Future<RpcResult<O>>> rpc,Function<RpcResult<O>,O> function,I input)  throws Exception {
-        Future<RpcResult<O>> future = rpc.apply(input);
-        return function.apply(future.get());
+    public static NetworkInformationBuilder networkInformation() {
+        return new NetworkInformationBuilder();
     }
 
+    public static NetworkTopologyOperationInputBuilder networkTopologyOperationInput() {
+        return new NetworkTopologyOperationInputBuilder();
+    }
 
+    public static NetworkTopologyOperationOutputBuilder networkTopologyOperationOutput() {
+        return new NetworkTopologyOperationOutputBuilder();
+    }
 
-    /** @return Service - the Service object read from the DataBroker or null if none was found */
-    public static Service read(DataBroker dataBroker,String serviceKey, LogicalDatastoreType logicalDatastoreType) throws Exception {
-        InstanceIdentifier serviceInstanceIdentifier = InstanceIdentifier.<Services>builder(Services.class)
-                .child(Service.class, new ServiceKey(serviceKey)).build();
-        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-        Optional<Service> data = (Optional<Service>) readTx.read(logicalDatastoreType, serviceInstanceIdentifier).get();
-        if(!data.isPresent()){
-            return null;
-        }
+    public static PnfTopologyIdentifierStructureBuilder pnfTopologyIdentifierStructureBuilder() {
+        return new PnfTopologyIdentifierStructureBuilder();
+    }
+
+    public static VnfTopologyIdentifierStructureBuilder vnfTopologyIdentifierStructureBuilder() {
+        return new VnfTopologyIdentifierStructureBuilder();
+    }
+
+    public static PreloadVfModuleTopologyInformationBuilder preloadVfModuleTopologyInformationBuilder() {
+        return new PreloadVfModuleTopologyInformationBuilder();
+    }
 
+    public static VfModuleTopologyBuilder vfModuleTopologyBuilder() {
+        return new VfModuleTopologyBuilder();
+    }
+    
+    public static VfModuleTopologyIdentifierBuilder vfModuleTopologyIdentifierBuilder() {
+        return new VfModuleTopologyIdentifierBuilder();
+    }
+    
+    public static NetworkResponseInformationBuilder networkResponseInformation() {
+        return new NetworkResponseInformationBuilder();
+    }
+
+    public static ConnectionAttachmentTopologyOperationInputBuilder connectionAttachmentTopologyOperationInput() {
+        return new ConnectionAttachmentTopologyOperationInputBuilder();
+    }
 
-        //The toString() value from a Service object returned form data.get() is different than the toString() value
-        //from a Service Object constructed from a Builder. This makes it difficult to compare deltas when doing a
-        // assertEquals.  That why we rebuild it her to solve that problem.
-        Service service = data.get();
-        return build(
-                (new ServiceBuilder(service))
-                        .setServiceStatus(build(
-                                service.getServiceStatus() == null ? null : new ServiceStatusBuilder(service.getServiceStatus())
-                        ))
-                        .setServiceData(build(
-                                service.getServiceData() == null ? null : new ServiceDataBuilder(service.getServiceData())
-                        ))
-        );
+    public static ConnectionAttachmentTopologyOperationOutputBuilder connectionAttachmentTopologyOperationOutput() {
+        return new ConnectionAttachmentTopologyOperationOutputBuilder();
     }
 
+    public static ConnectionAttachmentResponseInformationBuilder connectionAttachmentResponseInformation() {
+        return new ConnectionAttachmentResponseInformationBuilder();
+    }
 
+    public static ServiceLevelOperStatusBuilder serviceLevelOperStatus() {
+        return new ServiceLevelOperStatusBuilder();
+    }
 
+    public static <P> P build(Builder<P> b) {
+        return b == null ? null : b.build();
+    }
 
+    public static <P, B extends Builder<P>> P build(Function<P, B> builderConstructor, P sourceDataObject) {
+        if (sourceDataObject == null) {
+            return null;
+        }
+        B bp = builderConstructor.apply(sourceDataObject);
+        return bp.build();
+    }
 
+    public static <P, B extends Builder<P>> P build(Function<P, B> builderConstructor, P sourceDataObject,
+        Consumer<B> builder) {
+        if (sourceDataObject == null) {
+            return null;
+        }
+        B bp = builderConstructor.apply(sourceDataObject);
+        builder.accept(bp);
+        return bp.build();
+    }
 
+    public static <I, O> O exec(Function<I, Future<RpcResult<O>>> rpc, I rpcParameter,
+        Function<RpcResult<O>, O> rpcResult) throws Exception {
+        Future<RpcResult<O>> future = rpc.apply(rpcParameter);
+        return rpcResult.apply(future.get());
+    }
 
 }