/*
 * Swagger of Opencellsoft Api
 * @#Introduction
 *
 * The version of the OpenAPI document: 7.3.1-SNAPSHOT
 * Contact: contact@opencellsoft.fr
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package org.openapitools.client.api;

import org.openapitools.client.ApiException;
import org.openapitools.client.model.ActionStatus;
import org.openapitools.client.model.ActivateServicesRequestDto;
import org.openapitools.client.model.ApplyOneShotChargeInstanceRequestDto;
import org.openapitools.client.model.ApplyProductRequestDto;
import org.openapitools.client.model.GetDueDateDelayResponseDto;
import org.openapitools.client.model.GetListServiceInstanceResponseDto;
import org.openapitools.client.model.GetOneShotChargesResponseDto;
import org.openapitools.client.model.GetServiceInstanceResponseDto;
import org.openapitools.client.model.GetSubscriptionResponseDto;
import org.openapitools.client.model.InstantiateServicesRequestDto;
import org.openapitools.client.model.OperationServicesRequestDto;
import org.openapitools.client.model.OperationSubscriptionRequestDto;
import org.openapitools.client.model.PagingAndFiltering;
import org.openapitools.client.model.RateSubscriptionRequestDto;
import org.openapitools.client.model.RateSubscriptionResponseDto;
import org.openapitools.client.model.SubscriptionAndServicesToActivateRequestDto;
import org.openapitools.client.model.SubscriptionDto;
import org.openapitools.client.model.SubscriptionForCustomerRequestDto;
import org.openapitools.client.model.SubscriptionForCustomerResponseDto;
import org.openapitools.client.model.SubscriptionsListResponseDto;
import org.openapitools.client.model.TerminateSubscriptionRequestDto;
import org.openapitools.client.model.TerminateSubscriptionServicesRequestDto;
import org.openapitools.client.model.UpdateServicesRequestDto;
import org.junit.Test;
import org.junit.Ignore;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * API tests for SubscriptionApi
 */
@Ignore
public class SubscriptionApiTest {

    private final SubscriptionApi api = new SubscriptionApi();

    
    /**
     *  Search for a subscription with a given code.  
     *
     *  Search for a subscription with a given code.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void dELETESubscriptionOneShotChargeSubscriptionCodeOneshotChargeCode1Test() throws ApiException {
        String subscriptionCode = null;
        String oneshotChargeCode = null;
        ActionStatus response = api.dELETESubscriptionOneShotChargeSubscriptionCodeOneshotChargeCode1(subscriptionCode, oneshotChargeCode);

        // TODO: test validations
    }
    
    /**
     *  Get version of application  
     *
     *  Get version of application  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETIBaseVersion40Test() throws ApiException {
        ActionStatus response = api.gETIBaseVersion40();

        // TODO: test validations
    }
    
    /**
     *  Returns the due date delay information.  
     *
     *  Returns the due date delay information.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionDueDateDelay1Test() throws ApiException {
        String subscriptionCode = null;
        String invoiceNumber = null;
        String invoiceTypeCode = null;
        String orderCode = null;
        GetDueDateDelayResponseDto response = api.gETSubscriptionDueDateDelay1(subscriptionCode, invoiceNumber, invoiceTypeCode, orderCode);

        // TODO: test validations
    }
    
    /**
     *  List subscriptions matching a given criteria  
     *
     *  List subscriptions matching a given criteria  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionList1Test() throws ApiException {
        String userAccountCode = null;
        Boolean mergedCF = null;
        String query = null;
        String fields = null;
        Integer offset = null;
        Integer limit = null;
        String sortBy = null;
        String sortOrder = null;
        String inheritCF = null;
        SubscriptionsListResponseDto response = api.gETSubscriptionList1(userAccountCode, mergedCF, query, fields, offset, limit, sortBy, sortOrder, inheritCF);

        // TODO: test validations
    }
    
    /**
     *  Deprecated in v.4.7.2 Use /list instead.  
     *
     *  Deprecated in v.4.7.2 Use /list instead.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionListAll1Test() throws ApiException {
        Integer offset = null;
        Integer limit = null;
        Boolean mergedCF = null;
        String sortBy = null;
        String sortOrder = null;
        SubscriptionsListResponseDto response = api.gETSubscriptionListAll1(offset, limit, mergedCF, sortBy, sortOrder);

        // TODO: test validations
    }
    
    /**
     *  Search for a subscription with a given code.   
     *
     *  Search for a subscription with a given code.   
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionListOneshotChargeOthers1Test() throws ApiException {
        String subscriptionCode = null;
        GetOneShotChargesResponseDto response = api.gETSubscriptionListOneshotChargeOthers1(subscriptionCode);

        // TODO: test validations
    }
    
    /**
     *  Search for a subscription with a given code.  
     *
     *  Search for a subscription with a given code.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionSearch1Test() throws ApiException {
        String subscriptionCode = null;
        Boolean mergedCF = null;
        String inheritCF = null;
        GetSubscriptionResponseDto response = api.gETSubscriptionSearch1(subscriptionCode, mergedCF, inheritCF);

        // TODO: test validations
    }
    
    /**
     *  Find service instance.  
     *
     *  Find service instance.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionserviceInstance1Test() throws ApiException {
        String subscriptionCode = null;
        Long serviceInstanceId = null;
        String serviceInstanceCode = null;
        GetServiceInstanceResponseDto response = api.gETSubscriptionserviceInstance1(subscriptionCode, serviceInstanceId, serviceInstanceCode);

        // TODO: test validations
    }
    
    /**
     *  Returns a list of service instances.  
     *
     *  Returns a list of service instances.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETSubscriptionserviceInstances1Test() throws ApiException {
        String subscriptionCode = null;
        String serviceInstanceCode = null;
        GetListServiceInstanceResponseDto response = api.gETSubscriptionserviceInstances1(subscriptionCode, serviceInstanceCode);

        // TODO: test validations
    }
    
    /**
     *  Activate a given Subscription.  
     *
     *  Activate a given Subscription.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionActivate1Test() throws ApiException {
        String body = null;
        ActionStatus response = api.pOSTSubscriptionActivate1(body);

        // TODO: test validations
    }
    
    /**
     *  Activate a given Subscription for a customer. 
     *
     *  Activate a given Subscription for a customer. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionActivateForCustomer1Test() throws ApiException {
        SubscriptionForCustomerRequestDto subscriptionForCustomerRequestDto = null;
        SubscriptionForCustomerResponseDto response = api.pOSTSubscriptionActivateForCustomer1(subscriptionForCustomerRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Activate services
     *
     *  Activate services. Subscription should not be in status (RESILIATED OR CANCELLED). This service allows to override the charge instance price before activation. This service is actually a 2 step process: service instantiation then activation. If service.subscriptionDate is not set a service is only instantiated else it&#39;s instantiated then activated.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionActivateServices1Test() throws ApiException {
        ActivateServicesRequestDto activateServicesRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionActivateServices1(activateServicesRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Apply one shot charge. Subscription should not be in status (RESILIATED OR CANCELLED).  
     *
     *  Apply one shot charge. Subscription should not be in status (RESILIATED OR CANCELLED).  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionApplyOneShotChargeInstance1Test() throws ApiException {
        ApplyOneShotChargeInstanceRequestDto applyOneShotChargeInstanceRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionApplyOneShotChargeInstance1(applyOneShotChargeInstanceRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Apply a product on a subscription. 
     *
     *  Apply a product on a subscription. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionApplyProduct1Test() throws ApiException {
        ApplyProductRequestDto applyProductRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionApplyProduct1(applyProductRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Cancels the renewal term of an active subscription. 
     *
     *  Cancels the renewal term of an active subscription. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionCancelSubscriptionRenewalSubscriptionCode1Test() throws ApiException {
        String subscriptionCode = null;
        ActionStatus response = api.pOSTSubscriptionCancelSubscriptionRenewalSubscriptionCode1(subscriptionCode);

        // TODO: test validations
    }
    
    /**
     *  Create a subscription. It does not activate it  
     *
     *  Create a subscription. It does not activate it  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionCreate1Test() throws ApiException {
        SubscriptionDto subscriptionDto = null;
        ActionStatus response = api.pOSTSubscriptionCreate1(subscriptionDto);

        // TODO: test validations
    }
    
    /**
     *  Create or update subscription information ONLY. Does not include access, services nor products  
     *
     *  Create or update subscription information ONLY. Does not include access, services nor products  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionCreateOrUpdate1Test() throws ApiException {
        SubscriptionDto subscriptionDto = null;
        ActionStatus response = api.pOSTSubscriptionCreateOrUpdate1(subscriptionDto);

        // TODO: test validations
    }
    
    /**
     *  Create or update subscription information WITH access, services and products
     *
     *  Create or update subscription information WITH access, services and products. Terminates subscription if termination date is provided on subscription. Terminates service if termination date is provided on service. Activates inactive service if service subscription date is provided. Instantiates service if no matching service found. Updates service if matching service found. Only those services, access and products passed will be afected.   
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionCreateOrUpdatePartial1Test() throws ApiException {
        SubscriptionDto subscriptionDto = null;
        ActionStatus response = api.pOSTSubscriptionCreateOrUpdatePartial1(subscriptionDto);

        // TODO: test validations
    }
    
    /**
     *  Instantiate a Service subscription   
     *
     *  Instantiate a Service subscription   
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionInstantiateServices1Test() throws ApiException {
        InstantiateServicesRequestDto instantiateServicesRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionInstantiateServices1(instantiateServicesRequestDto);

        // TODO: test validations
    }
    
    /**
     *  List subscriptions matching a given criteria  
     *
     *  List subscriptions matching a given criteria  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionList1Test() throws ApiException {
        PagingAndFiltering pagingAndFiltering = null;
        SubscriptionsListResponseDto response = api.pOSTSubscriptionList1(pagingAndFiltering);

        // TODO: test validations
    }
    
    /**
     *  Give a rate data for subscription  
     *
     *  Give a rate data for subscription  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionRate1Test() throws ApiException {
        RateSubscriptionRequestDto rateSubscriptionRequestDto = null;
        RateSubscriptionResponseDto response = api.pOSTSubscriptionRate1(rateSubscriptionRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Create a subscription and activate services in a single transaction.  
     *
     *  Create a subscription and activate services in a single transaction.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionSubscribeAndActivateServices1Test() throws ApiException {
        SubscriptionAndServicesToActivateRequestDto subscriptionAndServicesToActivateRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionSubscribeAndActivateServices1(subscriptionAndServicesToActivateRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Terminate a subscription. If subscription status is RESILIATED, an error is thrown  
     *
     *  Terminate a subscription. If subscription status is RESILIATED, an error is thrown  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionTerminate1Test() throws ApiException {
        TerminateSubscriptionRequestDto terminateSubscriptionRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionTerminate1(terminateSubscriptionRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Terminate a list of services. If a service is already TERMINATED, an error is thrown.  
     *
     *  Terminate a list of services. If a service is already TERMINATED, an error is thrown.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTSubscriptionTerminateServices1Test() throws ApiException {
        TerminateSubscriptionServicesRequestDto terminateSubscriptionServicesRequestDto = null;
        ActionStatus response = api.pOSTSubscriptionTerminateServices1(terminateSubscriptionServicesRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Updates a subscription. It cannot update a subscription with status&#x3D;RESILIATED  
     *
     *  Updates a subscription. It cannot update a subscription with status&#x3D;RESILIATED  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pUTSubscriptionUpdate1Test() throws ApiException {
        SubscriptionDto subscriptionDto = null;
        ActionStatus response = api.pUTSubscriptionUpdate1(subscriptionDto);

        // TODO: test validations
    }
    
    /**
     *  Resume an existing subscription  
     *
     *  Resume an existing subscription  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pUTSubscriptionresume1Test() throws ApiException {
        OperationSubscriptionRequestDto operationSubscriptionRequestDto = null;
        ActionStatus response = api.pUTSubscriptionresume1(operationSubscriptionRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Resume an existing services  
     *
     *  Resume an existing services  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pUTSubscriptionresumeServices1Test() throws ApiException {
        OperationServicesRequestDto operationServicesRequestDto = null;
        ActionStatus response = api.pUTSubscriptionresumeServices1(operationServicesRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Suspend an existing subscription  
     *
     *  Suspend an existing subscription  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pUTSubscriptionsuspend1Test() throws ApiException {
        OperationSubscriptionRequestDto operationSubscriptionRequestDto = null;
        ActionStatus response = api.pUTSubscriptionsuspend1(operationSubscriptionRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Suspend an existing services  
     *
     *  Suspend an existing services  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pUTSubscriptionsuspendServices1Test() throws ApiException {
        OperationServicesRequestDto operationServicesRequestDto = null;
        ActionStatus response = api.pUTSubscriptionsuspendServices1(operationServicesRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Update existing services  
     *
     *  Update existing services  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pUTSubscriptionupdateServices1Test() throws ApiException {
        UpdateServicesRequestDto updateServicesRequestDto = null;
        ActionStatus response = api.pUTSubscriptionupdateServices1(updateServicesRequestDto);

        // TODO: test validations
    }
    
    /**
     * 
     *
     * 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void user15Test() throws ApiException {
        ActionStatus response = api.user15();

        // TODO: test validations
    }
    
}
