Adding unit tests
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -11,6 +11,8 @@ MarketData/MarketData/*.log
|
||||
MarketData/MarketData/marketdata.log
|
||||
MarketData/MarketData/logs/marketdata_echo.log
|
||||
MarketData/MarketData/logs/marketdata_loadheadlineswatchlist.log
|
||||
MarketDataUnitTests/bin/**
|
||||
MarketDataUnitTests/obj/**
|
||||
Translate/Translate/bin/**
|
||||
Translate/Translate/obj/**
|
||||
eNavigator/eNavigatorUI/.vscode/chrome-debug/**
|
||||
|
||||
12
.vscode/launch.json
vendored
12
.vscode/launch.json
vendored
@@ -39,6 +39,16 @@
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
},
|
||||
|
||||
{
|
||||
"name": ".NET Core Launch (unit tests)",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"preLaunchTask": "build",
|
||||
"program": "/usr/local/bin/dotnet",
|
||||
"args": ["test"],
|
||||
"cwd": "${workspaceFolder}/MarketDataUnitTests",
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MarketDataServer", "MarketD
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPMonitor", "IPMonitor\IPMonitor.csproj", "{EAC3FB58-9112-4446-98BF-DC33F96357B5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MarketDataUnitTests", "MarketDataUnitTests\MarketDataUnitTests.csproj", "{EAC3FB58-9112-4446-98BF-DC33F96357B5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
||||
99
MarketDataUnitTests/MarketDataUnitTestClass.cs
Normal file
99
MarketDataUnitTests/MarketDataUnitTestClass.cs
Normal file
@@ -0,0 +1,99 @@
|
||||
using System.Reflection;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using MarketData.DataAccess;
|
||||
using MarketData.Generator.CMMomentum;
|
||||
using MarketData.Helper;
|
||||
using MarketData.MarketDataModel;
|
||||
using MarketData.Utils;
|
||||
using MarketData;
|
||||
using MarketData.Configuration;
|
||||
using System.Diagnostics;
|
||||
|
||||
|
||||
namespace MarketDataUnitTests;
|
||||
|
||||
[TestClass]
|
||||
public class MarketDataUnitTestClass
|
||||
{
|
||||
private IConfigurationBuilder builder = default;
|
||||
private IConfiguration configuration = default;
|
||||
|
||||
public MarketDataUnitTestClass()
|
||||
{
|
||||
builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
|
||||
IConfigurationRoot configurationRoot = builder.Build();
|
||||
configuration = configurationRoot;
|
||||
GlobalConfig.Instance.Configuration = configuration;
|
||||
CreateLogging("unittest");
|
||||
|
||||
}
|
||||
|
||||
private static bool CreateLogging(String task)
|
||||
{
|
||||
if(String.IsNullOrEmpty(task))return false;
|
||||
task=task.ToLower();
|
||||
MDTrace.LogLevel = LogLevel.DEBUG;
|
||||
String logFolder = "/logs";
|
||||
DateTime currentDate=DateTime.Now;
|
||||
String strLogFile = "marketdata_" + task + ".log";
|
||||
String currentWorkingDirectory = Directory.GetCurrentDirectory();
|
||||
Console.WriteLine($"Current directory is {currentWorkingDirectory}");
|
||||
Utility.EnsureLogFolder(currentWorkingDirectory+logFolder);
|
||||
Utility.ExpireLogs(currentWorkingDirectory+logFolder,1);
|
||||
Trace.Listeners.Remove("Default");
|
||||
Console.WriteLine($"Adding Trace Listener :{currentWorkingDirectory+logFolder+"/"+strLogFile}");
|
||||
Trace.Listeners.Add(new TextWriterTraceListener(currentWorkingDirectory+logFolder+"/"+strLogFile));
|
||||
MDTrace.WriteLine($"Trace Listener added.");
|
||||
Utility.ShowLogs(currentWorkingDirectory + logFolder);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void CNNPredictionTest()
|
||||
{
|
||||
String cnnHostName = "10.0.0.240";
|
||||
CMCandidate cmCandidate = new CMCandidate();
|
||||
CMParams cmParams = new CMParams();
|
||||
|
||||
cmParams.UseCNN = true;
|
||||
cmParams.UseCNNHost = "http://" + cnnHostName + ":5000";
|
||||
cmParams.UseCNNDayCount = 270;
|
||||
cmParams.UseCNNRewardPercentDecimal = 0.25;
|
||||
|
||||
cmCandidate.Symbol = "MIDD";
|
||||
cmCandidate.TradeDate = DateTime.Parse("07-01-2024");
|
||||
|
||||
bool result = CMMomentumGenerator.PredictCandidate(cmCandidate, cmParams);
|
||||
|
||||
Assert.IsTrue(result);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ETFHoldingsYahooRetrieval()
|
||||
{
|
||||
String[] etfSymbols = { "JFNNX", "ACWX", "ACES", "BBH" };
|
||||
List<ETFHoldings> results = new List<ETFHoldings>();
|
||||
|
||||
foreach (String etfSymbol in etfSymbols)
|
||||
{
|
||||
ETFHoldings etfHoldings = MarketDataHelper.GetETFHoldings(etfSymbol);
|
||||
if (null != etfHoldings && 0 != etfHoldings.Count)
|
||||
{
|
||||
results.Add(MarketDataHelper.GetETFHoldings(etfSymbol));
|
||||
}
|
||||
try { Thread.Sleep(500); } catch (Exception) {; }
|
||||
}
|
||||
Assert.IsTrue(results.Any(x => x != null), String.Format("{0} items failed.", etfSymbols.Length));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void LatestPriceRetrieval()
|
||||
{
|
||||
String symbol="AAPL";
|
||||
Price price=MarketDataHelper.GetLatestPrice(symbol);
|
||||
Assert.IsTrue(null!=price && price.IsValid);
|
||||
}
|
||||
|
||||
}
|
||||
37
MarketDataUnitTests/MarketDataUnitTests.csproj
Normal file
37
MarketDataUnitTests/MarketDataUnitTests.csproj
Normal file
@@ -0,0 +1,37 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../MarketData/MarketDataLib/MarketDataLib.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../MarketData/MarketData/MarketData.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="appsettings.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
17
MarketDataUnitTests/appsettings.json
Executable file
17
MarketDataUnitTests/appsettings.json
Executable file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"market_data" : "Database=market_data;Datasource=adrastea;Username=guest;Password=guest",
|
||||
"portfolio_data" : "Database=portfolio_data;Datasource=adrastea;Username=guest;Password=guest",
|
||||
"user_data" : "Database=user_data;Datasource=adrastea;Username=guest;Password=guest",
|
||||
"sms_smtpaddress" : "smtp.gmail.com",
|
||||
"sms_smsusername" : "skessler1964@gmail.com",
|
||||
"sms_smspassword" : "xjfo isnf gmyi zovr",
|
||||
"sms_smsrecipients" : "skessler1964@gmail.com",
|
||||
"proxy_address" : "http://euporie:8182",
|
||||
"proxy_GetLatestPriceYahoo" : "false",
|
||||
"proxy_GetLatestPriceBigCharts" : "false",
|
||||
"proxy_GetETFHoldings" : "false",
|
||||
"proxy_GetDailyPrices" : "false",
|
||||
"proxy_GetFundamentalEx" : "false",
|
||||
"proxy_GetDividendHistory" : "false",
|
||||
"proxy_GetAnalystPriceTargetMarketBeat" : "false"
|
||||
}
|
||||
Reference in New Issue
Block a user