/*
 * 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.CreateInvoiceResponseDto;
import org.openapitools.client.model.CustomerInvoicesResponse;
import org.openapitools.client.model.GenerateInvoiceRequestDto;
import org.openapitools.client.model.GenerateInvoiceResponseDto;
import org.openapitools.client.model.GetInvoiceResponseDto;
import org.openapitools.client.model.GetPdfInvoiceRequestDto;
import org.openapitools.client.model.GetPdfInvoiceResponseDto;
import org.openapitools.client.model.GetXmlInvoiceRequestDto;
import org.openapitools.client.model.GetXmlInvoiceResponseDto;
import org.openapitools.client.model.InlineObject;
import org.openapitools.client.model.InvoiceDto;
import org.openapitools.client.model.InvoicesDto;
import org.openapitools.client.model.PagingAndFiltering;
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 InvoiceApi
 */
@Ignore
public class InvoiceApiTest {

    private final InvoiceApi api = new InvoiceApi();

    
    /**
     *  Get version of application  
     *
     *  Get version of application  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETIBaseVersion80Test() throws ApiException {
        ActionStatus response = api.gETIBaseVersion80();

        // TODO: test validations
    }
    
    /**
     *  List invoices matching a given criteria.  
     *
     *  List invoices matching a given criteria.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETInvoiceList1Test() throws ApiException {
        String query = null;
        String fields = null;
        Integer offset = null;
        Integer limit = null;
        String sortBy = null;
        String sortOrder = null;
        InvoicesDto response = api.gETInvoiceList1(query, fields, offset, limit, sortBy, sortOrder);

        // TODO: test validations
    }
    
    /**
     *  Search for a list of invoices given a customer account code
     *
     *  Search for a list of invoices given a customer account code.  Deprecated in v.4.7.2, use list() instead with criteria billingAccount.customerAccount.code&#x3D;xxx  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETInvoiceListInvoiceByCustomerAccount1Test() throws ApiException {
        String customerAccountCode = null;
        Boolean returnPdf = null;
        CustomerInvoicesResponse response = api.gETInvoiceListInvoiceByCustomerAccount1(customerAccountCode, returnPdf);

        // TODO: test validations
    }
    
    /**
     *  List invoices with account operation for a given customer account  Deprecated in v
     *
     *  List invoices with account operation for a given customer account  Deprecated in v.4.8. Use list() instead with criteria recordedInvoice&#x3D;IS_NOT_NULL and billingAccount.customerAccount.code&#x3D;xxx  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETInvoiceListPresentInAR1Test() throws ApiException {
        String customerAccountCode = null;
        Boolean includePdf = null;
        CustomerInvoicesResponse response = api.gETInvoiceListPresentInAR1(customerAccountCode, includePdf);

        // TODO: test validations
    }
    
    /**
     *  Search for an invoice given an invoice id or invoice number and invoice type.  
     *
     *  Search for an invoice given an invoice id or invoice number and invoice type.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void gETInvoiceSearch1Test() throws ApiException {
        Long id = null;
        String invoiceNumber = null;
        String invoiceType = null;
        Boolean includeTransactions = null;
        Boolean includePdf = null;
        Boolean includeXml = null;
        GetInvoiceResponseDto response = api.gETInvoiceSearch1(id, invoiceNumber, invoiceType, includeTransactions, includePdf, includeXml);

        // TODO: test validations
    }
    
    /**
     *  Cancel an invoice based on invoice id.  
     *
     *  Cancel an invoice based on invoice id.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceCancel1Test() throws ApiException {
        Long body = null;
        ActionStatus response = api.pOSTInvoiceCancel1(body);

        // TODO: test validations
    }
    
    /**
     *  Create invoice. Invoice number depends on invoice type  
     *
     *  Create invoice. Invoice number depends on invoice type  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceCreate1Test() throws ApiException {
        InvoiceDto invoiceDto = null;
        CreateInvoiceResponseDto response = api.pOSTInvoiceCreate1(invoiceDto);

        // TODO: test validations
    }
    
    /**
     *  Finds an invoice based on invoice number and optionally an invoice type and return it as pdf as byte []
     *
     *  Finds an invoice based on invoice number and optionally an invoice type and return it as pdf as byte []. Invoice is not recreated, instead invoice stored as pdf in database is returned. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceFetchPdfInvoice1Test() throws ApiException {
        GetPdfInvoiceRequestDto getPdfInvoiceRequestDto = null;
        GetPdfInvoiceResponseDto response = api.pOSTInvoiceFetchPdfInvoice1(getPdfInvoiceRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Finds an invoice based on its invoice number and optionally an invoice type and return it as xml string. 
     *
     *  Finds an invoice based on its invoice number and optionally an invoice type and return it as xml string. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceFetchXMLInvoice1Test() throws ApiException {
        GetXmlInvoiceRequestDto getXmlInvoiceRequestDto = null;
        GetXmlInvoiceResponseDto response = api.pOSTInvoiceFetchXMLInvoice1(getXmlInvoiceRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Generate a Draft invoice  
     *
     *  Generate a Draft invoice  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceGenerateDraftInvoice1Test() throws ApiException {
        GenerateInvoiceRequestDto generateInvoiceRequestDto = null;
        GenerateInvoiceResponseDto response = api.pOSTInvoiceGenerateDraftInvoice1(generateInvoiceRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Launch all the invoicing process for a given billingAccount, that&#39;s mean
     *
     *  Launch all the invoicing process for a given billingAccount, that&#39;s mean.  &lt;ul&gt; &lt;li&gt;Create rated transactions &lt;li&gt;Create an exceptional billingRun with given dates &lt;li&gt;Validate the pre-invoicing report &lt;li&gt;Validate the post-invoicing report &lt;li&gt;Validate the BillingRun  &lt;/ul&gt;  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceGenerateInvoice1Test() throws ApiException {
        GenerateInvoiceRequestDto generateInvoiceRequestDto = null;
        GenerateInvoiceResponseDto response = api.pOSTInvoiceGenerateInvoice1(generateInvoiceRequestDto);

        // TODO: test validations
    }
    
    /**
     *  Finds an invoice based on invoice number and return it as pdf as byte []
     *
     *  Finds an invoice based on invoice number and return it as pdf as byte []. Invoice is not recreated, instead invoice stored as pdf in database is returned.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceGetPdfInvoice1Test() throws ApiException {
        Long body = null;
        GetPdfInvoiceResponseDto response = api.pOSTInvoiceGetPdfInvoice1(body);

        // TODO: test validations
    }
    
    /**
     *  Finds an invoice based on invoice number and invoice type and return it as pdf as byte []
     *
     *  Finds an invoice based on invoice number and invoice type and return it as pdf as byte []. Invoice is not recreated, instead invoice stored as pdf in database is returned. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceGetPdfInvoiceWithType1Test() throws ApiException {
        Long body = null;
        GetPdfInvoiceResponseDto response = api.pOSTInvoiceGetPdfInvoiceWithType1(body);

        // TODO: test validations
    }
    
    /**
     *  Finds an invoice based on its invoice number and return it as xml string.  
     *
     *  Finds an invoice based on its invoice number and return it as xml string.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceGetXMLInvoice1Test() throws ApiException {
        Long body = null;
        GetXmlInvoiceResponseDto response = api.pOSTInvoiceGetXMLInvoice1(body);

        // TODO: test validations
    }
    
    /**
     *  Finds an invoice based on invoice number and invoice type. It returns the result as xml string 
     *
     *  Finds an invoice based on invoice number and invoice type. It returns the result as xml string 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceGetXMLInvoiceWithType1Test() throws ApiException {
        Long body = null;
        GetXmlInvoiceResponseDto response = api.pOSTInvoiceGetXMLInvoiceWithType1(body);

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

        // TODO: test validations
    }
    
    /**
     *  Send invoice by Email. 
     *
     *  Send invoice by Email. 
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceSendByEmail1Test() throws ApiException {
        InvoiceDto invoiceDto = null;
        ActionStatus response = api.pOSTInvoiceSendByEmail1(invoiceDto);

        // TODO: test validations
    }
    
    /**
     *  Validate an invoice based on the invoice id.  
     *
     *  Validate an invoice based on the invoice id.  
     *
     * @throws ApiException
     *          if the Api call fails
     */
    @Test
    public void pOSTInvoiceValidate1Test() throws ApiException {
        InlineObject inlineObject = null;
        ActionStatus response = api.pOSTInvoiceValidate1(inlineObject);

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

        // TODO: test validations
    }
    
}
