/*
 * 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 PortfolioManagementApi
    /// </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 PortfolioManagementApiTests : IDisposable
    {
        private PortfolioManagementApi instance;

        public PortfolioManagementApiTests()
        {
            instance = new PortfolioManagementApi();
        }

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

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

        /// <summary>
        /// Test AddPortfolioExcludedAsset
        /// </summary>
        [Fact]
        public void AddPortfolioExcludedAssetTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //UniversalSymbol universalSymbol = null;
            //var response = instance.AddPortfolioExcludedAsset(portfolioGroupId, universalSymbol);
            //Assert.IsType<ExcludedAsset>(response);
        }

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

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

        /// <summary>
        /// Test CreateModelPortfolio
        /// </summary>
        [Fact]
        public void CreateModelPortfolioTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //var response = instance.CreateModelPortfolio();
            //Assert.IsType<ModelPortfolioDetails>(response);
        }

        /// <summary>
        /// Test DeleteAssetClass
        /// </summary>
        [Fact]
        public void DeleteAssetClassTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid modelAssetClassId = null;
            //instance.DeleteAssetClass(modelAssetClassId);
        }

        /// <summary>
        /// Test DeleteExcludedAsset
        /// </summary>
        [Fact]
        public void DeleteExcludedAssetTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //Guid symbolId = null;
            //instance.DeleteExcludedAsset(portfolioGroupId, symbolId);
        }

        /// <summary>
        /// Test DeleteModelPortfolioById
        /// </summary>
        [Fact]
        public void DeleteModelPortfolioByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid modelPortfolioId = null;
            //instance.DeleteModelPortfolioById(modelPortfolioId);
        }

        /// <summary>
        /// Test DeletePortfoli
        /// </summary>
        [Fact]
        public void DeletePortfoliTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.DeletePortfoli(portfolioGroupId);
            //Assert.IsType<PortfolioGroup>(response);
        }

        /// <summary>
        /// Test DeletePortfolioTargetById
        /// </summary>
        [Fact]
        public void DeletePortfolioTargetByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //Guid targetAssetId = null;
            //var response = instance.DeletePortfolioTargetById(portfolioGroupId, targetAssetId);
            //Assert.IsType<TargetAsset>(response);
        }

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

        /// <summary>
        /// Test GetCalculatedTradeById
        /// </summary>
        [Fact]
        public void GetCalculatedTradeByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //Guid calculatedTradeId = null;
            //Guid tradeId = null;
            //var response = instance.GetCalculatedTradeById(portfolioGroupId, calculatedTradeId, tradeId);
            //Assert.IsType<List<Trade>>(response);
        }

        /// <summary>
        /// Test GetModelDetailsById
        /// </summary>
        [Fact]
        public void GetModelDetailsByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid modelPortfolioId = null;
            //var response = instance.GetModelDetailsById(modelPortfolioId);
            //Assert.IsType<ModelPortfolioDetails>(response);
        }

        /// <summary>
        /// Test GetPortfolioBalances
        /// </summary>
        [Fact]
        public void GetPortfolioBalancesTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.GetPortfolioBalances(portfolioGroupId);
            //Assert.IsType<List<Balance>>(response);
        }

        /// <summary>
        /// Test GetPortfolioDetailsById
        /// </summary>
        [Fact]
        public void GetPortfolioDetailsByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.GetPortfolioDetailsById(portfolioGroupId);
            //Assert.IsType<PortfolioGroup>(response);
        }

        /// <summary>
        /// Test GetPortfolioInfo
        /// </summary>
        [Fact]
        public void GetPortfolioInfoTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.GetPortfolioInfo(portfolioGroupId);
            //Assert.IsType<PortfolioGroupInfo>(response);
        }

        /// <summary>
        /// Test GetPortfolioSettings
        /// </summary>
        [Fact]
        public void GetPortfolioSettingsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.GetPortfolioSettings(portfolioGroupId);
            //Assert.IsType<PortfolioGroupSettings>(response);
        }

        /// <summary>
        /// Test GetPortfolioTargetById
        /// </summary>
        [Fact]
        public void GetPortfolioTargetByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //Guid targetAssetId = null;
            //var response = instance.GetPortfolioTargetById(portfolioGroupId, targetAssetId);
            //Assert.IsType<TargetAsset>(response);
        }

        /// <summary>
        /// Test GetPortfolioTargets
        /// </summary>
        [Fact]
        public void GetPortfolioTargetsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.GetPortfolioTargets(portfolioGroupId);
            //Assert.IsType<List<TargetAsset>>(response);
        }

        /// <summary>
        /// Test GetPortoflioExcludedAssets
        /// </summary>
        [Fact]
        public void GetPortoflioExcludedAssetsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.GetPortoflioExcludedAssets(portfolioGroupId);
            //Assert.IsType<List<ExcludedAsset>>(response);
        }

        /// <summary>
        /// Test ImportModelPortfolio
        /// </summary>
        [Fact]
        public void ImportModelPortfolioTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.ImportModelPortfolio(portfolioGroupId);
            //Assert.IsType<List<TargetAsset>>(response);
        }

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

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

        /// <summary>
        /// Test ListCalculatedTrades
        /// </summary>
        [Fact]
        public void ListCalculatedTradesTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.ListCalculatedTrades(portfolioGroupId);
            //Assert.IsType<CalculatedTrade>(response);
        }

        /// <summary>
        /// Test ListModelPortfolio
        /// </summary>
        [Fact]
        public void ListModelPortfolioTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //var response = instance.ListModelPortfolio();
            //Assert.IsType<List<ModelPortfolioDetails>>(response);
        }

        /// <summary>
        /// Test ListPortfolioAccounts
        /// </summary>
        [Fact]
        public void ListPortfolioAccountsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.ListPortfolioAccounts(portfolioGroupId);
            //Assert.IsType<List<Account>>(response);
        }

        /// <summary>
        /// Test ModifyModelPortfolioById
        /// </summary>
        [Fact]
        public void ModifyModelPortfolioByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid modelPortfolioId = null;
            //ModelPortfolioDetails modelPortfolioDetails = null;
            //instance.ModifyModelPortfolioById(modelPortfolioId, modelPortfolioDetails);
        }

        /// <summary>
        /// Test SavePortfolio
        /// </summary>
        [Fact]
        public void SavePortfolioTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //Dictionary<string, Object> requestBody = null;
            //var response = instance.SavePortfolio(portfolioGroupId, requestBody);
            //Assert.IsType<PortfolioGroup>(response);
        }

        /// <summary>
        /// Test SearchPortfolioSymbols
        /// </summary>
        [Fact]
        public void SearchPortfolioSymbolsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //SymbolQuery symbolQuery = null;
            //var response = instance.SearchPortfolioSymbols(portfolioGroupId, symbolQuery);
            //Assert.IsType<List<UniversalSymbol>>(response);
        }

        /// <summary>
        /// Test SetPortfolioTargets
        /// </summary>
        [Fact]
        public void SetPortfolioTargetsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //List<TargetAsset> targetAsset = null;
            //var response = instance.SetPortfolioTargets(portfolioGroupId, targetAsset);
            //Assert.IsType<List<TargetAsset>>(response);
        }

        /// <summary>
        /// Test UpdateAssetClass
        /// </summary>
        [Fact]
        public void UpdateAssetClassTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid modelAssetClassId = null;
            //string userId = null;
            //string userSecret = null;
            //ModelAssetClassDetails modelAssetClassDetails = null;
            //instance.UpdateAssetClass(modelAssetClassId, userId, userSecret, modelAssetClassDetails);
        }

        /// <summary>
        /// Test UpdatePortfolioSettings
        /// </summary>
        [Fact]
        public void UpdatePortfolioSettingsTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //var response = instance.UpdatePortfolioSettings(portfolioGroupId);
            //Assert.IsType<PortfolioGroupSettings>(response);
        }

        /// <summary>
        /// Test UpdatePortfolioTargetById
        /// </summary>
        [Fact]
        public void UpdatePortfolioTargetByIdTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            //Guid portfolioGroupId = null;
            //Guid targetAssetId = null;
            //TargetAsset targetAsset = null;
            //var response = instance.UpdatePortfolioTargetById(portfolioGroupId, targetAssetId, targetAsset);
            //Assert.IsType<TargetAsset>(response);
        }
    }
}
