/*
 * SnapTrade
 *
 * Connect brokerage accounts to your app for live positions and trading
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: nnheo@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 AccountInformationApi
    /// </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 AccountInformationApiTests : IDisposable
    {
        private AccountInformationApi instance;

        public AccountInformationApiTests()
        {
            instance = new AccountInformationApi();
        }

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

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

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

        /// <summary>
        /// Test GetUserAccountBalance
        /// </summary>
        [Fact]
        public void GetUserAccountBalanceTest()
        {
            // 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.GetUserAccountBalance(userId, userSecret, accountId);
            //Assert.IsType<List<Balance>>(response);
        }

        /// <summary>
        /// Test GetUserAccountDetails
        /// </summary>
        [Fact]
        public void GetUserAccountDetailsTest()
        {
            // 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.GetUserAccountDetails(userId, userSecret, accountId);
            //Assert.IsType<List<Account>>(response);
        }

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

        /// <summary>
        /// Test GetUserAccountPositions
        /// </summary>
        [Fact]
        public void GetUserAccountPositionsTest()
        {
            // 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.GetUserAccountPositions(userId, userSecret, accountId);
            //Assert.IsType<List<Position>>(response);
        }

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

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

        /// <summary>
        /// Test UpdateUserAccount
        /// </summary>
        [Fact]
        public void UpdateUserAccountTest()
        {
            // 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.UpdateUserAccount(userId, userSecret, accountId);
            //Assert.IsType<List<Account>>(response);
        }
    }
}
