Files
linqpad/Create CCI StoreProc Unit Tests.linq

107 lines
4.5 KiB
C#

<Query Kind="Statements">
<Reference>&lt;ProgramFilesX64&gt;\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll</Reference>
<NuGetReference>Amazon.Lambda.S3Events</NuGetReference>
<NuGetReference>AWSSDK.Core</NuGetReference>
<NuGetReference>AWSSDK.S3</NuGetReference>
<Namespace>Amazon</Namespace>
<Namespace>Amazon.Auth.AccessControlPolicy</Namespace>
<Namespace>Amazon.Auth.AccessControlPolicy.ActionIdentifiers</Namespace>
<Namespace>Amazon.Internal</Namespace>
<Namespace>Amazon.Lambda.S3Events</Namespace>
<Namespace>Amazon.MissingTypes</Namespace>
<Namespace>Amazon.Runtime</Namespace>
<Namespace>Amazon.Runtime.CredentialManagement</Namespace>
<Namespace>Amazon.Runtime.CredentialManagement.Internal</Namespace>
<Namespace>Amazon.Runtime.EventStreams</Namespace>
<Namespace>Amazon.Runtime.EventStreams.Internal</Namespace>
<Namespace>Amazon.Runtime.Internal</Namespace>
<Namespace>Amazon.Runtime.Internal.Auth</Namespace>
<Namespace>Amazon.Runtime.Internal.Settings</Namespace>
<Namespace>Amazon.Runtime.Internal.Transform</Namespace>
<Namespace>Amazon.Runtime.Internal.Util</Namespace>
<Namespace>Amazon.Runtime.SharedInterfaces</Namespace>
<Namespace>Amazon.Runtime.SharedInterfaces.Internal</Namespace>
<Namespace>Amazon.S3</Namespace>
<Namespace>Amazon.S3.Encryption</Namespace>
<Namespace>Amazon.S3.Encryption.Internal</Namespace>
<Namespace>Amazon.S3.Internal</Namespace>
<Namespace>Amazon.S3.IO</Namespace>
<Namespace>Amazon.S3.Model</Namespace>
<Namespace>Amazon.S3.Model.Internal.MarshallTransformations</Namespace>
<Namespace>Amazon.S3.Transfer</Namespace>
<Namespace>Amazon.S3.Util</Namespace>
<Namespace>Amazon.Util</Namespace>
<Namespace>Amazon.Util.Internal</Namespace>
<Namespace>Amazon.Util.Internal.PlatformServices</Namespace>
<Namespace>Newtonsoft.Json</Namespace>
<Namespace>Newtonsoft.Json.Converters</Namespace>
<Namespace>Newtonsoft.Json.Linq</Namespace>
<Namespace>Newtonsoft.Json.Schema</Namespace>
<Namespace>Newtonsoft.Json.Serialization</Namespace>
<Namespace>System</Namespace>
<Namespace>System.Diagnostics</Namespace>
<Namespace>System.Diagnostics.Tracing</Namespace>
<Namespace>System.IO.Compression</Namespace>
<Namespace>ThirdParty.BouncyCastle.Asn1</Namespace>
<Namespace>ThirdParty.BouncyCastle.Asn1.Utilities</Namespace>
<Namespace>ThirdParty.BouncyCastle.Math</Namespace>
<Namespace>ThirdParty.BouncyCastle.OpenSsl</Namespace>
<Namespace>ThirdParty.BouncyCastle.Utilities.IO.Pem</Namespace>
<Namespace>ThirdParty.Ionic.Zlib</Namespace>
<Namespace>ThirdParty.Json.LitJson</Namespace>
<Namespace>ThirdParty.MD5</Namespace>
</Query>
var routines = @"procCleanupOpportunities
procDeleteAllData
procDeleteDimensionData
procEpicADTInitializeDepartmentPatientCensus
procInsertDimensionDefaults
procOptimizationRebuildIndexesDimensions
procPatientCensusDiscardIncorrectEntries
procPatientEncounterSummaryUpdateCaseTypeId
procPopulateCustomOpportunitySavings
procPopulateDepartmentPatientCensus
procPopulateDepartmentPatientCensusFromCerner
procPopulateDepartmentPatientCensusFromMeditech
procPopulateDepartmentPatientCensusFromStarADT
procPopulateDepartmentPatientDailyCensus
procPopulatePhysicianQualityMetrics
procSampleCaseTypeFamilyMetricsAll
procSampleChargeCodeConfigs
procSampleMSDRGCaseTypeFamilyMetrics
procSampleNursingDepartments
procSampleNursingMonthlyVolume
procSampleUNSPSCRollup
procUpdateDimInitiative
procUpdateDimOpportunity
procUpdateFactOpportunityMetric
procUpdateFactOpportunitySavings".Replace("\r\n", "\r").Split('\r');
var bools = new[] { true }; //, false };
var groups = new[] { 2, 3 };
var variations = (from b in bools
from g in groups
from r in routines
select new { b = b && g != 1, g, r, q = g == 1 ? "NoQuery" : g == 2 ? "DataSet" : g == 3 ? "Datatable" : "Scalar" })
.Distinct()
.Where(v => v.r != "procPopulateCustomOpportunitySavings")
.OrderBy(o => o.q)
.ThenBy(o => o.r)
.ThenByDescending(o => o.b).ToList();
//variations.Dump();
variations.ForEach(v => $@" [Test]
public void TestxCci{v.r}{v.g}_{v.q}()
{{
var contextMock = new Mock<SqlContextStub>().As<ISqlContext>();
using (contextMock.InScope())
{{
{(v.b ? "var ts = (int)TimeSpan.FromMinutes(5).TotalSeconds;\r\n " : "")}Action act = () => {v.r}.Execute{v.q}({(v.b ? "Guid.NewGuid()" : "")});
act.Should().NotThrow<Exception>();
}}
contextMock.VerifyStoredProc<{v.r}>({(v.b ? "TimeSpan.FromMinutes(5), " : "")}Times.Never());
}}
".Dump());