/*
 * SnapTrade
 *
 * Connect brokerage accounts to your app for live positions and trading
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: dycjh@example.com
 * Generated by: https://konfigthis.com
 */

using System;
using System.IO;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reflection;
using RestSharp;
using Xunit;

using SnapTrade.Net.Client;
using SnapTrade.Net.Api;
// uncomment below to import models
//using SnapTrade.Net.Model;

namespace SnapTrade.Net.Test.Api
{
    /// <summary>
    ///  Class for testing OptionsApi
    /// </summary>
    /// <remarks>
    /// This file is automatically generated by Konfig (https://konfigthis.com).
    /// Please update the test case below to test the API endpoint.
    /// </remarks>
    public class OptionsApiTests : IDisposable
    {
        private OptionsApi instance;

        public OptionsApiTests()
        {
            instance = new OptionsApi();
        }

        public void Dispose()
        {
            // Cleanup when everything is done.
        }

        /// <summary>
        /// Test an instance of OptionsApi
        /// </summary>
        [Fact]
        public void InstanceTest()
        {
            // TODO uncomment below to test 'IsType' OptionsApi
            //Assert.IsType<OptionsApi>(instance);
        }

        /// <summary>
        /// Test GetOptionStrategy
        /// </summary>
        [Fact]
        public void GetOptionStrategyTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //string userId = null;
            //string userSecret = null;
            //Guid accountId = null;
            //OptionsGetOptionStrategyRequest optionsGetOptionStrategyRequest = null;
            //var response = instance.GetOptionStrategy(userId, userSecret, accountId, optionsGetOptionStrategyRequest);
            //Assert.IsType<StrategyQuotes>(response);
        }

        /// <summary>
        /// Test GetOptionsChain
        /// </summary>
        [Fact]
        public void GetOptionsChainTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //string userId = null;
            //string userSecret = null;
            //Guid accountId = null;
            //Guid symbol = null;
            //var response = instance.GetOptionsChain(userId, userSecret, accountId, symbol);
            //Assert.IsType<List<OptionChainInner>>(response);
        }

        /// <summary>
        /// Test GetOptionsStrategyQuote
        /// </summary>
        [Fact]
        public void GetOptionsStrategyQuoteTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //string userId = null;
            //string userSecret = null;
            //Guid accountId = null;
            //Guid optionStrategyId = null;
            //var response = instance.GetOptionsStrategyQuote(userId, userSecret, accountId, optionStrategyId);
            //Assert.IsType<StrategyQuotes>(response);
        }

        /// <summary>
        /// Test ListOptionHoldings
        /// </summary>
        [Fact]
        public void ListOptionHoldingsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //string userId = null;
            //string userSecret = null;
            //Guid accountId = null;
            //var response = instance.ListOptionHoldings(userId, userSecret, accountId);
            //Assert.IsType<OptionsHoldings>(response);
        }

        /// <summary>
        /// Test PlaceOptionStrategy
        /// </summary>
        [Fact]
        public void PlaceOptionStrategyTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //string userId = null;
            //string userSecret = null;
            //Guid accountId = null;
            //Guid optionStrategyId = null;
            //OptionsPlaceOptionStrategyRequest optionsPlaceOptionStrategyRequest = null;
            //var response = instance.PlaceOptionStrategy(userId, userSecret, accountId, optionStrategyId, optionsPlaceOptionStrategyRequest);
            //Assert.IsType<StrategyOrderRecord>(response);
        }
    }
}
