94 lines
3.2 KiB
C#
94 lines
3.2 KiB
C#
using Adaptation._Tests.Shared;
|
|
using Adaptation.FileHandlers.MoveAllFiles;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Net.Http;
|
|
using System.Reflection;
|
|
using System.Text.Json;
|
|
|
|
namespace Adaptation._Tests.Static;
|
|
|
|
[TestClass]
|
|
public class API : LoggingUnitTesting, IDisposable
|
|
{
|
|
|
|
#pragma warning disable CA2254
|
|
#pragma warning disable IDE0060
|
|
|
|
internal static API LoggingUnitTesting { get; private set; }
|
|
|
|
public API() : base(testContext: null, declaringType: null)
|
|
{
|
|
if (LoggingUnitTesting is null)
|
|
throw new Exception();
|
|
}
|
|
|
|
public API(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType)
|
|
{
|
|
}
|
|
|
|
[ClassInitialize]
|
|
public static void ClassInitialize(TestContext testContext) => LoggingUnitTesting ??= new API(testContext);
|
|
|
|
[ClassCleanup()]
|
|
public static void ClassCleanup()
|
|
{
|
|
LoggingUnitTesting?.Logger?.LogInformation("Cleanup");
|
|
LoggingUnitTesting?.Dispose();
|
|
}
|
|
|
|
private static void NonThrowTryCatch()
|
|
{
|
|
try
|
|
{ throw new Exception(); }
|
|
catch (Exception) { }
|
|
}
|
|
|
|
#if (!true)
|
|
[Ignore]
|
|
#endif
|
|
[TestMethod]
|
|
public void TestApiA()
|
|
{
|
|
MethodBase methodBase = new StackFrame().GetMethod();
|
|
#nullable enable
|
|
HttpClient httpClient = new();
|
|
// string rds = "504162";
|
|
string rds = "601132";
|
|
string url = $"{FileRead.OpenInsightApplicationProgrammingInterface}/materials/rds/{rds}";
|
|
string httpClientResult = httpClient.GetStringAsync(url).Result;
|
|
FileHandlers.MoveAllFiles.OpenInsight.Root? root = JsonSerializer.Deserialize<FileHandlers.MoveAllFiles.OpenInsight.Root>(httpClientResult);
|
|
httpClient.Dispose();
|
|
Assert.IsNotNull(root?.Rds.ProdSpec.PrsStages);
|
|
List<FileHandlers.MoveAllFiles.OpenInsight.QaMetTest>? collection;
|
|
Dictionary<string, List<FileHandlers.MoveAllFiles.OpenInsight.QaMetTest>> qaMetTests = new();
|
|
foreach (FileHandlers.MoveAllFiles.OpenInsight.PrsStage prsStage in root.Rds.ProdSpec.PrsStages)
|
|
{
|
|
if (prsStage.QaMetTests is null)
|
|
continue;
|
|
foreach (FileHandlers.MoveAllFiles.OpenInsight.QaMetTest qaMetTest in prsStage.QaMetTests)
|
|
{
|
|
if (qaMetTest.ToolClass != "FTIR")
|
|
continue;
|
|
if (!qaMetTests.TryGetValue(prsStage.Stage, out collection))
|
|
{
|
|
qaMetTests.Add(prsStage.Stage, new());
|
|
if (!qaMetTests.TryGetValue(prsStage.Stage, out collection))
|
|
throw new Exception();
|
|
}
|
|
collection.Add(qaMetTest);
|
|
}
|
|
}
|
|
Assert.IsTrue(qaMetTests.Count > 0);
|
|
string json = JsonSerializer.Serialize(qaMetTests, new JsonSerializerOptions { WriteIndented = true });
|
|
Assert.IsTrue(!string.IsNullOrEmpty(json));
|
|
System.IO.File.WriteAllText("D:/.json", json);
|
|
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase?.Name, " - Exit"));
|
|
NonThrowTryCatch();
|
|
#nullable restore
|
|
}
|
|
|
|
} |