diff --git a/.gitignore b/.gitignore index 0606db3c9bd..4e368f90fe4 100644 --- a/.gitignore +++ b/.gitignore @@ -41,7 +41,6 @@ packages/* paket.exe paket-files/*.cached - build/* !build/tools !build/keys diff --git a/.paket/Paket.Restore.targets b/.paket/Paket.Restore.targets index 3795978d136..e9b3c2a5dd9 100644 --- a/.paket/Paket.Restore.targets +++ b/.paket/Paket.Restore.targets @@ -60,6 +60,9 @@ + + + $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) @@ -76,6 +79,13 @@ + + + + + + + $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached @@ -84,7 +94,9 @@ $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references $(MSBuildProjectDirectory)\paket.references - $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved + + false + true true references-file-or-cache-not-found @@ -103,24 +115,29 @@ - + true - target-framework '$(TargetFramework)' + target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) - + + - + + false + true + + - + - + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) @@ -128,8 +145,9 @@ %(PaketReferencesFileLinesInfo.PackageVersion) - All + All runtime + true diff --git a/NuGet.config b/NuGet.config index 38169938c60..b8fc80d8abb 100644 --- a/NuGet.config +++ b/NuGet.config @@ -1,8 +1,8 @@  - - - - - + + + + + diff --git a/appveyor.yml b/appveyor.yml index f96291ec315..b69b4d092c8 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,7 @@ version: 1.0.{build} image: Visual Studio 2017 build_script: - - cmd: build.bat + - cmd: build.bat canary test: off environment: DOTNET_CLI_TELEMETRY_OPTOUT: true diff --git a/build.sh b/build.sh index 1c6b458d8ef..606b9350961 100755 --- a/build.sh +++ b/build.sh @@ -3,6 +3,6 @@ FAKE="packages/build/FAKE/tools/FAKE.exe" BUILDSCRIPT="build/scripts/Targets.fsx" mono .paket/paket.bootstrapper.exe -if [[ -f .paket.lock ]]; then mono .paket/paket.exe restore; fi -if [[ ! -f .paket.lock ]]; then mono .paket/paket.exe install; fi +if [[ -f paket.lock ]]; then mono .paket/paket.exe restore; fi +if [[ ! -f paket.lock ]]; then mono .paket/paket.exe install; fi mono $FAKE $BUILDSCRIPT "cmdline=$*" --fsiargs -d:MONO diff --git a/build/Clients.Common.targets b/build/Clients.Common.targets index a8ad7e34695..3c3ef866e50 100644 --- a/build/Clients.Common.targets +++ b/build/Clients.Common.targets @@ -2,17 +2,10 @@ - 0.0.0-bad - 0.0.0 - 0.0.0.0 - - 1 - - - + 5.0.0 + 5.0.0 + 5.0.0 + $(CurrentVersion) $(CurrentVersion) @@ -21,15 +14,19 @@ $(CurrentAssemblyFileVersion) - true - ..\..\build\keys\keypair.snk - true + $(DefineConstants);DOTNETCORE + + true + $(MSBuildThisFileDirectory)\keys\keypair.snk + true 1591,1572,1571,1573,1587,1570 false - $(DefineConstants);DOTNETCORE - embedded - full + true + portable + + $(BaseIntermediateOutputPath)\sl-$(MsBuildProjectName)-$(TargetFramework).json + https://raw.githubusercontent.com/elastic/elasticsearch-net diff --git a/build/Elasticsearch.Net.nuspec b/build/Elasticsearch.Net.nuspec index c79e36792dc..b85b7f18189 100644 --- a/build/Elasticsearch.Net.nuspec +++ b/build/Elasticsearch.Net.nuspec @@ -30,9 +30,6 @@ - - - diff --git a/build/NEST.nuspec b/build/NEST.nuspec index 24287f6eea7..92e1f0bd8c9 100644 --- a/build/NEST.nuspec +++ b/build/NEST.nuspec @@ -35,9 +35,6 @@ - - - diff --git a/build/scripts/Benchmarking.fsx b/build/scripts/Benchmarking.fsx index 10812de39cc..7b13b683fcb 100644 --- a/build/scripts/Benchmarking.fsx +++ b/build/scripts/Benchmarking.fsx @@ -1,7 +1,7 @@ -#r "../../packages/build/NEST/lib/net45/Nest.dll" -#r "../../packages/build/Elasticsearch.Net/lib/net45/Elasticsearch.Net.dll" +#r "../../packages/build/NEST/lib/net46/Nest.dll" +#r "../../packages/build/Elasticsearch.Net/lib/net46/Elasticsearch.Net.dll" #r "../../packages/build/Newtonsoft.Json/lib/net45/Newtonsoft.Json.dll" -#r "../../packages/build/FSharp.Data/lib/net40/FSharp.Data.dll" +#r "../../packages/build/FSharp.Data/lib/net45/FSharp.Data.dll" #I @"../../packages/build/FAKE/tools" #r @"FakeLib.dll" #nowarn "0044" //TODO sort out FAKE 5 diff --git a/build/scripts/Building.fsx b/build/scripts/Building.fsx index 08b9abe5578..23c1af46948 100644 --- a/build/scripts/Building.fsx +++ b/build/scripts/Building.fsx @@ -1,7 +1,10 @@ #I @"../../packages/build/FAKE/tools" -#I @"../../packages/build/FSharp.Data/lib/net40" +#I @"../../packages/build/FSharp.Data/lib/net45" +#I @"../../packages/build/Mono.Cecil/lib/net40" #r @"FakeLib.dll" +#r @"Mono.Cecil.dll" #r @"FSharp.Data.dll" +#nowarn "0044" //TODO sort out FAKE 5 #load @"Paths.fsx" #load @"Tooling.fsx" @@ -9,8 +12,10 @@ open System open System.IO +open System.Reflection open Fake open FSharp.Data +open Mono.Cecil open Paths open Projects @@ -20,20 +25,20 @@ open Versioning module Build = let private runningRelease = hasBuildParam "version" || hasBuildParam "apikey" || getBuildParam "target" = "canary" || getBuildParam "target" = "release" - let private quickBuild = not (getBuildParam "target" = "release" || getBuildParam "target" = "canary") type private GlobalJson = JsonProvider<"../../global.json"> let private pinnedSdkVersion = GlobalJson.GetSample().Sdk.Version if isMono then setProcessEnvironVar "TRAVIS" "true" + let private buildingOnTravis = getEnvironmentVarAsBool "TRAVIS" let private sln = sprintf "src/Elasticsearch%s.sln" (if buildingOnTravis then ".DotNetCoreOnly" else "") - + let private compileCore incremental = if not (DotNetCli.isInstalled()) then failwith "You need to install the dotnet command line SDK to build for .NET Core" let runningSdkVersion = DotNetCli.getVersion() if (runningSdkVersion <> pinnedSdkVersion) then failwithf "Attempting to run with dotnet.exe with %s but global.json mandates %s" runningSdkVersion pinnedSdkVersion - let incrementalFramework = DotNetFramework.Net45 + let incrementalFramework = DotNetFramework.Net46 let sourceLink = if not incremental && not isMono && runningRelease then "1" else "" let props = [ @@ -75,4 +80,102 @@ module Build = CleanDir Paths.BuildOutput DotNetCli.RunCommand (fun p -> { p with TimeOut = TimeSpan.FromMinutes(3.) }) "clean src/Elasticsearch.sln -c Release" |> ignore DotNetProject.All |> Seq.iter(fun p -> CleanDir(Paths.BinFolder p.Name)) - \ No newline at end of file + + type CustomResolver(folder) = + inherit DefaultAssemblyResolver() + member this.Folder = folder; + + override this.Resolve name = + try + base.Resolve name + with + | ex -> + AssemblyDefinition.ReadAssembly(Path.Combine(folder, "Elasticsearch.Net.dll")); + + let private rewriteNamespace nest f = + trace "Rewriting namespaces" + let folder = Paths.ProjectOutputFolder nest f + let nestDll = sprintf "%s/%s.dll" folder nest.Name + let nestRewrittenDll = sprintf "%s/%s-rewriten.dll" folder nest.Name + use resolver = new CustomResolver(folder) + let readerParams = ReaderParameters( AssemblyResolver = resolver, ReadWrite = true ); + use nestAssembly = AssemblyDefinition.ReadAssembly(nestDll, readerParams); + + for item in nestAssembly.MainModule.Types do + if item.Namespace.StartsWith("Newtonsoft.Json") then + item.Namespace <- item.Namespace.Replace("Newtonsoft.Json", "Nest.Json") + + // Touch custom attribute arguments + // Cecil does not update the types referenced within these attributes automatically, + // so enumerate them to ensure namespace renaming is reflected in these references. + let touchAttributes (attributes:Mono.Collections.Generic.Collection) = + for attr in attributes do + if attr.HasConstructorArguments then + for constArg in attr.ConstructorArguments do + if constArg.Type.Name = "Type" then ignore() + + // rewrite explicitly implemented interface definitions defined + // in Newtonsoft.Json + let rewriteName (method:IMemberDefinition) = + if method.Name.Contains("Newtonsoft.Json") then + method.Name <- method.Name.Replace("Newtonsoft.Json", "Nest.Json") + + // recurse through all types and nested types + let rec rewriteTypes (types:Mono.Collections.Generic.Collection) = + for t in types do + touchAttributes t.CustomAttributes + for prop in t.Properties do + touchAttributes prop.CustomAttributes + rewriteName prop + if prop.GetMethod <> null then rewriteName prop.GetMethod + if prop.SetMethod <> null then rewriteName prop.SetMethod + for method in t.Methods do + touchAttributes method.CustomAttributes + rewriteName method + for over in method.Overrides do rewriteName method + for field in t.Fields do touchAttributes field.CustomAttributes + for interf in t.Interfaces do touchAttributes interf.CustomAttributes + for event in t.Events do touchAttributes event.CustomAttributes + if t.HasNestedTypes then rewriteTypes t.NestedTypes + + nestAssembly.MainModule.Types |> rewriteTypes + + let resources = nestAssembly.MainModule.Resources + for i = resources.Count-1 downto 0 do + let resource = resources.[i] + // remove the Newtonsoft signing key + if resource.Name = "Newtonsoft.Json.Dynamic.snk" then resources.Remove(resource) |> ignore + + let key = File.ReadAllBytes(Paths.Keys("keypair.snk")) + let kp = StrongNameKeyPair(key) + let wp = WriterParameters ( StrongNameKeyPair = kp); + nestAssembly.Write(wp) |> ignore; + trace "Finished rewriting namespaces" + + let private ilRepackInternal() = + let fw = if isMono then [DotNetFramework.NetStandard1_3] else DotNetFramework.All + for f in fw do + let nest = Project Project.Nest + let folder = Paths.ProjectOutputFolder nest f + let nestDll = sprintf "%s/%s.dll" folder nest.Name + let nestMergedDll = sprintf "%s/%s-merged.dll" folder nest.Name + let jsonDll = sprintf "%s/Newtonsoft.Json.dll" folder + let keyFile = Paths.Keys("keypair.snk"); + let options = + [ + "/keyfile:", keyFile; + "/internalize", ""; + "/lib:", folder; + "/out:", nestDll; + ] + |> List.map (fun (p,v) -> sprintf "%s%s" p v) + + let args = [nestDll; jsonDll;] |> List.append options; + + Tooling.ILRepack.Exec args |> ignore + rewriteNamespace nest f |> ignore + + let ILRepack() = + //nothing to IL merge in the 5.x branch + ignore() + \ No newline at end of file diff --git a/build/scripts/Commandline.fsx b/build/scripts/Commandline.fsx index a4ceb8701ec..484c83650a7 100644 --- a/build/scripts/Commandline.fsx +++ b/build/scripts/Commandline.fsx @@ -1,10 +1,10 @@ #I @"../../packages/build/FAKE/tools" #r @"FakeLib.dll" +#nowarn "0044" //TODO sort out FAKE 5 open System open Fake - //this is ugly but a direct port of what used to be duplicated in our DOS and bash scripts let private usage = """ @@ -19,11 +19,10 @@ Targets: * clean - cleans build output folders * test [testfilter] - - incremental build and unit test for .NET 4.5, [testfilter] allows you to do - a contains match on the tests to be run. + - incremental build and unit test for .NET 4.5, [testfilter] allows you to do a contains match on the tests to be run. * release - 0 create a release worthy nuget packages for [version] under build\output -* integrate [clustername] [testfilter] - +* integrate [clustername] [testfilter] - run integration tests for which is a semicolon separated list of elasticsearch versions to test or `latest`. Can filter tests by and * canary [apikey] [feed] @@ -36,16 +35,36 @@ NOTE: both the `test` and `integrate` targets can be suffixed with `-all` to for Execution hints can be provided anywhere on the command line - skiptests : skip running tests as part of the target chain - skipdocs : skip generating documentation +- source_serialization : force tests to use a client with custom source serialization +- seed: : provide a seed to run the tests with. +- random:<:B> : sets random K to bool B if if B is omitted will default to true + K can be: sourceserializer, typedkeys or oldconnection (only valid on windows) """ module Commandline = type MultiTarget = All | One let private args = getBuildParamOrDefault "cmdline" "build" |> split ' ' + let skipTests = args |> List.exists (fun x -> x = "skiptests") let skipDocs = args |> List.exists (fun x -> x = "skipdocs") || isMono - let private filteredArgs = args |> List.filter (fun x -> x <> "skiptests" && x <> "skipdocs") + let seed = + match args |> List.tryFind (fun x -> x.StartsWith("seed:")) with + | Some t -> t.Replace("seed:", "") + | _ -> "" + + let randomArgs = + args + |> List.filter (fun x -> (x.StartsWith("random:"))) + |> List.map (fun x -> (x.Replace("random:", ""))) + let private filteredArgs = + args + |> List.filter ( + fun x -> + x <> "skiptests" && x <> "skipdocs" && x <> "source_serialization" && not (x.StartsWith("seed:")) && not (x.StartsWith("random:")) + ) + let multiTarget = match (filteredArgs |> List.tryHead) with | Some t when t.EndsWith("-all") -> MultiTarget.All @@ -56,6 +75,12 @@ module Commandline = | Some t -> t.Replace("-all", "") | _ -> "build" + let validMonoTarget = + match target with + | "release" + | "canary" -> false + | _ -> true + let needsFullBuild = match (target, skipTests) with | (_, true) -> true @@ -64,6 +89,15 @@ module Commandline = | ("integrate", _) -> false | _ -> true + let needsClean = + match (target, skipTests) with + | ("release", _) -> true + //dotnet-xunit needs to a build of its own anyways + | ("test", _) + | ("integrate", _) + | ("build", _) -> false + | _ -> true + let arguments = match filteredArgs with | _ :: tail -> target :: tail @@ -94,13 +128,9 @@ module Commandline = let parse () = setEnvironVar "FAKEBUILD" "1" + printfn "%A" arguments match arguments with - | [] - | ["build"] - | ["test"] - | ["clean"] - | ["benchmark"] - | ["profile"] -> ignore() + | [] | ["build"] | ["test"] | ["clean"] | ["benchmark"] | ["profile"] -> ignore() | ["release"; version] -> setBuildParam "version" version | ["test"; testFilter] -> setBuildParam "testfilter" testFilter diff --git a/build/scripts/Differ.fsx b/build/scripts/Differ.fsx index d84ea6e45c8..8f2fa052750 100644 --- a/build/scripts/Differ.fsx +++ b/build/scripts/Differ.fsx @@ -7,11 +7,9 @@ #load @"Tooling.fsx" #load @"Projects.fsx" +open Microsoft.FSharp.Reflection open System -open System.IO - -open Fake -open System +open System.Collections.Generic open System.IO open System.Linq open System.Net @@ -19,8 +17,8 @@ open System.Text open System.Text.RegularExpressions open System.Xml open System.Xml.Linq +open Fake open Fake.Git.CommandHelper - open Paths open Projects open Tooling @@ -127,16 +125,11 @@ module Differ = |> Array.tryFind (fun f -> nuget.FrameworkVersion = Path.GetFileName f) match desiredFrameworkVersion with | Some f -> f |> Path.GetFullPath - | _ -> - // TODO: resolve the dependency compatible framework version for the target framework. - // May want to remove this for dependencies as they are not required for JustAssembly, - // but are for BitDiffer, which was originally used. - traceFAKE "Nuget package %s, version %s, does not contain framework version %s in %s" - nuget.Package - packageVersion - nuget.FrameworkVersion - dir - String.Empty + | _ -> failwith (sprintf "Nuget package %s, version %s, does not contain framework version %s in %s" + nuget.Package + packageVersion + nuget.FrameworkVersion + dir) versions |> Seq.map(fun v -> @@ -167,8 +160,7 @@ module Differ = // copy all dependent package assemblies into target dir for packageDir in packageDirs do let path = packageVersionPath packageDir v - if isNotNullOrEmpty path then - path |> Directory.GetFiles |> CopyFiles targetPath + path |> Directory.GetFiles |> CopyFiles targetPath target ) @@ -270,6 +262,25 @@ module Differ = | :? XmlException -> ignore() let private convertToAsciidoc path first second = + let createDiffDescription description (writer:TextWriter) = + let m = Regex.Match(description, "(.*?) changed from (.*?) to (.*).") + if m.Success then + let memberType = m.Groups.[1].Value + let o = m.Groups.[2].Value + let n = m.Groups.[3].Value + writer.WriteLine("+") + writer.WriteLine(sprintf "%s change" memberType) + writer.WriteLine("+") + writer.WriteLine("[source,csharp]") + writer.WriteLine("----") + writer.WriteLine(sprintf "// before in %s" first) + writer.WriteLine(sprintf "%s" o) + writer.WriteLine(sprintf "// now in %s" second) + writer.WriteLine(sprintf "%s" n) + writer.WriteLine("----") + else + writer.WriteLine(sprintf "%s" description) + let name = path |> Path.GetFileNameWithoutExtension try let doc = XDocument.Load path @@ -277,35 +288,37 @@ module Differ = DeleteFile output use file = File.OpenWrite <| output use writer = new StreamWriter(file) - writer.WriteLine(name |> replace "." "-" |> sprintf "[[%s-breaking-changes]]") + writer.WriteLine(name |> replace "." "-" |> toLower |> sprintf "[[%s-breaking-changes]]") writer.WriteLine(sprintf "== Breaking changes for %s between %s and %s" name first second) writer.WriteLine() for element in (doc |> descendents "Type") do let typeName = element |> attributeValue "Name" |> replace (sprintf "%s." name) "" let diffType = element |> attributeValue "DiffType" |> convertDiffType + match diffType with - | Deleted -> writer.WriteLine(sprintf "[float]%s=== `%s` is deleted" Environment.NewLine typeName) - | New -> writer.WriteLine(sprintf "[float]%s=== `%s` is added" Environment.NewLine typeName) + | Deleted -> writer.WriteLine(sprintf "`%s`:: deleted" typeName) + | New -> writer.WriteLine(sprintf "`%s`:: added" typeName) | Modified -> let members = Seq.append (element |> elements "Method") (element |> elements "Property") if Seq.isEmpty members |> not then - writer.WriteLine(sprintf "[float]%s=== `%s`" Environment.NewLine typeName) + writer.WriteLine(sprintf "`%s`::" typeName) for m in members do let memberName = m |> attributeValue "Name" if isNotNullOrEmpty memberName then let diffType = m |> attributeValue "DiffType" if isNotNullOrEmpty diffType then match convertDiffType diffType with - | Deleted -> writer.WriteLine(sprintf "[float]%s==== `%s` is deleted" Environment.NewLine memberName) - | New -> writer.WriteLine(sprintf "[float]%s==== `%s` is added" Environment.NewLine memberName) + | Deleted -> writer.WriteLine(sprintf " * `%s` deleted" memberName) + | New -> writer.WriteLine(sprintf " * `%s` added" memberName) | Modified -> match (m.Descendants(XName.op_Implicit "DiffItem") |> Seq.tryHead) with | Some diffItem -> - writer.WriteLine(sprintf "[float]%s==== `%s`" Environment.NewLine memberName) + writer.WriteLine(sprintf " * `%s`" memberName) let diffDescription = diffItem.Value - writer.WriteLine(Regex.Replace(diffDescription, "changed from (.*?) to (.*).", "changed from `$1` to `$2`.")) + writer |> createDiffDescription diffDescription | None -> () + writer.WriteLine() with | :? XmlException -> ignore() diff --git a/build/scripts/Documentation.fsx b/build/scripts/Documentation.fsx index b81675cee45..49f63a20d79 100644 --- a/build/scripts/Documentation.fsx +++ b/build/scripts/Documentation.fsx @@ -1,5 +1,6 @@ #I @"../../packages/build/FAKE/tools" #r @"FakeLib.dll" +#nowarn "0044" //TODO sort out FAKE 5 #load @"Paths.fsx" diff --git a/build/scripts/Profiling.fsx b/build/scripts/Profiling.fsx index 4f367cbed68..84ad40f70b8 100644 --- a/build/scripts/Profiling.fsx +++ b/build/scripts/Profiling.fsx @@ -1,10 +1,11 @@ #I @"../../packages/build/FAKE/tools" -#r "../../packages/build/FSharp.Data/lib/net40/FSharp.Data.dll" -#r "../../packages/build/NEST/lib/net45/Nest.dll" -#r "../../packages/build/Elasticsearch.Net/lib/net45/Elasticsearch.Net.dll" +#r "../../packages/build/FSharp.Data/lib/net45/FSharp.Data.dll" +#r "../../packages/build/NEST/lib/net46/Nest.dll" +#r "../../packages/build/Elasticsearch.Net/lib/net46/Elasticsearch.Net.dll" #r "../../packages/build/Newtonsoft.Json/lib/net45/Newtonsoft.Json.dll" #r @"FakeLib.dll" #r @"System.Xml.Linq.dll" +#nowarn "0044" //TODO sort out FAKE 5 #load @"Projects.fsx" #load @"Paths.fsx" diff --git a/build/scripts/Projects.fsx b/build/scripts/Projects.fsx index 49551d0deed..6b3abbc4cbd 100644 --- a/build/scripts/Projects.fsx +++ b/build/scripts/Projects.fsx @@ -14,17 +14,15 @@ module Projects = type DotNetFrameworkIdentifier = { MSBuild: string; Nuget: string; DefineConstants: string; } type DotNetFramework = - | Net45 | Net46 | NetStandard1_3 - | NetCoreApp1_1 - static member All = [Net45; Net46; NetStandard1_3] + | NetCoreApp2_0 + static member All = [Net46; NetStandard1_3] member this.Identifier = match this with - | Net45 -> { MSBuild = "v4.5"; Nuget = "net45"; DefineConstants = if not isMono then "TRACE;NET45" else "NET45"; } | Net46 -> { MSBuild = "v4.6"; Nuget = "net46"; DefineConstants = if not isMono then "TRACE;NET46" else "NET46"; } | NetStandard1_3 -> { MSBuild = "netstandard1.3"; Nuget = "netstandard1.3"; DefineConstants = if not isMono then "TRACE;DOTNETCORE" else "DOTNETCORE"; } - | NetCoreApp1_1 -> { MSBuild = "netcoreapp1.1"; Nuget = "netcoreapp1.1"; DefineConstants = if not isMono then "TRACE;DOTNETCORE" else "DOTNETCORE"; } + | NetCoreApp2_0 -> { MSBuild = "netcoreapp2.0"; Nuget = "netcoreapp2.0"; DefineConstants = if not isMono then "TRACE;DOTNETCORE" else "DOTNETCORE"; } type Project = | Nest diff --git a/build/scripts/Releasing.fsx b/build/scripts/Releasing.fsx index ec9a4ca796d..871aabc77a3 100644 --- a/build/scripts/Releasing.fsx +++ b/build/scripts/Releasing.fsx @@ -32,7 +32,7 @@ module Release = CreateDir Paths.NugetOutput let name = p.Name; - let nuspec = (sprintf @"build\%s.nuspec" name) + let nuspec = (sprintf @"build/%s.nuspec" name) let nugetOutFile = Paths.Output(sprintf "%s.%s.nupkg" name (Versioning.CurrentVersion.ToString())) let nextMajorVersion = diff --git a/build/scripts/Signing.fsx b/build/scripts/Signing.fsx index 970edbbe760..b507976b0ca 100644 --- a/build/scripts/Signing.fsx +++ b/build/scripts/Signing.fsx @@ -1,6 +1,7 @@ #I @"../../packages/build/FAKE/tools" #r @"FakeLib.dll" #load @"Paths.fsx" +#nowarn "0044" //TODO sort out FAKE 5 open System open Fake diff --git a/build/scripts/Targets.fsx b/build/scripts/Targets.fsx index d7e93c6821f..21aebfb1753 100644 --- a/build/scripts/Targets.fsx +++ b/build/scripts/Targets.fsx @@ -35,6 +35,10 @@ open Differ.Differ Commandline.parse() Target "Build" <| fun _ -> traceHeader "STARTING BUILD" +Target "Start" <| fun _ -> + match (isMono, Commandline.validMonoTarget) with + | (true, false) -> failwithf "%s is not a valid target on mono because it can not call ILRepack" (Commandline.target) + | _ -> traceHeader "STARTING BUILD" Target "Clean" Build.Clean @@ -49,7 +53,7 @@ Target "Profile" <| fun _ -> let url = getBuildParam "elasticsearch" Profiler.IndexResults url -Target "Integrate" <| Tests.RunIntegrationTests +Target "Integrate" Tests.RunIntegrationTests Target "Benchmark" <| fun _ -> let runInteractive = ((getBuildParam "nonInteractive") <> "1") @@ -59,7 +63,9 @@ Target "Benchmark" <| fun _ -> let password = getBuildParam "password" Benchmarker.IndexResults (url, username, password) -Target "InheritDoc" InheritDoc.PatchInheritDocs +Target "InternalizeDependencies" Build.ILRepack + +Target "InheritDoc" InheritDoc.PatchInheritDocs Target "Documentation" Documentation.Generate @@ -72,12 +78,15 @@ Target "Release" <| fun _ -> StrongName.ValidateDllsInNugetPackage() Release.GenerateNotes() +Target "TestNugetPackage" <| fun _ -> + Tests.RunReleaseUnitTests() + Target "Canary" <| fun _ -> trace "Running canary build" let apiKey = (getBuildParam "apikey"); let feed = (getBuildParamOrDefault "feed" "elasticsearch-net"); if (not (String.IsNullOrWhiteSpace apiKey) || apiKey = "ignore") then Release.PublishCanaryBuild apiKey feed - + Target "Diff" <| fun _ -> let diffType = getBuildParam "diffType" let project = getBuildParam "project" @@ -88,29 +97,34 @@ Target "Diff" <| fun _ -> Differ.Generate(diffType, project, first, second, format) // Dependencies -"Clean" +"Start" + =?> ("Clean", Commandline.needsClean ) =?> ("Version", hasBuildParam "version") ==> "Restore" =?> ("FullBuild", Commandline.needsFullBuild) =?> ("Test", (not Commandline.skipTests)) + =?> ("InternalizeDependencies", (not isMono)) ==> "InheritDoc" =?> ("Documentation", (not Commandline.skipDocs)) ==> "Build" -"Clean" +"Start" + =?> ("Clean", Commandline.needsClean ) =?> ("FullBuild", Commandline.needsFullBuild) ==> "Profile" -"Clean" - ==> "Restore" +"Start" + =?> ("Clean", Commandline.needsClean ) =?> ("FullBuild", Commandline.needsFullBuild) ==> "Benchmark" "Version" ==> "Release" + =?> ("TestNugetPackage", (not isMono)) ==> "Canary" -"Clean" +"Start" + =?> ("Clean", Commandline.needsClean ) ==> "Restore" =?> ("FullBuild", Commandline.needsFullBuild) ==> "Integrate" @@ -118,7 +132,8 @@ Target "Diff" <| fun _ -> "Build" ==> "Release" -"Clean" +"Start" + ==> "Clean" ==> "Diff" RunTargetOrListTargets() diff --git a/build/scripts/Testing.fsx b/build/scripts/Testing.fsx index 51e792f637c..436a3bffdda 100644 --- a/build/scripts/Testing.fsx +++ b/build/scripts/Testing.fsx @@ -1,10 +1,12 @@ #I @"../../packages/build/FAKE/tools" +open Fake.Core #r @"FakeLib.dll" #load @"Commandline.fsx" #load @"Projects.fsx" #load @"Paths.fsx" #load @"Tooling.fsx" +#load @"Versioning.fsx" open System.IO open Fake @@ -12,6 +14,8 @@ open Paths open Projects open Tooling open Commandline +open Versioning + module Tests = open System @@ -25,6 +29,14 @@ module Tests = setProcessEnvironVar "NEST_INTEGRATION_CLUSTER" clusterFilter setProcessEnvironVar "NEST_TEST_FILTER" testFilter setProcessEnvironVar "NEST_NUMBER_OF_CONNECTIONS" numberOfConnections + setProcessEnvironVar "NEST_TEST_SEED" Commandline.seed + for random in Commandline.randomArgs do + let tokens = random.Split [|':'|] + let key = tokens.[0].ToUpper() + let b = if tokens.Length = 1 then true else (bool.Parse (tokens.[1])) + let v = sprintf "NEST_RANDOM_%s" key + setProcessEnvironVar v (if b then "true" else "false") + ignore() let private dotnetTest (target: Commandline.MultiTarget) = CreateDir Paths.BuildOutput @@ -32,13 +44,29 @@ module Tests = let p = ["xunit"; "-parallel"; "all"; "-xml"; "../.." @@ Paths.Output("TestResults-Desktop-Clr.xml")] match (target, buildingOnTravis) with | (_, true) - | (Commandline.MultiTarget.One, _) -> ["-framework"; "netcoreapp1.1"] |> List.append p + | (Commandline.MultiTarget.One, _) -> ["-framework"; "netcoreapp2.0"] |> List.append p | _ -> p let dotnet = Tooling.BuildTooling("dotnet") let exitCode = dotnet.ExecWithTimeoutIn "src/Tests" command (TimeSpan.FromMinutes 30.) if exitCode > 0 then raise (Exception <| (sprintf "test finished with exitCode %d" exitCode)) + let RunReleaseUnitTests() = + setLocalEnvVars() + //xUnit always does its own build, this env var is picked up by Tests.csproj + //if its set it will include the local package source (build/output/_packages) + //and references NEST and NEST.JsonNetSerializer by the current version + //this works by not including the local package cache (nay source) + //in the project file via: + // + //This will download all packages but its the only way to make sure we reference the built + //package and not one from cache...y + setProcessEnvironVar "TestPackageVersion" (Versioning.CurrentVersion.ToString()) + let dotnet = Tooling.BuildTooling("dotnet") + dotnet.ExecIn "src/Tests" ["clean";] |> ignore + dotnet.ExecIn "src/Tests" ["restore";] |> ignore + dotnetTest Commandline.MultiTarget.One + let RunUnitTests() = setLocalEnvVars() dotnetTest Commandline.multiTarget diff --git a/build/scripts/Tooling.fsx b/build/scripts/Tooling.fsx index 7fad2157d08..215a1ee4730 100644 --- a/build/scripts/Tooling.fsx +++ b/build/scripts/Tooling.fsx @@ -1,6 +1,7 @@ #I @"../../packages/build/FAKE/tools" #r @"FakeLib.dll" #r @"System.IO.Compression.FileSystem.dll" +#nowarn "0044" //TODO sort out FAKE 5 open System open System.IO @@ -18,10 +19,6 @@ module Tooling = open Paths open Projects - let private fileDoesNotExist path = path |> Path.GetFullPath |> File.Exists |> not - let private dirDoesNotExist path = path |> Path.GetFullPath |> Directory.Exists |> not - let private doesNotExist path = (fileDoesNotExist path) && (dirDoesNotExist path) - (* helper functions *) #if mono_posix #r "Mono.Posix.dll" @@ -80,7 +77,6 @@ module Tooling = let execProcess proc arguments = execProcessInDirectory proc arguments "." - let execProcessAndReturnMessages proc arguments = execProcessWithTimeoutAndReturnMessages proc arguments defaultTimeout @@ -102,6 +98,9 @@ module Tooling = member this.ExecIn workingDirectory arguments = this.ExecWithTimeoutIn workingDirectory arguments defaultTimeout member this.ExecWithTimeoutIn workingDirectory arguments timeout = execProcessWithTimeout this.Path arguments timeout workingDirectory + let Nuget = new BuildTooling(nugetFile) + let ILRepack = new BuildTooling("packages/build/ILRepack/tools/ILRepack.exe") + type DotTraceTool = { Name:string; Download:string; @@ -140,76 +139,19 @@ module Tooling = let toolPath = commandLineTool @@ path member this.Exec arguments = execAt Environment.CurrentDirectory toolPath arguments - let Nuget = new BuildTooling(nugetFile) - let GitLink = new BuildTooling(Paths.Tool("gitlink/lib/net45/gitlink.exe")) - let Node = new BuildTooling(Paths.Tool("Node.js/node.exe")) - let Npm = new BuildTooling(Paths.Tool("Npm/node_modules/npm/cli.js")) - let XUnit = new BuildTooling(Paths.Tool("xunit.runner.console/tools/xunit.console.exe")) let DotTraceProfiler = new ProfilerTooling("ConsoleProfiler.exe") let DotTraceReporter = new ProfilerTooling("Reporter.exe") let DotTraceSnapshotStats = new ProfilerTooling("SnapshotStat.exe") - //only used to boostrap fake itself - let Fake = new BuildTooling("FAKE/tools/FAKE.exe") - - type DotNetRuntime = | Desktop | Core | Both - type DotNetTooling(exe) = - member this.Exec arguments = + member this.Exec arguments = this.ExecWithTimeout arguments (TimeSpan.FromMinutes 30.) member this.ExecWithTimeout arguments timeout = let result = execProcessWithTimeout exe arguments timeout "." if result <> 0 then failwith (sprintf "Failed to run dotnet tooling for %s args: %A" exe arguments) - let DotNet = new DotNetTooling("dotnet.exe") - - type MsBuildTooling() = - // Exclude DocGenerator from .NET 4.5 build as it depends on a Roslyn library - // that is built against .NET 4.5.2 - let solutionForFramework framework = - match framework with - | Net45 -> Paths.Source "Elasticsearch.Net45.sln" - | _ -> Paths.Source "Elasticsearch.sln" - - member this.Build (framework:Projects.DotNetFramework) = - let solution = solutionForFramework framework - let identifier = framework.Identifier - let setParams defaults = - { defaults with - Verbosity = Some(Quiet) - Targets = ["Build"] - Properties = - [ - "OutputPathBaseDir", Path.GetFullPath "build\\output" - "Optimize", "True" - "Configuration", "Release" - "TargetFrameworkVersion", identifier.MSBuild - "DefineConstants", identifier.DefineConstants - ] - } - build setParams solution - - member this.Rebuild (framework:Projects.DotNetFramework) = - let solution = solutionForFramework framework - let identifier = framework.Identifier - let setParams defaults = - { defaults with - Verbosity = Some(Quiet) - Targets = ["Rebuild"] - Properties = - [ - "OutputPathBaseDir", Path.GetFullPath "build\\output" - "Optimize", "True" - "Configuration", "Release" - "TargetFrameworkVersion", identifier.MSBuild - "DefineConstants", identifier.DefineConstants - ] - } - - build setParams solution - - let MsBuild = new MsBuildTooling() + let DotNet = DotNetTooling("dotnet.exe") type DiffTooling(exe) = let installPath = "C:\Program Files (x86)\Progress\JustAssembly\Libraries" @@ -223,5 +165,5 @@ module Tooling = let result = execProcessWithTimeout toolPath arguments (TimeSpan.FromMinutes 5.) "." if result <> 0 then failwith (sprintf "Failed to run diff tooling for %s args: %A" exe arguments) - let JustAssembly = new DiffTooling("JustAssembly.CommandLineTool.exe") + let JustAssembly = DiffTooling("JustAssembly.CommandLineTool.exe") diff --git a/build/scripts/Versioning.fsx b/build/scripts/Versioning.fsx index e6de18b8ae8..6bf0dc87dce 100644 --- a/build/scripts/Versioning.fsx +++ b/build/scripts/Versioning.fsx @@ -1,5 +1,5 @@ #I @"../../packages/build/FAKE/tools" -#I @"../../packages/build/FSharp.Data/lib/net40" +#I @"../../packages/build/FSharp.Data/lib/net45" #r @"FakeLib.dll" #r @"FSharp.Data.dll" #r @"System.Xml.Linq.dll" diff --git a/build/scripts/XmlDocPatcher.fsx b/build/scripts/XmlDocPatcher.fsx index 008c0d9f933..2cc31c548ea 100644 --- a/build/scripts/XmlDocPatcher.fsx +++ b/build/scripts/XmlDocPatcher.fsx @@ -1,6 +1,7 @@ #I @"../../packages/build/FAKE/tools" #r @"FakeLib.dll" #r "System.Xml.Linq.dll" +#nowarn "0044" //TODO sort out FAKE 5 #load @"Paths.fsx" diff --git a/contributing.md b/contributing.md index 39a6502a92e..664941cdf81 100644 --- a/contributing.md +++ b/contributing.md @@ -4,7 +4,7 @@ Contributing back to `Elasticsearch.Net` and `NEST` is very much appreciated. Whether you [feel the need to change one character](https://github.com/elasticsearch/elasticsearch-net/pull/536) or have a go at [mapping new API's](http://github.com/elasticsearch/elasticsearch-net/pull/376) no PR is too small or too big. -In fact many of our most aweseome features/fixes have been provided to us by [these wonderful folks](https://github.com/elasticsearch/elasticsearch-net/graphs/contributors) to which we are forever indebted +In fact many of our most awesome features/fixes have been provided to us by [these wonderful folks](https://github.com/elasticsearch/elasticsearch-net/graphs/contributors) to which we are forever indebted ## Sign the CLA @@ -16,13 +16,13 @@ Please install the [editorconfig vs extension](https://visualstudiogallery.msdn. this will automatically switch to our indentation, whitespace, newlines settings while working on our project **while leaving your default settings intact**. -In most cases we won't shun a PR just because it uses the wrong indentation settings though it'll be **very** much appreciated! +In most cases we won't shun a PR just because it uses the wrong indentation settings, though it'll be **very** much appreciated if it is already done! ## Tests -PR's with tests are more likely to be reviewed faster because it makes our jobs that much more easy, that being said +PR's with tests are more likely to be reviewed faster because it makes the job or reviewing the PR much easier. That being said, we respect that you are fixing a bug in your own time and might not have the time/energy to submit a PR with complete tests. -In those cases we tend to pull your bits locally and write tests ourselves but this may mean your PR might sit idle longer then you would like. +In those cases we tend to pull your bits locally and write tests ourselves, but this may mean your PR might sit idle longer than you would like. ## Branches @@ -69,7 +69,7 @@ This will - Pull down all the paket dependencies for the build process as well as the solution - Run the default build target for the solution -You can also compile the solution within Visual Studio if you prefer, but the build script is going to be faster. +You can also compile the solution within Visual Studio if you prefer, but the build script is going to be _much_ faster. ## Tests @@ -88,6 +88,13 @@ build.bat ``` with no target will run the `Build` target, compiling the solution and running unit tests +### Compile + +```bash +build.bat skiptests +``` +This compiles the solution and skips running tests + ### Quick Compile and run integration tests ```bash @@ -106,7 +113,7 @@ You may come across an exception similar to below when running the build script The `1.x` and `master` branches have diverged dramatically as a result of changes in preparation for 2.0. This includes changes to the build process such that switching between the `master` and `1.x` branches and back again can change the versions of packages used within the build processes. To rectify this issue, try deleting the `packages` folder within the root of the solution and run the build script again. -If working on both 1.x and 2.0 versions of NEST, it is recommended to clone the git repository for each version into separate directories to avoid the need to switch between the divergent branches. +If working on both 1.x and 2.x and 5.x versions of NEST, it is recommended to clone the git repository for each version into separate directories to avoid the need to switch between the divergent branches. ### System.Exception: Attempting to run with dotnet.exe with 1.0.x but global.json mandates 1.0.1 diff --git a/paket.dependencies b/paket.dependencies index 7a9116374fe..b9475c011af 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -4,10 +4,12 @@ group build source https://www.nuget.org/api/v2 - nuget FAKE - nuget FSharp.Data + nuget FAKE prerelease + nuget ILRepack prerelease + nuget FSharp.Data + nuget Mono.Cecil prerelease # persisting profiling results - nuget Nest framework: net45 + nuget Nest ~> 5.5 framework: net45 nuget Octokit \ No newline at end of file diff --git a/paket.lock b/paket.lock index 91636bb5e06..e5a288f7d74 100644 --- a/paket.lock +++ b/paket.lock @@ -3,20 +3,32 @@ GROUP build NUGET remote: https://www.nuget.org/api/v2 - Elasticsearch.Net (5.3) - restriction: == net45 - FAKE (4.57.4) - FSharp.Data (2.3.2) - Zlib.Portable (>= 1.11) - restriction: || (&& (< net40) (>= portable-net45+win8)) (&& (< net40) (>= portable-net45+win8+sl5) (< portable-net45+win8+wp8+wpa81)) (&& (< net40) (< portable-net45+win8+sl5) (>= portable-net45+win8+wp8+wpa81)) - Microsoft.NETCore.Platforms (2.0.2) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net461)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (< netstandard1.0) (>= netstandard1.1) (>= win8)) (&& (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (>= wp8)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (>= uap10.1) - Microsoft.NETCore.Targets (2.0) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) - Microsoft.Win32.Primitives (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + Elasticsearch.Net (5.6.2) - restriction: == net45 + FAKE (5.0.0-rc018.244) + FSharp.Core (4.3.4) - restriction: && (< net40) (< portable-net45+win8+wp8+wpa81) + FSharp.Data (2.4.6) + FSharp.Core (>= 4.0.0.1) - restriction: && (< net40) (< portable-net45+win8+wp8+wpa81) + Zlib.Portable (>= 1.11) - restriction: || (&& (< net40) (>= portable-net45+win8)) (&& (< net40) (< portable-net45+win8) (>= portable-net45+win8+wp8+wpa81)) + ILRepack (2.1.0-beta1) + Microsoft.NETCore.Platforms (2.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net461)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.2) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< portable-net45+win8+wpa81)) (>= netcoreapp2.0) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (< netstandard1.0) (>= netstandard1.1) (>= win8)) (&& (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (>= wp8)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) (&& (< portable-net451+win81+wpa81) (>= uap10.0)) (>= uap10.1) + Microsoft.NETCore.Targets (2.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.2) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.3) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.4) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.5) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.6) (< portable-net451+win81+wpa81) (< win8)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win81) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) (&& (< portable-net451+win81+wpa81) (>= uap10.0)) + Microsoft.Win32.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - NEST (5.3) - restriction: == net45 - Elasticsearch.Net (>= 5.3 < 6.0) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.3)) (>= net46) - Newtonsoft.Json (>= 9.0 < 10.0) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.3)) (>= net46) - NETStandard.Library (2.0.2) - restriction: && (< net45) (>= netstandard1.1) + Mono.Cecil (0.10) + System.Collections (>= 4.0.11) - restriction: && (< net35) (>= netstandard1.3) + System.IO.FileSystem (>= 4.0.1) - restriction: && (< net35) (>= netstandard1.3) + System.IO.FileSystem.Primitives (>= 4.0.1) - restriction: && (< net35) (>= netstandard1.3) + System.Reflection (>= 4.1) - restriction: && (< net35) (>= netstandard1.3) + System.Runtime.Extensions (>= 4.1) - restriction: && (< net35) (>= netstandard1.3) + System.Security.Cryptography.Algorithms (>= 4.2) - restriction: && (< net35) (>= netstandard1.3) + System.Security.Cryptography.Csp (>= 4.0) - restriction: && (< net35) (>= netstandard1.3) + System.Threading (>= 4.0.11) - restriction: && (< net35) (>= netstandard1.3) + NEST (5.6.2) - restriction: == net45 + Elasticsearch.Net (>= 5.6.2 < 6.0) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.3)) (>= net46) + Newtonsoft.Json (>= 11.0.1 < 12.0) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.3)) (>= net46) + NETStandard.Library (2.0.3) - restriction: && (< net45) (>= netstandard1.1) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4)) (>= net461) (>= netcoreapp2.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8) (< win8)) (&& (< netstandard1.0) (< portable-net45+win8) (>= portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (>= uap10.1) (>= wp8) Microsoft.Win32.Primitives (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.4)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.AppContext (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.4)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) @@ -61,13 +73,13 @@ NUGET System.Threading.Timer (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.Xml.ReaderWriter (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.4)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.Xml.XDocument (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) - Newtonsoft.Json (9.0.1) - restriction: == net45 + Newtonsoft.Json (11.0.2) - restriction: == net45 Octokit (0.29) NETStandard.Library (>= 1.6) - restriction: && (< net45) (>= netstandard1.1) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.native.System (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.native.System (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) runtime.native.System.IO.Compression (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) @@ -76,9 +88,9 @@ NUGET runtime.native.System.Net.Http (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) - runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) + runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) @@ -89,27 +101,27 @@ NUGET runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.AppContext (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.6)) (&& (< monoandroid) (< netstandard1.3)) - System.Buffers (4.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) - System.Diagnostics.Debug (>= 4.3) - restriction: && (>= netstandard1.1) (< netstandard2.0) (< xamarinmac) - System.Diagnostics.Tracing (>= 4.3) - restriction: && (>= netstandard1.1) (< netstandard2.0) (< xamarinmac) - System.Resources.ResourceManager (>= 4.3) - restriction: && (>= netstandard1.1) (< netstandard2.0) (< xamarinmac) - System.Runtime (>= 4.3) - restriction: && (>= netstandard1.1) (< netstandard2.0) (< xamarinmac) - System.Threading (>= 4.3) - restriction: && (>= netstandard1.1) (< netstandard2.0) (< xamarinmac) - System.Collections (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Buffers (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) + System.Diagnostics.Debug (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) + System.Diagnostics.Tracing (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) + System.Resources.ResourceManager (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) + System.Runtime (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) + System.Threading (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) + System.Collections (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Collections.Concurrent (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Collections.Concurrent (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) @@ -126,31 +138,31 @@ NUGET System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Diagnostics.Debug (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Diagnostics.Debug (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Diagnostics.DiagnosticSource (4.4.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) - System.Collections (>= 4.3) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac)) (&& (< net45) (>= netstandard1.1) (< netstandard1.3)) - System.Diagnostics.Debug (>= 4.3) - restriction: && (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac) - System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac)) (&& (< net45) (>= netstandard1.1) (< netstandard1.3)) - System.Reflection (>= 4.3) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac)) (&& (< net45) (>= netstandard1.1) (< netstandard1.3)) - System.Runtime (>= 4.3) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac)) (&& (< net45) (>= netstandard1.1) (< netstandard1.3)) - System.Runtime.Extensions (>= 4.3) - restriction: && (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac) - System.Threading (>= 4.3) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard1.3) (< xamarinmac)) (&& (< net45) (>= netstandard1.1) (< netstandard1.3)) - System.Diagnostics.Tools (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Diagnostics.DiagnosticSource (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) + System.Collections (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81)) + System.Diagnostics.Debug (>= 4.3) - restriction: && (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) + System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81)) + System.Reflection (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81)) + System.Runtime (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81)) + System.Runtime.Extensions (>= 4.3) - restriction: && (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) + System.Threading (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81)) + System.Diagnostics.Tools (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) - System.Diagnostics.Tracing (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Diagnostics.Tracing (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) - System.Globalization (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Globalization (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Globalization.Calendars (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Globalization.Calendars (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -162,13 +174,13 @@ NUGET System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.IO (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net35) (>= netstandard1.4) (< netstandard1.6)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= net463)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.IO.Compression (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.IO.Compression (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) runtime.native.System (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) runtime.native.System.IO.Compression (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) @@ -194,7 +206,7 @@ NUGET System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO.FileSystem (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.IO.FileSystem (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -203,9 +215,9 @@ NUGET System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO.FileSystem.Primitives (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.IO.FileSystem.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= net46)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Linq (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Linq (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) @@ -258,7 +270,7 @@ NUGET System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) - System.Net.Primitives (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Net.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard1.0) (< netstandard1.1) (< win8) (< wp8)) (< portable-net45+win8+wp8+wpa81) @@ -270,13 +282,13 @@ NUGET System.Net.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.ObjectModel (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.ObjectModel (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) - System.Reflection (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Reflection (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) @@ -297,37 +309,39 @@ NUGET System.Reflection.Emit.ILGeneration (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< wp8) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Reflection.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< wp8) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< wp8) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Reflection.Extensions (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Reflection.Extensions (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.2) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.6) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.1)) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.1) (>= uap10.0) (< win8)) (&& (< netstandard1.1) (< win8) (>= wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) - System.Reflection.Primitives (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Reflection.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) - System.Reflection.TypeExtensions (4.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) - System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.5) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5)) (&& (< monoandroid) (< netstandard1.3)) - System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.5) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5)) (&& (< monoandroid) (< netstandard1.3)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.5) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5)) (&& (< monoandroid) (< netstandard1.3)) - System.Resources.ResourceManager (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Reflection.TypeExtensions (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) + System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (< netcoreapp1.0) (>= netstandard1.5) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5) (< uap10.1)) (&& (< monoandroid) (< netstandard1.3)) (&& (>= netcoreapp1.0) (< netstandard2.0)) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (< netcoreapp1.0) (>= netstandard1.5) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5) (< uap10.1)) (&& (< monoandroid) (< netstandard1.3)) (&& (>= netcoreapp1.0) (< netstandard2.0)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (< netcoreapp1.0) (>= netstandard1.5) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5) (< uap10.1)) (&& (< monoandroid) (< netstandard1.3)) (&& (>= netcoreapp1.0) (< netstandard2.0)) + System.Resources.ResourceManager (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.2) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.6) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.1) (>= uap10.0) (< win8)) (&& (< netstandard1.1) (< win8) (>= wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) - System.Runtime (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Runtime (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net35) (>= netstandard1.4) (< netstandard1.6)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= net463)) (&& (< net35) (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.2) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< portable-net451+win81+wpa81) (< win8)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< portable-net451+win81+wpa81) (< win8)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win81) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) (&& (< portable-net451+win81+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Runtime.Extensions (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Runtime.CompilerServices.Unsafe (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.6) (< win8)) (&& (>= net45) (< netstandard1.5) (>= uap10.0)) (&& (>= net45) (< portable-net45+win8+wp8+wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< net45) (< netstandard1.4) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.0)) (&& (>= net46) (< netstandard1.4) (>= wpa81)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= net46) (>= wp8)) (&& (< netstandard1.0) (>= uap10.0) (< win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.2) (>= netstandard1.3) (< win8) (>= wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (>= wp8)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (>= wp8)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (>= wp8)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (>= wp8)) (&& (>= netstandard2.0) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard2.0) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wp8+wpa81) (>= wpa81)) (&& (>= uap10.0) (>= wp8)) + System.Runtime (>= 4.3) - restriction: && (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81) + System.Runtime.Extensions (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Runtime.Handles (4.3) - restriction: || (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Runtime.Handles (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Runtime.InteropServices (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) (< portable-net45+win8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) (< portable-net45+win8+wpa81) System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) (< portable-net45+win8+wpa81) @@ -342,12 +356,12 @@ NUGET System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.1) (< win8)) System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.1) (< win8)) - System.Runtime.Numerics (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Runtime.Numerics (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (< portable-net45+win8+wpa81) System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wpa81) - System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= net46)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net461) (< netstandard1.4)) (&& (< net45) (>= net461) (>= netstandard1.5) (< netstandard1.6)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (< net45) (>= net461) (>= netstandard1.6) (< netstandard2.0)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net461) (< netstandard1.5) (>= uap10.0)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.4) (>= uap10.0)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -362,18 +376,18 @@ NUGET System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) (>= net463) System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (< monoandroid) (< netstandard1.3)) (&& (>= net46) (< netstandard1.4)) (&& (>= net461) (< netstandard1.6)) (>= net463) System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) - System.Security.Cryptography.Cng (4.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (>= net46) (< netstandard1.4)) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (>= net46) (< netstandard1.4)) - System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) - System.Security.Cryptography.Csp (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) + System.Security.Cryptography.Cng (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) + System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) (&& (>= net46) (< netstandard1.4)) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) (&& (>= net46) (< netstandard1.4)) + System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) + System.Security.Cryptography.Csp (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Reflection (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -387,7 +401,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net46) System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= net463)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net461) (< netstandard1.4)) (&& (< net45) (>= net461) (>= netstandard1.5) (< netstandard1.6)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (< net45) (>= net461) (>= netstandard1.6) (< netstandard2.0)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net461) (< netstandard1.5) (>= uap10.0)) (&& (< netstandard1.3) (>= uap10.0)) (&& (< netstandard1.4) (>= uap10.0)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Collections (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -400,20 +414,20 @@ NUGET System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.OpenSsl (4.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) - System.Collections (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Resources.ResourceManager (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Handles (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.Numerics (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Algorithms (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net461) (>= netstandard1.6) (< netstandard2.0) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Security.Cryptography.OpenSsl (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) + System.Collections (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.IO (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Resources.ResourceManager (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Runtime (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Runtime.Extensions (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Runtime.Handles (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Runtime.InteropServices (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Runtime.Numerics (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Security.Cryptography.Algorithms (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Text.Encoding (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0) + System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net35) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net35) (>= netstandard1.4) (< netstandard1.6)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= net46) (< netstandard1.4)) (&& (< net35) (>= net461) (< netstandard1.6)) (&& (< net35) (>= net463)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -421,7 +435,7 @@ NUGET System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Threading (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (>= netstandard1.4) (< netstandard1.5)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard1.6)) (&& (< net45) (>= net46) (>= netstandard1.6) (< netstandard2.0)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.5) (>= uap10.0)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) runtime.native.System (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) runtime.native.System.Net.Http (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) @@ -447,38 +461,39 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< netstandard1.3)) - System.Text.Encoding (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Text.Encoding (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Text.Encoding.Extensions (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Text.Encoding.Extensions (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Text.RegularExpressions (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Text.RegularExpressions (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (>= netcoreapp1.1) (< portable-net45+win8+wp8+wpa81) System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) - System.Threading (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Threading (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.1) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.2) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.6) (< win8)) (&& (< net35) (>= netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= netstandard1.1) (< portable-net45+win8)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.1) (>= uap10.0) (< win8)) (&& (< netstandard1.1) (< win8) (>= wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Threading.Tasks (4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Threading.Tasks (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net35) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net35) (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (< portable-net45+win8+wpa81) (>= uap10.0)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - System.Threading.Tasks.Extensions (4.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) - System.Collections (>= 4.3) - restriction: && (>= netstandard1.0) (< netstandard2.0) (< xamarinmac) - System.Runtime (>= 4.3) - restriction: && (>= netstandard1.0) (< netstandard2.0) (< xamarinmac) - System.Threading.Tasks (>= 4.3) - restriction: && (>= netstandard1.0) (< netstandard2.0) (< xamarinmac) + System.Threading.Tasks.Extensions (4.5) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) + System.Collections (>= 4.3) - restriction: && (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81) + System.Runtime (>= 4.3) - restriction: && (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81) + System.Runtime.CompilerServices.Unsafe (>= 4.5) - restriction: || (>= net45) (&& (< netcoreapp2.1) (>= netstandard2.0)) (&& (>= netstandard1.0) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< win8)) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= wp8) + System.Threading.Tasks (>= 4.3) - restriction: && (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81) System.Threading.Timer (4.3) - restriction: || (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net451) (>= netstandard1.2) (< win81) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net451+win81+wpa81) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net451) (>= netstandard1.2) (< win81) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net451+win81+wpa81) System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net451) (>= netstandard1.2) (< win81) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net451+win81+wpa81) - System.Xml.ReaderWriter (4.3.1) - restriction: || (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) + System.Xml.ReaderWriter (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.2) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.4) (< portable-net45+win8+wp8+wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wp8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wp8+wpa81)) (&& (< portable-net45+win8+wp8+wpa81) (>= uap10.0)) System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) @@ -507,4 +522,4 @@ NUGET System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (< portable-net45+win8+wp8+wpa81) System.Xml.ReaderWriter (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (< portable-net45+win8+wp8+wpa81) - Zlib.Portable (1.11) - restriction: || (&& (< net40) (>= portable-net45+win8)) (&& (< net40) (>= portable-net45+win8+sl5) (< portable-net45+win8+wp8+wpa81)) (&& (< net40) (< portable-net45+win8+sl5) (>= portable-net45+win8+wp8+wpa81)) + Zlib.Portable (1.11) - restriction: || (&& (< net40) (>= portable-net45+win8)) (&& (< net40) (< portable-net45+win8) (>= portable-net45+win8+wp8+wpa81)) diff --git a/readme.md b/readme.md index 9a7c8922a62..bb6db16ed1f 100644 --- a/readme.md +++ b/readme.md @@ -1,14 +1,15 @@ Repository for both **NEST** and **Elasticsearch.Net**, the two official [elasticsearch](https://github.com/elastic/elasticsearch) .NET clients. -### Compatibility Matrix +## Compatibility Matrix - + - - - + + + + @@ -17,52 +18,84 @@ Repository for both **NEST** and **Elasticsearch.Net**, the two official [elasti + - - - - + + + + + - - - + + - - - + + + + + + + + + + + + + + + + + + + + + +
Elasticsearch.NET clientsClients SupportedBuild StatusMyget FeedNuget FeedWindows CILinux CINugetCI Feed
0.x:heavy_minus_sign: :heavy_minus_sign: :heavy_minus_sign::heavy_minus_sign:
1.x 1.x:white_check_mark: - - :x::heavy_minus_sign::heavy_minus_sign::heavy_minus_sign:
2.x 2.x :white_check_mark: + + :heavy_minus_sign:
5.x 5.x :white_check_mark:
6.x6.x:white_check_mark:
mastermaster:x::heavy_minus_sign:
+ +### [Full documentation at https://www.elastic.co/guide/en/elasticsearch/client/net-api/current](https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/index.html) -## Upgrading from 1.x to 2.x +## Upgrading + +Please consult the [current upgrading Elasticsearch guidelines](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html) to understand what you should consider when upgrading from an older version of Elasticsearch to a newer one. + +### Upgrading from 1.x to 2.x Take a look at the [blog post for details around the evolution of NEST 2.x](https://www.elastic.co/blog/ga-release-of-nest-2-0-our-dot-net-client-for-elasticsearch), in addition to the list of breaking changes for [NEST](https://github.com/elastic/elasticsearch-net/blob/master/docs/2.0-breaking-changes/nest-breaking-changes.md) and [Elasticsearch.Net](https://github.com/elastic/elasticsearch-net/blob/master/docs/2.0-breaking-changes/elasticsearch-net-breaking-changes.md). -#[NEST](https://github.com/elasticsearch/elasticsearch-net/tree/master/src/Nest#nest-) +### Upgrading from 2.x to 5.x + +Take a look at the [blog post for the release of NEST 5.x](https://www.elastic.co/blog/nest-5-0-released), in addition to the list of breaking changes for [NEST](https://github.com/elastic/elasticsearch-net/blob/master/docs/5.0-breaking-changes/nest-breaking-changes.md) and [Elasticsearch.Net](https://github.com/elastic/elasticsearch-net/blob/master/docs/5.0-breaking-changes/elasticsearch-net-breaking-changes.md). -NEST is the official high-level .NET client of [elasticsearch](https://github.com/elasticsearch/elasticsearch). It aims to be a solid, strongly typed client with a very concise API. +# [NEST](https://github.com/elasticsearch/elasticsearch-net/tree/master/src/Nest) + +NEST is the official high-level .NET client of [Elasticsearch](https://github.com/elasticsearch/elasticsearch). It aims to be a solid, strongly typed client with a very concise API. * High-level client that internally uses the low-level **Elasticsearch.Net** client -* Maps requests and responses to strongly typed objects with a fluent interface and object initializer syntax to build them +* Maps requests and responses to strongly typed objects with both fluent interface and object initializer syntaxes to build them * Comes with a very powerful query DSL that maps one-to-one with Elasticsearch -* Takes advantage of .NET features where they make sense (i.e., covariant `IEnumerable` result types, type and index inference) -* All calls have async variants +* Takes advantage of .NET features where they make sense (i.e., covariant `T` collection result types, type and index inference) +* All calls have async variants with support for cancellation ## Getting Started +For a comprehensive, walkthrough-styled tutorial, check out the [NuSearch example repository](https://github.com/elastic/elasticsearch-net-example). + ### Installing From the package manager console: @@ -178,9 +211,9 @@ var response = client.LowLevel.SearchPost("myindex","elasticsearchprojects", new }); ``` -#### [Read the full documentation here](https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/index.html) +#### [Full documentation at https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/nest.html](https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/nest.html) -#[Elasticsearch.Net](src/Elasticsearch.Net) +# [Elasticsearch.Net](src/Elasticsearch.Net) A low-level, dependency free, client that has no opinions how you build and represent your requests and responses. @@ -255,6 +288,8 @@ client.Index("myindex","mytype","1", myJson); This will execute the same request, but this time `myJson` will be serialized by the registered `ISerializer`. +#### [Full documentation at https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/elasticsearch-net.html](https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/elasticsearch-net.html) + ## Contributing [Pull requests](https://github.com/elastic/elasticsearch-net/pulls) and [issues](https://github.com/elastic/elasticsearch-net/issues) are very much welcomed and appreciated. If you'd like to report a bug or submit a feature/bug fix then please read our [contributing guide](contributing.md) first! @@ -268,7 +303,7 @@ Text within multi-line comments conforms to [asciidoc](http://asciidoc.org/), a ```sh cd /cygdrive/c/source/elastic-docs -./build_docs.pl --doc /cygdrive/c/source/elasticsearch-net-master/docs/index.asciidoc +./build_docs.pl --doc /cygdrive/c/source/elasticsearch-net-master/docs/index.asciidoc --chunk=1 --open ``` the result of running this for a successful build will be @@ -279,6 +314,8 @@ Done See: /cygdrive/c/source/elasticsearch-docs/html_docs/index.html ``` +and a small HTTP server will be spun up locally on port 8000 through which you can view the documentation. + [Pull Requests](https://github.com/elastic/elasticsearch-net/pulls) are most welcome for areas of documentation that need improving. ## Blog posts diff --git a/src/CodeGeneration/ApiGenerator/ApiGenerator.csproj b/src/CodeGeneration/ApiGenerator/ApiGenerator.csproj index 921cf4d260d..f37cc3fd72d 100644 --- a/src/CodeGeneration/ApiGenerator/ApiGenerator.csproj +++ b/src/CodeGeneration/ApiGenerator/ApiGenerator.csproj @@ -1,4 +1,5 @@ - + + Exe net46 diff --git a/src/CodeGeneration/DocGenerator/DocGenerator.csproj b/src/CodeGeneration/DocGenerator/DocGenerator.csproj index 9960e0c1c4d..c3d526c535b 100644 --- a/src/CodeGeneration/DocGenerator/DocGenerator.csproj +++ b/src/CodeGeneration/DocGenerator/DocGenerator.csproj @@ -1,4 +1,5 @@ - + + diff --git a/src/Elasticsearch.Net/Elasticsearch.Net.csproj b/src/Elasticsearch.Net/Elasticsearch.Net.csproj index 8235ba12909..cdea63b473d 100644 --- a/src/Elasticsearch.Net/Elasticsearch.Net.csproj +++ b/src/Elasticsearch.Net/Elasticsearch.Net.csproj @@ -1,8 +1,10 @@ - + + - net45;net46;netstandard1.3 - netstandard1.3 + netstandard1.3;net46 + netstandard1.3 + $(DefineConstants);FEATURE_HTTPWEBREQUEST diff --git a/src/Elasticsearch.sln b/src/Elasticsearch.sln index fec542660c8..9ac80e56eab 100644 --- a/src/Elasticsearch.sln +++ b/src/Elasticsearch.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26430.6 +VisualStudioVersion = 15.0.27130.2003 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nest", "Nest\Nest.csproj", "{072BA7DA-7B60-407D-8B6E-95E3186BE70C}" EndProject @@ -10,6 +10,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build", "_Build", "{432D55 ..\.editorconfig = ..\.editorconfig ..\.gitignore = ..\.gitignore ..\.travis.yml = ..\.travis.yml + ..\appveyor.yml = ..\appveyor.yml ..\build.bat = ..\build.bat ..\build.sh = ..\build.sh ..\build\Clients.Common.targets = ..\build\Clients.Common.targets @@ -18,6 +19,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build", "_Build", "{432D55 ..\global.json = ..\global.json ..\license.txt = ..\license.txt ..\build\NEST.nuspec = ..\build\NEST.nuspec + ..\NuGet.config = ..\NuGet.config ..\paket.bat = ..\paket.bat ..\paket.dependencies = ..\paket.dependencies ..\readme.md = ..\readme.md diff --git a/src/Nest/Nest.csproj b/src/Nest/Nest.csproj index db60b4cd8a3..3746b055030 100644 --- a/src/Nest/Nest.csproj +++ b/src/Nest/Nest.csproj @@ -1,8 +1,10 @@ - + + - net45;net46;netstandard1.3 - netstandard1.3 + netstandard1.3;net46 + netstandard1.3 + true diff --git a/src/Tests/Aggregations/AggregationVisitorTests.cs b/src/Tests/Aggregations/AggregationVisitorTests.cs index 90e734f74e5..35e88448768 100644 --- a/src/Tests/Aggregations/AggregationVisitorTests.cs +++ b/src/Tests/Aggregations/AggregationVisitorTests.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Bucket/AdjacencyMatrix/AdjacencyMatrixUsageTests.cs b/src/Tests/Aggregations/Bucket/AdjacencyMatrix/AdjacencyMatrixUsageTests.cs index 6c59d239222..fcefe1c4c56 100644 --- a/src/Tests/Aggregations/Bucket/AdjacencyMatrix/AdjacencyMatrixUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/AdjacencyMatrix/AdjacencyMatrixUsageTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Bucket/Filter/FilterAggregationUsageTests.cs b/src/Tests/Aggregations/Bucket/Filter/FilterAggregationUsageTests.cs index 15478e57bdd..9a20a82eed8 100644 --- a/src/Tests/Aggregations/Bucket/Filter/FilterAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/Filter/FilterAggregationUsageTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs b/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs index 7417cb9488e..4f184940e35 100644 --- a/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Bucket/Sampler/SamplerAggregationUsageTests.cs b/src/Tests/Aggregations/Bucket/Sampler/SamplerAggregationUsageTests.cs index b07c901a4f0..d51fd3190d6 100644 --- a/src/Tests/Aggregations/Bucket/Sampler/SamplerAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/Sampler/SamplerAggregationUsageTests.cs @@ -70,7 +70,7 @@ protected override void ExpectResponse(ISearchResponse response) var sigTags = sample.SignificantTerms("significant_names"); sigTags.Should().NotBeNull(); sigTags.DocCount.Should().BeGreaterThan(0); - if (TestClient.VersionUnderTestSatisfiedBy(">=5.5.0")) + if (TestingAgainst(">=5.5.0")) sigTags.BgCount.Should().BeGreaterThan(0); } } diff --git a/src/Tests/Aggregations/Bucket/Terms/TermsAggregationUsageTests.cs b/src/Tests/Aggregations/Bucket/Terms/TermsAggregationUsageTests.cs index d24cbe3919b..c6136327d0e 100644 --- a/src/Tests/Aggregations/Bucket/Terms/TermsAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/Terms/TermsAggregationUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageEwmaAggregationUsageTests.cs b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageEwmaAggregationUsageTests.cs index 1a29fa09a6f..9c93183498e 100644 --- a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageEwmaAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageEwmaAggregationUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltLinearAggregationUsageTests.cs b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltLinearAggregationUsageTests.cs index 120ca54cd2f..7293361cb22 100644 --- a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltLinearAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltLinearAggregationUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltWintersAggregationUsageTests.cs b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltWintersAggregationUsageTests.cs index 764ece50ea5..1c58d6cb768 100644 --- a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltWintersAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageHoltWintersAggregationUsageTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageLinearAggregationUsageTests.cs b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageLinearAggregationUsageTests.cs index e222c0c819a..bf449b685d1 100644 --- a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageLinearAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageLinearAggregationUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageSimpleAggregationUsageTests.cs b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageSimpleAggregationUsageTests.cs index 1196fdf48ad..ceeb2d9868f 100644 --- a/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageSimpleAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Pipeline/MovingAverage/MovingAverageSimpleAggregationUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Aggregations/ReservedAggregationNames.doc.cs b/src/Tests/Aggregations/ReservedAggregationNames.doc.cs index 9327a883056..b0519c62db8 100644 --- a/src/Tests/Aggregations/ReservedAggregationNames.doc.cs +++ b/src/Tests/Aggregations/ReservedAggregationNames.doc.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Aggregations.Bucket.Children; diff --git a/src/Tests/Analysis/AnalysisCrudTests.cs b/src/Tests/Analysis/AnalysisCrudTests.cs index b04d7d6cde8..e1a8c122c3e 100644 --- a/src/Tests/Analysis/AnalysisCrudTests.cs +++ b/src/Tests/Analysis/AnalysisCrudTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Analysis/Normalizers/AnalysisWithNormalizerCrudTests.cs b/src/Tests/Analysis/Normalizers/AnalysisWithNormalizerCrudTests.cs index 2459e6e7c9d..ce4e2234f43 100644 --- a/src/Tests/Analysis/Normalizers/AnalysisWithNormalizerCrudTests.cs +++ b/src/Tests/Analysis/Normalizers/AnalysisWithNormalizerCrudTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Analysis/Normalizers/NormalizerUsageTests.cs b/src/Tests/Analysis/Normalizers/NormalizerUsageTests.cs index cd09df00041..e5c3a06e09c 100644 --- a/src/Tests/Analysis/Normalizers/NormalizerUsageTests.cs +++ b/src/Tests/Analysis/Normalizers/NormalizerUsageTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/Cat/CatAliases/CatAliasesUrlTests.cs b/src/Tests/Cat/CatAliases/CatAliasesUrlTests.cs index afe786c91b7..e571b854351 100644 --- a/src/Tests/Cat/CatAliases/CatAliasesUrlTests.cs +++ b/src/Tests/Cat/CatAliases/CatAliasesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatAllocation/CatAllocationUrlTests.cs b/src/Tests/Cat/CatAllocation/CatAllocationUrlTests.cs index c026adf4a1f..33204096fe2 100644 --- a/src/Tests/Cat/CatAllocation/CatAllocationUrlTests.cs +++ b/src/Tests/Cat/CatAllocation/CatAllocationUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatCount/CatCountUrlTests.cs b/src/Tests/Cat/CatCount/CatCountUrlTests.cs index 6d0ba6868d9..3684e7d3045 100644 --- a/src/Tests/Cat/CatCount/CatCountUrlTests.cs +++ b/src/Tests/Cat/CatCount/CatCountUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatFielddata/CatFielddataUrlTests.cs b/src/Tests/Cat/CatFielddata/CatFielddataUrlTests.cs index 7714c5ce105..2cc2557489b 100644 --- a/src/Tests/Cat/CatFielddata/CatFielddataUrlTests.cs +++ b/src/Tests/Cat/CatFielddata/CatFielddataUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cat/CatHealth/CatHealthUrlTests.cs b/src/Tests/Cat/CatHealth/CatHealthUrlTests.cs index 203eb9fabfd..16fb98b4532 100644 --- a/src/Tests/Cat/CatHealth/CatHealthUrlTests.cs +++ b/src/Tests/Cat/CatHealth/CatHealthUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatHelp/CatHelpUrlTests.cs b/src/Tests/Cat/CatHelp/CatHelpUrlTests.cs index 16d39625e39..b2ffe2a44ff 100644 --- a/src/Tests/Cat/CatHelp/CatHelpUrlTests.cs +++ b/src/Tests/Cat/CatHelp/CatHelpUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatIndices/CatIndicesUrlTests.cs b/src/Tests/Cat/CatIndices/CatIndicesUrlTests.cs index 9554fd1be75..0b78a54f0ba 100644 --- a/src/Tests/Cat/CatIndices/CatIndicesUrlTests.cs +++ b/src/Tests/Cat/CatIndices/CatIndicesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cat/CatMaster/CatMasterUrlTests.cs b/src/Tests/Cat/CatMaster/CatMasterUrlTests.cs index 7e90fcc271e..92892392916 100644 --- a/src/Tests/Cat/CatMaster/CatMasterUrlTests.cs +++ b/src/Tests/Cat/CatMaster/CatMasterUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatNodeAttributes/CatAliasesUrlTests.cs b/src/Tests/Cat/CatNodeAttributes/CatAliasesUrlTests.cs index d9b8a6ef79f..d17789ce8c4 100644 --- a/src/Tests/Cat/CatNodeAttributes/CatAliasesUrlTests.cs +++ b/src/Tests/Cat/CatNodeAttributes/CatAliasesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatNodes/CatNodesUrlTests.cs b/src/Tests/Cat/CatNodes/CatNodesUrlTests.cs index b9f45dcc8b6..bda36dce89e 100644 --- a/src/Tests/Cat/CatNodes/CatNodesUrlTests.cs +++ b/src/Tests/Cat/CatNodes/CatNodesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatPendingTasks/CatPendingTasksUrlTests.cs b/src/Tests/Cat/CatPendingTasks/CatPendingTasksUrlTests.cs index 9d50c435f43..44272c44c63 100644 --- a/src/Tests/Cat/CatPendingTasks/CatPendingTasksUrlTests.cs +++ b/src/Tests/Cat/CatPendingTasks/CatPendingTasksUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatPlugins/CatPluginsUrlTests.cs b/src/Tests/Cat/CatPlugins/CatPluginsUrlTests.cs index 325e437f8b9..93c3715037d 100644 --- a/src/Tests/Cat/CatPlugins/CatPluginsUrlTests.cs +++ b/src/Tests/Cat/CatPlugins/CatPluginsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatRecovery/CatRecoveryUrlTests.cs b/src/Tests/Cat/CatRecovery/CatRecoveryUrlTests.cs index 2214fdc7a64..9a61ca11a0e 100644 --- a/src/Tests/Cat/CatRecovery/CatRecoveryUrlTests.cs +++ b/src/Tests/Cat/CatRecovery/CatRecoveryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cat/CatRepositories/CatRepositoriesApiTests.cs b/src/Tests/Cat/CatRepositories/CatRepositoriesApiTests.cs index 1a0936a9669..2884a336374 100644 --- a/src/Tests/Cat/CatRepositories/CatRepositoriesApiTests.cs +++ b/src/Tests/Cat/CatRepositories/CatRepositoriesApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -21,7 +22,7 @@ public CatRepositoriesApiTests(IntrusiveOperationCluster cluster, EndpointUsage protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { if (!TestClient.Configuration.RunIntegrationTests) return; - var repositoryLocation = Path.Combine(this.Cluster.Node.FileSystem.RepositoryPath, RandomString()); + var repositoryLocation = Path.Combine(this.Cluster.FileSystem.RepositoryPath, RandomString()); var create = this.Client.CreateRepository(RepositoryName, cr => cr .FileSystem(fs => fs diff --git a/src/Tests/Cat/CatRepositories/CatRepositoriesUrlTests.cs b/src/Tests/Cat/CatRepositories/CatRepositoriesUrlTests.cs index 5cf2ffc171b..93beaae602a 100644 --- a/src/Tests/Cat/CatRepositories/CatRepositoriesUrlTests.cs +++ b/src/Tests/Cat/CatRepositories/CatRepositoriesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatSegments/CatSegmentsUrlTests.cs b/src/Tests/Cat/CatSegments/CatSegmentsUrlTests.cs index 33c208e894a..32802a7e9c0 100644 --- a/src/Tests/Cat/CatSegments/CatSegmentsUrlTests.cs +++ b/src/Tests/Cat/CatSegments/CatSegmentsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cat/CatShards/CatShardsUrlTests.cs b/src/Tests/Cat/CatShards/CatShardsUrlTests.cs index fa51fa08d0d..e2ed23492e2 100644 --- a/src/Tests/Cat/CatShards/CatShardsUrlTests.cs +++ b/src/Tests/Cat/CatShards/CatShardsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cat/CatSnapshots/CatSnapshotsApiTests.cs b/src/Tests/Cat/CatSnapshots/CatSnapshotsApiTests.cs index 34d4c36c9c5..19d6d3f3df5 100644 --- a/src/Tests/Cat/CatSnapshots/CatSnapshotsApiTests.cs +++ b/src/Tests/Cat/CatSnapshots/CatSnapshotsApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -23,7 +24,7 @@ public CatSnapshotsApiTests(IntrusiveOperationCluster cluster, EndpointUsage usa protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { if (!TestClient.Configuration.RunIntegrationTests) return; - var repositoryLocation = Path.Combine(this.Cluster.Node.FileSystem.RepositoryPath, RandomString()); + var repositoryLocation = Path.Combine(this.Cluster.FileSystem.RepositoryPath, RandomString()); var create = this.Client.CreateRepository(RepositoryName, cr => cr .FileSystem(fs => fs diff --git a/src/Tests/Cat/CatSnapshots/CatSnapshotsUrlTests.cs b/src/Tests/Cat/CatSnapshots/CatSnapshotsUrlTests.cs index 76942e47581..7ea46c4a7a5 100644 --- a/src/Tests/Cat/CatSnapshots/CatSnapshotsUrlTests.cs +++ b/src/Tests/Cat/CatSnapshots/CatSnapshotsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatTasks/CatTasksUrlTests.cs b/src/Tests/Cat/CatTasks/CatTasksUrlTests.cs index 4fe23843c06..bdcf05c9a2f 100644 --- a/src/Tests/Cat/CatTasks/CatTasksUrlTests.cs +++ b/src/Tests/Cat/CatTasks/CatTasksUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cat/CatTemplates/CatTemplatesApiTests.cs b/src/Tests/Cat/CatTemplates/CatTemplatesApiTests.cs index f1969bd42c7..843ff235191 100644 --- a/src/Tests/Cat/CatTemplates/CatTemplatesApiTests.cs +++ b/src/Tests/Cat/CatTemplates/CatTemplatesApiTests.cs @@ -1,4 +1,5 @@ -using Elasticsearch.Net; +using Elastic.Xunit.XunitPlumbing; +using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Cat/CatTemplates/CatTemplatesUrlTests.cs b/src/Tests/Cat/CatTemplates/CatTemplatesUrlTests.cs index efeb0651b52..df65f8529cc 100644 --- a/src/Tests/Cat/CatTemplates/CatTemplatesUrlTests.cs +++ b/src/Tests/Cat/CatTemplates/CatTemplatesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cat/CatThreadPool/CatThreadPoolUrlTests.cs b/src/Tests/Cat/CatThreadPool/CatThreadPoolUrlTests.cs index e3050e79112..27da16cf4e7 100644 --- a/src/Tests/Cat/CatThreadPool/CatThreadPoolUrlTests.cs +++ b/src/Tests/Cat/CatThreadPool/CatThreadPoolUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/ClientConcepts/Certificates/SslAndKpiXPackCluster.cs b/src/Tests/ClientConcepts/Certificates/SslAndKpiXPackCluster.cs index 6e2186d645f..60c7bb6d4e0 100644 --- a/src/Tests/ClientConcepts/Certificates/SslAndKpiXPackCluster.cs +++ b/src/Tests/ClientConcepts/Certificates/SslAndKpiXPackCluster.cs @@ -1,99 +1,30 @@ -using System.IO; -using System.IO.Compression; -using System.Linq; +using Elastic.Managed.Ephemeral.Plugins; using Nest; using Tests.Framework; using Tests.Framework.ManagedElasticsearch.Clusters; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.Plugins; -using Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks; namespace Tests.ClientConcepts.Certificates { - [IntegrationOnly, RequiresPlugin(ElasticsearchPlugin.XPack)] - public abstract class SslAndKpiXPackCluster : XPackCluster + public class SslAndKpiClusterConfiguration : XPackClusterConfiguration { - public override bool EnableSsl { get; } = true; - /// - /// Skipping bootstrap validation because they call out to elasticsearch and would force - /// The ServerCertificateValidationCallback to return true. Since i - /// - public override bool SkipValidation { get; } = true; - - protected override InstallationTaskBase[] AdditionalInstallationTasks => new [] { new EnableSslAndKpiOnCluster() }; - - protected override string[] AdditionalServerSettings => new [] + public SslAndKpiClusterConfiguration() { - $"xpack.ssl.key={this.Node.FileSystem.NodePrivateKey}", - $"xpack.ssl.certificate={this.Node.FileSystem.NodeCertificate}", - $"xpack.ssl.certificate_authorities={this.Node.FileSystem.CaCertificate}", - "xpack.security.transport.ssl.enabled=true", - "xpack.security.http.ssl.enabled=true", - }; - - public override ConnectionSettings ClusterConnectionSettings(ConnectionSettings s) => - this.ConnectionSettings(Authenticate(s)); - - public virtual ConnectionSettings Authenticate(ConnectionSettings s) => - s.BasicAuthentication("es_admin", "es_admin"); - - protected abstract ConnectionSettings ConnectionSettings(ConnectionSettings s); + // Skipping bootstrap validation because they call out to elasticsearch and would force + // The ServerCertificateValidationCallback to return true. Since its cached this would mess with later assertations. + this.SkipBuiltInAfterStartTasks = true; + } } - public class EnableSslAndKpiOnCluster : InstallationTaskBase + [IntegrationOnly] + public abstract class SslAndKpiXPackCluster : XPackCluster { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - //due to a bug in certgen this file needs to live in two places - var silentModeConfigFile = Path.Combine(fileSystem.ElasticsearchHome, "certgen") + ".yml"; - var silentModeConfigFileDuplicate = Path.Combine(fileSystem.ConfigPath, "x-pack", "certgen") + ".yml"; - foreach(var file in new []{silentModeConfigFile, silentModeConfigFileDuplicate}) - if (!File.Exists(file)) File.WriteAllLines(file, new [] - { - "instances:", - $" - name : \"{fileSystem.CertificateNodeName}\"", - $" - name : \"{fileSystem.ClientCertificateName}\"", - $" filename : \"{fileSystem.ClientCertificateFilename}\"", - }); + public SslAndKpiXPackCluster() : this(new SslAndKpiClusterConfiguration()) { } - this.GenerateCertificates(fileSystem, silentModeConfigFile); - this.GenerateUnusedCertificates(fileSystem, silentModeConfigFile); - this.AddClientCertificateUser(fileSystem); - } - - private void AddClientCertificateUser(NodeFileSystem fileSystem) - { - var file = Path.Combine(fileSystem.ConfigPath, "x-pack", "role_mapping") + ".yml"; - var name = fileSystem.ClientCertificateName; - if (!File.Exists(file) || !File.ReadAllLines(file).Any(f=>f.Contains(name))) File.WriteAllLines(file, new [] - { - "admin:", - $" - \"{name}\"" - }); - } - private void GenerateCertificates(NodeFileSystem fileSystem, string silentModeConfigFile) - { - var name = fileSystem.CertificateFolderName; - if (!File.Exists(fileSystem.CaCertificate)) - this.ExecuteBinary(fileSystem.CertGenBinary, "generating ssl certificates for this session", - "-in", silentModeConfigFile, "-out", $"{name}.zip"); + public SslAndKpiXPackCluster(SslAndKpiClusterConfiguration configuration) : base(configuration) { } - if (Directory.Exists(fileSystem.CertificatesPath)) return; - Directory.CreateDirectory(fileSystem.CertificatesPath); - var zipLocation = Path.Combine(fileSystem.ConfigPath, "x-pack", name) + ".zip"; - ZipFile.ExtractToDirectory(zipLocation, fileSystem.CertificatesPath); - } - private void GenerateUnusedCertificates(NodeFileSystem fileSystem, string silentModeConfigFile) + protected override void SeedCluster() { - var name = fileSystem.UnusedCertificateFolderName; - if (!File.Exists(fileSystem.UnusedCaCertificate)) - this.ExecuteBinary(fileSystem.CertGenBinary, "generating ssl certificates for this session", - "-in", silentModeConfigFile, "-out", $"{name}.zip"); - - if (Directory.Exists(fileSystem.UnusedCertificatesPath)) return; - Directory.CreateDirectory(fileSystem.UnusedCertificatesPath); - var zipLocation = Path.Combine(fileSystem.ConfigPath, "x-pack", name) + ".zip"; - ZipFile.ExtractToDirectory(zipLocation, fileSystem.UnusedCertificatesPath); } } } + diff --git a/src/Tests/ClientConcepts/Certificates/WorkingWithCertificates.doc.cs b/src/Tests/ClientConcepts/Certificates/WorkingWithCertificates.doc.cs index 79eec0b53fd..0f4601a8d55 100644 --- a/src/Tests/ClientConcepts/Certificates/WorkingWithCertificates.doc.cs +++ b/src/Tests/ClientConcepts/Certificates/WorkingWithCertificates.doc.cs @@ -4,6 +4,7 @@ using System.Net.Http; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -71,10 +72,10 @@ public DenyAllSslCertificatesApiTests(DenyAllCertificatesCluster cluster, Endpoi [I] public async Task UsedHttps() => await AssertOnAllResponses(r => r.ApiCall.Uri.Scheme.Should().Be("https")); - protected override void AssertException(WebException e) => + protected override void AssertWebException(WebException e) => e.Message.Should().Contain("Could not establish trust relationship for the SSL/TLS secure channel."); - protected override void AssertException(HttpRequestException e) + protected override void AssertHttpRequestException(HttpRequestException e) { } } @@ -117,9 +118,11 @@ public AllowAllSslCertificatesApiTests(AllowAllCertificatesCluster cluster, Endp */ public class CertgenCaCluster : SslAndKpiXPackCluster { + public CertgenCaCluster() : this(new SslAndKpiClusterConfiguration()) { } + public CertgenCaCluster(SslAndKpiClusterConfiguration configuration) : base(configuration) { } protected override ConnectionSettings ConnectionSettings(ConnectionSettings s) => s .ServerCertificateValidationCallback( - CertificateValidations.AuthorityIsRoot(new X509Certificate(this.Node.FileSystem.CaCertificate)) + CertificateValidations.AuthorityIsRoot(new X509Certificate(this.ClusterConfiguration.FileSystem.CaCertificate)) ); } @@ -142,7 +145,7 @@ public class BadCertgenCaCluster : SslAndKpiXPackCluster { protected override ConnectionSettings ConnectionSettings(ConnectionSettings s) => s .ServerCertificateValidationCallback( - CertificateValidations.AuthorityPartOfChain(new X509Certificate(this.Node.FileSystem.UnusedCaCertificate)) + CertificateValidations.AuthorityPartOfChain(new X509Certificate(this.ClusterConfiguration.FileSystem.UnusedCaCertificate)) ); } @@ -157,11 +160,11 @@ public BadCertgenCaApiTests(BadCertgenCaCluster cluster, EndpointUsage usage) : [I] public async Task UsedHttps() => await AssertOnAllResponses(r => r.ApiCall.Uri.Scheme.Should().Be("https")); - protected override void AssertException(WebException e) => + protected override void AssertWebException(WebException e) => e.Message.Should().Contain("Could not establish trust relationship for the SSL/TLS secure channel."); // <1> Exception is thrown, indicating that a secure connection could not be established // hide - protected override void AssertException(HttpRequestException e) + protected override void AssertHttpRequestException(HttpRequestException e) { } } @@ -192,20 +195,22 @@ protected override void AssertException(HttpRequestException e) */ public class PkiCluster : CertgenCaCluster { - public override ConnectionSettings Authenticate(ConnectionSettings s) => s // <1> Set the client certificate on `ConnectionSettings` + public PkiCluster() : base(new SslAndKpiClusterConfiguration + { + DefaultNodeSettings = + { + {"xpack.security.authc.realms.file1.enabled", "false"}, + {"xpack.security.http.ssl.client_authentication", "required"} + } + }) { } + + protected override ConnectionSettings Authenticate(ConnectionSettings s) => s // <1> Set the client certificate on `ConnectionSettings` .ClientCertificate( ClientCertificate.LoadWithPrivateKey( - this.Node.FileSystem.ClientCertificate, // <2> The path to the `.cer` file - this.Node.FileSystem.ClientPrivateKey, // <3> The path to the `.key` file + this.ClusterConfiguration.FileSystem.ClientCertificate, // <2> The path to the `.cer` file + this.ClusterConfiguration.FileSystem.ClientPrivateKey, // <3> The path to the `.key` file "") // <4> The password for the private key ); - - //hide - protected override string[] AdditionalServerSettings => base.AdditionalServerSettings.Concat(new[] - { - "xpack.security.authc.realms.file1.enabled=false", - "xpack.security.http.ssl.client_authentication=required" - }).ToArray(); } //hide @@ -243,7 +248,7 @@ public BadCustomCertificatePerRequestWinsApiTests(BadPkiCluster cluster, Endpoin // a bad certificate // hide - private string Certificate => this.Cluster.Node.FileSystem.ClientCertificate; + private string Certificate => this.Cluster.ClusterConfiguration.FileSystem.ClientCertificate; /** * ==== Object Initializer syntax example */ @@ -263,7 +268,7 @@ public BadCustomCertificatePerRequestWinsApiTests(BadPkiCluster cluster, Endpoin ); // hide - protected override void AssertException(WebException e) + protected override void AssertWebException(WebException e) { if (e.InnerException != null) e.InnerException.Message.Should() @@ -272,7 +277,7 @@ protected override void AssertException(WebException e) e.Message.Should().Contain("Could not create SSL/TLS secure channel"); } - protected override void AssertException(HttpRequestException e) + protected override void AssertHttpRequestException(HttpRequestException e) { } } diff --git a/src/Tests/ClientConcepts/Connection/HttpConnectionTests.cs b/src/Tests/ClientConcepts/Connection/HttpConnectionTests.cs index 8d0a54a371f..ca8d7f5462c 100644 --- a/src/Tests/ClientConcepts/Connection/HttpConnectionTests.cs +++ b/src/Tests/ClientConcepts/Connection/HttpConnectionTests.cs @@ -5,6 +5,7 @@ using System.Net.Http; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/Connection/ModifyingDefaultConnection.doc.cs b/src/Tests/ClientConcepts/Connection/ModifyingDefaultConnection.doc.cs index 453d549bf43..aee16bbfa54 100644 --- a/src/Tests/ClientConcepts/Connection/ModifyingDefaultConnection.doc.cs +++ b/src/Tests/ClientConcepts/Connection/ModifyingDefaultConnection.doc.cs @@ -3,6 +3,7 @@ using System.Net; using System.Security.Cryptography.X509Certificates; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/ConnectionPooling.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/ConnectionPooling.doc.cs index 53d67e766dd..c8ad7f0720c 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/ConnectionPooling.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/ConnectionPooling.doc.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/DateTimeProviders.Doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/DateTimeProviders.Doc.cs index 60054a8e1e5..e6c630eb8ca 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/DateTimeProviders.Doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/DateTimeProviders.Doc.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/KeepingTrackOfNodes.Doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/KeepingTrackOfNodes.Doc.cs index 200fb87529b..e33c1442c39 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/KeepingTrackOfNodes.Doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/KeepingTrackOfNodes.Doc.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/RequestPipelines.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/RequestPipelines.doc.cs index f6819107c2f..c395c513a69 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/RequestPipelines.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/BuildingBlocks/RequestPipelines.doc.cs @@ -4,6 +4,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Dispose/ResponseBuilderDisposeTests.cs b/src/Tests/ClientConcepts/ConnectionPooling/Dispose/ResponseBuilderDisposeTests.cs index 0b01f4bf38d..80dbede7b46 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Dispose/ResponseBuilderDisposeTests.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Dispose/ResponseBuilderDisposeTests.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnexpectedExceptions.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnexpectedExceptions.doc.cs index 9d2436fa7c7..45c5651a803 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnexpectedExceptions.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnexpectedExceptions.doc.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Net; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnrecoverableExceptions.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnrecoverableExceptions.doc.cs index c1ae5a9061a..59ed973b528 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnrecoverableExceptions.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Exceptions/UnrecoverableExceptions.doc.cs @@ -3,6 +3,7 @@ using System.Net; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Failover/FallingOver.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Failover/FallingOver.doc.cs index 814ebf5fb36..a99b45ea202 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Failover/FallingOver.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Failover/FallingOver.doc.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using static Elasticsearch.Net.AuditEvent; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/MaxRetries/RespectsMaxRetry.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/MaxRetries/RespectsMaxRetry.doc.cs index 692041b7613..9a73248d571 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/MaxRetries/RespectsMaxRetry.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/MaxRetries/RespectsMaxRetry.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework; using static Elasticsearch.Net.AuditEvent; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Pinging/FirstUsage.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Pinging/FirstUsage.doc.cs index d440ea2fb0f..2555f979756 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Pinging/FirstUsage.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Pinging/FirstUsage.doc.cs @@ -1,6 +1,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Pinging/Revival.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Pinging/Revival.doc.cs index 8d7e1863c5e..d601960dd8d 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Pinging/Revival.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Pinging/Revival.doc.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/DisableSniffPingPerRequest.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/DisableSniffPingPerRequest.doc.cs index 19bd236741a..46777cfc504 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/DisableSniffPingPerRequest.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/DisableSniffPingPerRequest.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework; using static Elasticsearch.Net.AuditEvent; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RequestTimeoutsOverrides.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RequestTimeoutsOverrides.doc.cs index dcfcb432cf0..be4e2b9e105 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RequestTimeoutsOverrides.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RequestTimeoutsOverrides.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using static Elasticsearch.Net.AuditEvent; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsAllowedStatusCode.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsAllowedStatusCode.doc.cs index dca1ab91fb4..fe0796fdb72 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsAllowedStatusCode.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsAllowedStatusCode.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework; using static Elasticsearch.Net.AuditEvent; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsForceNode.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsForceNode.doc.cs index 301c7ca5244..b8bfc5cd1d9 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsForceNode.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsForceNode.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework; using static Elasticsearch.Net.AuditEvent; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsMaxRetryOverrides.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsMaxRetryOverrides.doc.cs index cd30cf10394..2eb530db368 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsMaxRetryOverrides.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RequestOverrides/RespectsMaxRetryOverrides.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework; using static Elasticsearch.Net.AuditEvent; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/RoundRobin.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/RoundRobin.doc.cs index bf621744d9f..75a7a2af8c4 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/RoundRobin.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/RoundRobin.doc.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/SkipDeadNodes.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/SkipDeadNodes.doc.cs index eba87d05840..eb9c8590f66 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/SkipDeadNodes.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/SkipDeadNodes.doc.cs @@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/VolatileUpdates.cs b/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/VolatileUpdates.cs index 6c51fba2131..dc5b829f310 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/VolatileUpdates.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/RoundRobin/VolatileUpdates.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/AddressParsing.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/AddressParsing.doc.cs index 507c8d2a727..58910e10640 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/AddressParsing.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/AddressParsing.doc.cs @@ -1,4 +1,5 @@ -using Elasticsearch.Net; +using Elastic.Xunit.XunitPlumbing; +using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnConnectionFailure.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnConnectionFailure.doc.cs index a3da2cdfc8d..fdfcae38e8c 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnConnectionFailure.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnConnectionFailure.doc.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStaleClusterState.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStaleClusterState.doc.cs index 04f5fe6a08e..e8f374c00d8 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStaleClusterState.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStaleClusterState.doc.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStartup.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStartup.doc.cs index 4c496bf99f5..c4721f87bc6 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStartup.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/OnStartup.doc.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework; using static Tests.Framework.TimesHelper; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/RoleDetection.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/RoleDetection.doc.cs index 0fd94ecd17d..f1a0beda036 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/RoleDetection.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sniffing/RoleDetection.doc.cs @@ -4,17 +4,15 @@ using System.Linq; using System.Threading.Tasks; using System.Threading; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework; -using Tests.Framework.Integration; -using Tests.Framework.Versions; +using Tests.Framework.ManagedElasticsearch.Clusters; using Xunit; using static Tests.Framework.TimesHelper; using static Elasticsearch.Net.AuditEvent; -using Tests.Framework.ManagedElasticsearch; -using Tests.Framework.ManagedElasticsearch.Clusters; namespace Tests.ClientConcepts.ConnectionPooling.Sniffing { @@ -349,22 +347,17 @@ public async Task DetectsFqdn() } // hide - public class SniffRoleDetectionCluster : ClusterBase + public class SniffRoleDetectionCluster : ClientTestClusterBase { - protected override string[] AdditionalServerSettings + public SniffRoleDetectionCluster() : base(new ClientTestClusterConfiguration { - get + DefaultNodeSettings = { - var es = this.Node.Version > ElasticsearchVersion.GetOrAdd("5.0.0-alpha2") ? "" : "es."; - - return new[] - { - $"{es}node.data=false", - $"{es}node.master=true", - $"{es}node.attr.rack_id=rack_one" - }; + {"node.data", "false"}, + {"node.master", "true"}, + {"node.attr.rack_id", "rack_one"} } - } + }) { } } //hide @@ -409,7 +402,7 @@ private async Task SniffAndReturnNodeAsync() private RequestPipeline CreatePipeline() { - var uri = TestClient.CreateUri(this._cluster.Node.Port); + var uri = TestClient.CreateUri(this._cluster.Nodes.First().Port ?? 9200); this._settings = new ConnectionSettings(new SniffingConnectionPool(new[] { uri })); var pipeline = new RequestPipeline(this._settings, DateTimeProvider.Default, new MemoryStreamFactory(), new SearchRequestParameters()); diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sticky/SkipDeadNodes.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sticky/SkipDeadNodes.doc.cs index a3cb85a1e71..4099969557c 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sticky/SkipDeadNodes.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sticky/SkipDeadNodes.doc.cs @@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sticky/Sticky.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sticky/Sticky.doc.cs index 1584536870a..a628742091b 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sticky/Sticky.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sticky/Sticky.doc.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/ConnectionPooling/Sticky/StickySniffingConnectionPool.doc.cs b/src/Tests/ClientConcepts/ConnectionPooling/Sticky/StickySniffingConnectionPool.doc.cs index 6915f352328..d0dfaa11538 100644 --- a/src/Tests/ClientConcepts/ConnectionPooling/Sticky/StickySniffingConnectionPool.doc.cs +++ b/src/Tests/ClientConcepts/ConnectionPooling/Sticky/StickySniffingConnectionPool.doc.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/Exceptions/ExceptionTests.cs b/src/Tests/ClientConcepts/Exceptions/ExceptionTests.cs index ba7272ec0ce..79cd17f5ab2 100644 --- a/src/Tests/ClientConcepts/Exceptions/ExceptionTests.cs +++ b/src/Tests/ClientConcepts/Exceptions/ExceptionTests.cs @@ -2,6 +2,8 @@ using FluentAssertions; using Nest; using System; +using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; @@ -16,7 +18,7 @@ public class ExceptionTests : IClusterFixture public ExceptionTests(WritableCluster cluster) { - _port = cluster.Node.Port; + _port = cluster.Nodes.First().Port ?? 9200; } //[I] diff --git a/src/Tests/ClientConcepts/HighLevel/Analysis/TestingAnalyzers.doc.cs b/src/Tests/ClientConcepts/HighLevel/Analysis/TestingAnalyzers.doc.cs index 955ae608ff5..31ff482867d 100644 --- a/src/Tests/ClientConcepts/HighLevel/Analysis/TestingAnalyzers.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Analysis/TestingAnalyzers.doc.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/HighLevel/Analysis/WritingAnalyzers.doc.cs b/src/Tests/ClientConcepts/HighLevel/Analysis/WritingAnalyzers.doc.cs index cf92971f17a..79abd5cb5d8 100644 --- a/src/Tests/ClientConcepts/HighLevel/Analysis/WritingAnalyzers.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Analysis/WritingAnalyzers.doc.cs @@ -1,5 +1,6 @@ using System; using System.Text; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Newtonsoft.Json.Linq; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/HighLevel/Caching/FieldResolverCacheTests.cs b/src/Tests/ClientConcepts/HighLevel/Caching/FieldResolverCacheTests.cs index 7f956084e72..9d688dcfe05 100644 --- a/src/Tests/ClientConcepts/HighLevel/Caching/FieldResolverCacheTests.cs +++ b/src/Tests/ClientConcepts/HighLevel/Caching/FieldResolverCacheTests.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using Tests.Framework.MockData; using Xunit.Abstractions; diff --git a/src/Tests/ClientConcepts/HighLevel/CovariantHits/CovariantSearchResults.doc.cs b/src/Tests/ClientConcepts/HighLevel/CovariantHits/CovariantSearchResults.doc.cs index a378aca62d1..67114a6f9eb 100644 --- a/src/Tests/ClientConcepts/HighLevel/CovariantHits/CovariantSearchResults.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/CovariantHits/CovariantSearchResults.doc.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/DocumentPaths.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/DocumentPaths.doc.cs index 7fdaf87be4e..f8eb8fe2351 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/DocumentPaths.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/DocumentPaths.doc.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; using Tests.Framework.MockData; using static Tests.Framework.RoundTripper; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/FeaturesInference.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/FeaturesInference.doc.cs index 218bf292563..f0aa49e1c33 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/FeaturesInference.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/FeaturesInference.doc.cs @@ -1,4 +1,5 @@ -using Elasticsearch.Net; +using Elastic.Xunit.XunitPlumbing; +using Elasticsearch.Net; using Nest; using Tests.Framework; using static Nest.Indices; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/FieldInference.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/FieldInference.doc.cs index 79e25a6b2ff..5cc8ada76f6 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/FieldInference.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/FieldInference.doc.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Linq.Expressions; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/IdsInference.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/IdsInference.doc.cs index edb56269e0b..d17fd8f59b4 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/IdsInference.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/IdsInference.doc.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.RoundTripper; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/IndexNameInference.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/IndexNameInference.doc.cs index 7ead88ecb6c..74fa7b55fa3 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/IndexNameInference.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/IndexNameInference.doc.cs @@ -1,6 +1,7 @@ using FluentAssertions; using Nest; using System; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using Tests.Framework.MockData; using Xunit; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/IndicesPaths.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/IndicesPaths.doc.cs index 419b6758e5b..fcca0995ef3 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/IndicesPaths.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/IndicesPaths.doc.cs @@ -1,4 +1,5 @@ -using Elasticsearch.Net; +using Elastic.Xunit.XunitPlumbing; +using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/HighLevel/Inference/PropertyInference.doc.cs b/src/Tests/ClientConcepts/HighLevel/Inference/PropertyInference.doc.cs index 03a430ce851..d58c1080e85 100644 --- a/src/Tests/ClientConcepts/HighLevel/Inference/PropertyInference.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Inference/PropertyInference.doc.cs @@ -1,5 +1,6 @@ using System; using System.Linq.Expressions; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/ClientConcepts/HighLevel/Mapping/AttributeMapping.doc.cs b/src/Tests/ClientConcepts/HighLevel/Mapping/AttributeMapping.doc.cs index c66575702e5..33edd777831 100644 --- a/src/Tests/ClientConcepts/HighLevel/Mapping/AttributeMapping.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Mapping/AttributeMapping.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Nest; using Newtonsoft.Json; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/HighLevel/Mapping/AutoMap.doc.cs b/src/Tests/ClientConcepts/HighLevel/Mapping/AutoMap.doc.cs index 0200f83d0c1..5d72c2164cf 100644 --- a/src/Tests/ClientConcepts/HighLevel/Mapping/AutoMap.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Mapping/AutoMap.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Newtonsoft.Json; diff --git a/src/Tests/ClientConcepts/HighLevel/Mapping/FluentMapping.doc.cs b/src/Tests/ClientConcepts/HighLevel/Mapping/FluentMapping.doc.cs index 17ff37dadc7..6c35af885e7 100644 --- a/src/Tests/ClientConcepts/HighLevel/Mapping/FluentMapping.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Mapping/FluentMapping.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Nest; using Newtonsoft.Json; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/HighLevel/Mapping/IgnoringProperties.doc.cs b/src/Tests/ClientConcepts/HighLevel/Mapping/IgnoringProperties.doc.cs index 0b0a6b1d5bd..a6bc80c3fe5 100644 --- a/src/Tests/ClientConcepts/HighLevel/Mapping/IgnoringProperties.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Mapping/IgnoringProperties.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Newtonsoft.Json; diff --git a/src/Tests/ClientConcepts/HighLevel/Mapping/MultiFields.doc.cs b/src/Tests/ClientConcepts/HighLevel/Mapping/MultiFields.doc.cs index 8358489841a..bd2a6aa506d 100644 --- a/src/Tests/ClientConcepts/HighLevel/Mapping/MultiFields.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Mapping/MultiFields.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Newtonsoft.Json; diff --git a/src/Tests/ClientConcepts/HighLevel/Mapping/VisitorPatternMapping.doc.cs b/src/Tests/ClientConcepts/HighLevel/Mapping/VisitorPatternMapping.doc.cs index aafb1331d96..4df91c622f6 100644 --- a/src/Tests/ClientConcepts/HighLevel/Mapping/VisitorPatternMapping.doc.cs +++ b/src/Tests/ClientConcepts/HighLevel/Mapping/VisitorPatternMapping.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Reflection; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Nest; using Newtonsoft.Json; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/LowLevel/DirectStreaming.cs b/src/Tests/ClientConcepts/LowLevel/DirectStreaming.cs index 5a8448a4c71..3d7beb81ae3 100644 --- a/src/Tests/ClientConcepts/LowLevel/DirectStreaming.cs +++ b/src/Tests/ClientConcepts/LowLevel/DirectStreaming.cs @@ -1,6 +1,7 @@ using FluentAssertions; using Nest; using System; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/ClientConcepts/LowLevel/GettingStarted.doc.cs b/src/Tests/ClientConcepts/LowLevel/GettingStarted.doc.cs index 97f1b012a0d..4574fda88e0 100644 --- a/src/Tests/ClientConcepts/LowLevel/GettingStarted.doc.cs +++ b/src/Tests/ClientConcepts/LowLevel/GettingStarted.doc.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Tests.Framework.ManagedElasticsearch.Clusters; using Xunit; diff --git a/src/Tests/ClientConcepts/LowLevel/Lifetimes.doc.cs b/src/Tests/ClientConcepts/LowLevel/Lifetimes.doc.cs index 9d5b08f2aa4..c49c760b7f8 100644 --- a/src/Tests/ClientConcepts/LowLevel/Lifetimes.doc.cs +++ b/src/Tests/ClientConcepts/LowLevel/Lifetimes.doc.cs @@ -3,6 +3,7 @@ using System.Collections.Specialized; using System.Net; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/LowLevel/PostData.doc.cs b/src/Tests/ClientConcepts/LowLevel/PostData.doc.cs index 60ada565809..6a073dac930 100644 --- a/src/Tests/ClientConcepts/LowLevel/PostData.doc.cs +++ b/src/Tests/ClientConcepts/LowLevel/PostData.doc.cs @@ -9,6 +9,7 @@ using Nest; using Tests.Framework; using System.Threading; +using Elastic.Xunit.XunitPlumbing; namespace Tests.ClientConcepts.LowLevel { diff --git a/src/Tests/ClientConcepts/Serializer/CustomConstructorSerializerSettingsTests.cs b/src/Tests/ClientConcepts/Serializer/CustomConstructorSerializerSettingsTests.cs index db4709f8126..7e19072275b 100644 --- a/src/Tests/ClientConcepts/Serializer/CustomConstructorSerializerSettingsTests.cs +++ b/src/Tests/ClientConcepts/Serializer/CustomConstructorSerializerSettingsTests.cs @@ -10,6 +10,7 @@ using Nest; using Newtonsoft.Json; using System.Text; +using Elastic.Xunit.XunitPlumbing; namespace Tests.ClientConcepts.Serializer { diff --git a/src/Tests/ClientConcepts/Serializer/FactorySerializerTests.cs b/src/Tests/ClientConcepts/Serializer/FactorySerializerTests.cs index 20afec7c8fd..b8daaa58f27 100644 --- a/src/Tests/ClientConcepts/Serializer/FactorySerializerTests.cs +++ b/src/Tests/ClientConcepts/Serializer/FactorySerializerTests.cs @@ -10,6 +10,7 @@ using Nest; using Newtonsoft.Json; using System.Text; +using Elastic.Xunit.XunitPlumbing; namespace Tests.ClientConcepts.Serializer { diff --git a/src/Tests/ClientConcepts/Serializer/IsoDateTimeConverterTests.cs b/src/Tests/ClientConcepts/Serializer/IsoDateTimeConverterTests.cs index 8e1aaf1ac60..55cc69f9a7e 100644 --- a/src/Tests/ClientConcepts/Serializer/IsoDateTimeConverterTests.cs +++ b/src/Tests/ClientConcepts/Serializer/IsoDateTimeConverterTests.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/Serializer/ModifySerializationSettingsTests.cs b/src/Tests/ClientConcepts/Serializer/ModifySerializationSettingsTests.cs index 553f371db21..766c07fd9a3 100644 --- a/src/Tests/ClientConcepts/Serializer/ModifySerializationSettingsTests.cs +++ b/src/Tests/ClientConcepts/Serializer/ModifySerializationSettingsTests.cs @@ -10,6 +10,7 @@ using Nest; using Newtonsoft.Json; using System.Text; +using Elastic.Xunit.XunitPlumbing; namespace Tests.ClientConcepts.Serializer { diff --git a/src/Tests/ClientConcepts/ServerError/ServerErrorTests.cs b/src/Tests/ClientConcepts/ServerError/ServerErrorTests.cs index 1d29def9d7e..6ac83fa161d 100644 --- a/src/Tests/ClientConcepts/ServerError/ServerErrorTests.cs +++ b/src/Tests/ClientConcepts/ServerError/ServerErrorTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Runtime.InteropServices.ComTypes; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using Elasticsearch.Net; using FluentAssertions; diff --git a/src/Tests/ClientConcepts/Troubleshooting/AuditTrail.doc.cs b/src/Tests/ClientConcepts/Troubleshooting/AuditTrail.doc.cs index 4cbd786fcd6..1af3fed9d71 100644 --- a/src/Tests/ClientConcepts/Troubleshooting/AuditTrail.doc.cs +++ b/src/Tests/ClientConcepts/Troubleshooting/AuditTrail.doc.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/Troubleshooting/DebugInformation.doc.cs b/src/Tests/ClientConcepts/Troubleshooting/DebugInformation.doc.cs index 9d01b1c0dbc..3155ba94fd1 100644 --- a/src/Tests/ClientConcepts/Troubleshooting/DebugInformation.doc.cs +++ b/src/Tests/ClientConcepts/Troubleshooting/DebugInformation.doc.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/ClientConcepts/Troubleshooting/DebuggerDisplayTests.cs b/src/Tests/ClientConcepts/Troubleshooting/DebuggerDisplayTests.cs index dad0a651a47..bc304996144 100644 --- a/src/Tests/ClientConcepts/Troubleshooting/DebuggerDisplayTests.cs +++ b/src/Tests/ClientConcepts/Troubleshooting/DebuggerDisplayTests.cs @@ -1,5 +1,6 @@ using System; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/ClientConcepts/Troubleshooting/DeprecationLogging.doc.cs b/src/Tests/ClientConcepts/Troubleshooting/DeprecationLogging.doc.cs index d3e20794c62..6bae3ef1a0d 100644 --- a/src/Tests/ClientConcepts/Troubleshooting/DeprecationLogging.doc.cs +++ b/src/Tests/ClientConcepts/Troubleshooting/DeprecationLogging.doc.cs @@ -1,4 +1,5 @@ -using FluentAssertions; +using Elastic.Xunit.XunitPlumbing; +using FluentAssertions; using Tests.Framework; using Tests.Framework.ManagedElasticsearch.Clusters; using Tests.Framework.MockData; diff --git a/src/Tests/ClientConcepts/Troubleshooting/LoggingWithOnRequestCompleted.doc.cs b/src/Tests/ClientConcepts/Troubleshooting/LoggingWithOnRequestCompleted.doc.cs index ed489811d03..ded77872c4c 100644 --- a/src/Tests/ClientConcepts/Troubleshooting/LoggingWithOnRequestCompleted.doc.cs +++ b/src/Tests/ClientConcepts/Troubleshooting/LoggingWithOnRequestCompleted.doc.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainApiTests.cs b/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainApiTests.cs index 0f9c8855ca2..8c8ea996520 100644 --- a/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainApiTests.cs +++ b/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainUrlTests.cs b/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainUrlTests.cs index 5fc52b61500..8a80f052ee0 100644 --- a/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainUrlTests.cs +++ b/src/Tests/Cluster/ClusterAllocationExplain/ClusterAllocationExplainUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cluster/ClusterHealth/ClusterHealthUrlTests.cs b/src/Tests/Cluster/ClusterHealth/ClusterHealthUrlTests.cs index 7c32023c40d..1fbcda456e4 100644 --- a/src/Tests/Cluster/ClusterHealth/ClusterHealthUrlTests.cs +++ b/src/Tests/Cluster/ClusterHealth/ClusterHealthUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cluster/ClusterPendingTasks/ClusterPendingTasksUrlTests.cs b/src/Tests/Cluster/ClusterPendingTasks/ClusterPendingTasksUrlTests.cs index 168d838aab7..71c421c39c8 100644 --- a/src/Tests/Cluster/ClusterPendingTasks/ClusterPendingTasksUrlTests.cs +++ b/src/Tests/Cluster/ClusterPendingTasks/ClusterPendingTasksUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/ClusterReroute/ClusterRerouteUrlTests.cs b/src/Tests/Cluster/ClusterReroute/ClusterRerouteUrlTests.cs index d006760b09d..bd6023dd506 100644 --- a/src/Tests/Cluster/ClusterReroute/ClusterRerouteUrlTests.cs +++ b/src/Tests/Cluster/ClusterReroute/ClusterRerouteUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/ClusterSettings/ClusterGetSettings/ClusterGetSettingsUrlTests.cs b/src/Tests/Cluster/ClusterSettings/ClusterGetSettings/ClusterGetSettingsUrlTests.cs index d3b94f9f54a..05174f9ccfd 100644 --- a/src/Tests/Cluster/ClusterSettings/ClusterGetSettings/ClusterGetSettingsUrlTests.cs +++ b/src/Tests/Cluster/ClusterSettings/ClusterGetSettings/ClusterGetSettingsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/ClusterSettings/ClusterPutSettings/ClusterPutUrlTests.cs b/src/Tests/Cluster/ClusterSettings/ClusterPutSettings/ClusterPutUrlTests.cs index 824f59d1311..ec6409b9cc7 100644 --- a/src/Tests/Cluster/ClusterSettings/ClusterPutSettings/ClusterPutUrlTests.cs +++ b/src/Tests/Cluster/ClusterSettings/ClusterPutSettings/ClusterPutUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/ClusterState/ClusterStateUrlTests.cs b/src/Tests/Cluster/ClusterState/ClusterStateUrlTests.cs index a4a45eadcbb..2c2a1e9171f 100644 --- a/src/Tests/Cluster/ClusterState/ClusterStateUrlTests.cs +++ b/src/Tests/Cluster/ClusterState/ClusterStateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Cluster/ClusterStats/ClusterStatsUrlTests.cs b/src/Tests/Cluster/ClusterStats/ClusterStatsUrlTests.cs index d82fe9dfc97..2b0675e0928 100644 --- a/src/Tests/Cluster/ClusterStats/ClusterStatsUrlTests.cs +++ b/src/Tests/Cluster/ClusterStats/ClusterStatsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/NodesHotThreads/NodesHotThreadsUrlTests.cs b/src/Tests/Cluster/NodesHotThreads/NodesHotThreadsUrlTests.cs index d4e711a4933..05b028f9b8a 100644 --- a/src/Tests/Cluster/NodesHotThreads/NodesHotThreadsUrlTests.cs +++ b/src/Tests/Cluster/NodesHotThreads/NodesHotThreadsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/NodesInfo/NodesInfoUrlTests.cs b/src/Tests/Cluster/NodesInfo/NodesInfoUrlTests.cs index ce3d08fc197..f4da4cc1950 100644 --- a/src/Tests/Cluster/NodesInfo/NodesInfoUrlTests.cs +++ b/src/Tests/Cluster/NodesInfo/NodesInfoUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Cluster/NodesStats/NodesStatsUrlTests.cs b/src/Tests/Cluster/NodesStats/NodesStatsUrlTests.cs index dea6db7a3f1..7c5dd9e1a6a 100644 --- a/src/Tests/Cluster/NodesStats/NodesStatsUrlTests.cs +++ b/src/Tests/Cluster/NodesStats/NodesStatsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Cluster/Ping/PingUrlTests.cs b/src/Tests/Cluster/Ping/PingUrlTests.cs index a6456755824..2706c6995f6 100644 --- a/src/Tests/Cluster/Ping/PingUrlTests.cs +++ b/src/Tests/Cluster/Ping/PingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/RemoteInfo/RemoteInfoApiTests.cs b/src/Tests/Cluster/RemoteInfo/RemoteInfoApiTests.cs index e58411f7ada..3ca10fa4c6e 100644 --- a/src/Tests/Cluster/RemoteInfo/RemoteInfoApiTests.cs +++ b/src/Tests/Cluster/RemoteInfo/RemoteInfoApiTests.cs @@ -1,4 +1,5 @@ -using Elasticsearch.Net; +using Elastic.Xunit.XunitPlumbing; +using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Cluster/RemoteInfo/RemoteInfoUrlTests.cs b/src/Tests/Cluster/RemoteInfo/RemoteInfoUrlTests.cs index 12041d6c6cc..dba3bb128d0 100644 --- a/src/Tests/Cluster/RemoteInfo/RemoteInfoUrlTests.cs +++ b/src/Tests/Cluster/RemoteInfo/RemoteInfoUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Cluster/RootNodeInfo/RootNodeInfoUrlTests.cs b/src/Tests/Cluster/RootNodeInfo/RootNodeInfoUrlTests.cs index 1d25abe3306..762016bc93e 100644 --- a/src/Tests/Cluster/RootNodeInfo/RootNodeInfoUrlTests.cs +++ b/src/Tests/Cluster/RootNodeInfo/RootNodeInfoUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/TaskManagement/GetTask/GetTaskUrlTests.cs b/src/Tests/Cluster/TaskManagement/GetTask/GetTaskUrlTests.cs index 9f3aa595d38..1c9f88ebd7a 100644 --- a/src/Tests/Cluster/TaskManagement/GetTask/GetTaskUrlTests.cs +++ b/src/Tests/Cluster/TaskManagement/GetTask/GetTaskUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/Cluster/TaskManagement/TasksCancel/TasksCancelUrlTests.cs b/src/Tests/Cluster/TaskManagement/TasksCancel/TasksCancelUrlTests.cs index c900aa9200a..d5d2c8637bb 100644 --- a/src/Tests/Cluster/TaskManagement/TasksCancel/TasksCancelUrlTests.cs +++ b/src/Tests/Cluster/TaskManagement/TasksCancel/TasksCancelUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Cluster/TaskManagement/TasksList/TasksListApiTests.cs b/src/Tests/Cluster/TaskManagement/TasksList/TasksListApiTests.cs index 12f33b1b514..819d408c421 100644 --- a/src/Tests/Cluster/TaskManagement/TasksList/TasksListApiTests.cs +++ b/src/Tests/Cluster/TaskManagement/TasksList/TasksListApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -77,7 +78,7 @@ protected override LazyResponses ClientUsage() => Calls( protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { - var seeder = new DefaultSeeder(this.Cluster.Node); + var seeder = new DefaultSeeder(client); seeder.SeedNode(); // get a suitable load of projects in order to get a decent task status out diff --git a/src/Tests/Cluster/TaskManagement/TasksList/TasksListUrlTests.cs b/src/Tests/Cluster/TaskManagement/TasksList/TasksListUrlTests.cs index bc2efa25a9e..845c15c8ec1 100644 --- a/src/Tests/Cluster/TaskManagement/TasksList/TasksListUrlTests.cs +++ b/src/Tests/Cluster/TaskManagement/TasksList/TasksListUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/CodeStandards/Analysis.cs b/src/Tests/CodeStandards/Analysis.cs index 4b49ae3a96a..882bcaa7684 100644 --- a/src/Tests/CodeStandards/Analysis.cs +++ b/src/Tests/CodeStandards/Analysis.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Newtonsoft.Json; diff --git a/src/Tests/CodeStandards/Descriptors.doc.cs b/src/Tests/CodeStandards/Descriptors.doc.cs index 7bfa74fe79d..4c91abd58c8 100644 --- a/src/Tests/CodeStandards/Descriptors.doc.cs +++ b/src/Tests/CodeStandards/Descriptors.doc.cs @@ -5,6 +5,7 @@ using Nest; using Tests.Framework; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; namespace Tests.CodeStandards { diff --git a/src/Tests/CodeStandards/ElasticClient.doc.cs b/src/Tests/CodeStandards/ElasticClient.doc.cs index 20e0710eceb..0c6073c82aa 100644 --- a/src/Tests/CodeStandards/ElasticClient.doc.cs +++ b/src/Tests/CodeStandards/ElasticClient.doc.cs @@ -8,6 +8,7 @@ using Tests.Framework; using System.Reflection; using System.Threading; +using Elastic.Xunit.XunitPlumbing; namespace Tests.CodeStandards { diff --git a/src/Tests/CodeStandards/NamingConventions.doc.cs b/src/Tests/CodeStandards/NamingConventions.doc.cs index 5e68316c18a..fa4daea880e 100644 --- a/src/Tests/CodeStandards/NamingConventions.doc.cs +++ b/src/Tests/CodeStandards/NamingConventions.doc.cs @@ -3,6 +3,7 @@ using System.Globalization; using System.Linq; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/CodeStandards/Queries.doc.cs b/src/Tests/CodeStandards/Queries.doc.cs index c49c98125cb..2adc173eef0 100644 --- a/src/Tests/CodeStandards/Queries.doc.cs +++ b/src/Tests/CodeStandards/Queries.doc.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Newtonsoft.Json; @@ -10,7 +11,7 @@ namespace Tests.CodeStandards { public class QueriesStandards { - protected static PropertyInfo[] QueryProperties = typeof(IQueryContainer).GetProperties(); + protected static PropertyInfo[] QueryProperties = typeof(IQueryContainer).GetProperties(); protected static PropertyInfo[] QueryPlaceHolderProperties = typeof(IQueryContainer).GetProperties() .Where(a=>!a.GetCustomAttributes().Any()).ToArray(); @@ -26,42 +27,42 @@ where a.Count() != 1 properties.Should().BeEmpty(); } - [U] public void StaticQueryExposesAll() - { - var staticProperties = from p in typeof(Query<>).GetMethods() - let name = p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name - select name; - - var placeHolders = QueryPlaceHolderProperties.Select(p => p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name); - staticProperties.Distinct().Should().Contain(placeHolders.Distinct()); - } - - [U] public void FluentDescriptorExposesAll() - { - var fluentMethods = from p in typeof(QueryContainerDescriptor<>).GetMethods() - let name = p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name - select name; - - var placeHolders = QueryPlaceHolderProperties.Select(p => p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name); - fluentMethods.Distinct().Should().Contain(placeHolders.Distinct()); - } - - [U] public void VisitorVisitsAll() - { - var skipQueryImplementations = new[] { typeof(IFieldNameQuery), typeof(IFuzzyQuery<,>), typeof(IConditionlessQuery) }; - var queries = typeof(IQuery).Assembly().ExportedTypes - .Where(t => t.IsInterface() && typeof(IQuery).IsAssignableFrom(t)) - .Where(t => !skipQueryImplementations.Contains(t)) - .ToList(); - queries.Should().NotBeEmpty(); - - var visitMethods = typeof(IQueryVisitor).GetMethods().Where(m => m.Name == "Visit"); - visitMethods.Should().NotBeEmpty(); - var missingTypes = from q in queries - let visitMethod = visitMethods.FirstOrDefault(m => m.GetParameters().First().ParameterType == q) - where visitMethod == null + [U] public void StaticQueryExposesAll() + { + var staticProperties = from p in typeof(Query<>).GetMethods() + let name = p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name + select name; + + var placeHolders = QueryPlaceHolderProperties.Select(p => p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name); + staticProperties.Distinct().Should().Contain(placeHolders.Distinct()); + } + + [U] public void FluentDescriptorExposesAll() + { + var fluentMethods = from p in typeof(QueryContainerDescriptor<>).GetMethods() + let name = p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name + select name; + + var placeHolders = QueryPlaceHolderProperties.Select(p => p.Name.StartsWith("GeoShape") ? "GeoShape" : p.Name); + fluentMethods.Distinct().Should().Contain(placeHolders.Distinct()); + } + + [U] public void VisitorVisitsAll() + { + var skipQueryImplementations = new[] { typeof(IFieldNameQuery), typeof(IFuzzyQuery<,>), typeof(IConditionlessQuery) }; + var queries = typeof(IQuery).Assembly().ExportedTypes + .Where(t => t.IsInterface() && typeof(IQuery).IsAssignableFrom(t)) + .Where(t => !skipQueryImplementations.Contains(t)) + .ToList(); + queries.Should().NotBeEmpty(); + + var visitMethods = typeof(IQueryVisitor).GetMethods().Where(m => m.Name == "Visit"); + visitMethods.Should().NotBeEmpty(); + var missingTypes = from q in queries + let visitMethod = visitMethods.FirstOrDefault(m => m.GetParameters().First().ParameterType == q) + where visitMethod == null select q; - missingTypes.Should().BeEmpty(); + missingTypes.Should().BeEmpty(); } } } diff --git a/src/Tests/CodeStandards/Responses.doc.cs b/src/Tests/CodeStandards/Responses.doc.cs index ae405f9f30a..2744619c073 100644 --- a/src/Tests/CodeStandards/Responses.doc.cs +++ b/src/Tests/CodeStandards/Responses.doc.cs @@ -5,6 +5,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/CodeStandards/Serialization/Converters.doc.cs b/src/Tests/CodeStandards/Serialization/Converters.doc.cs index 60533f2dba3..2e50240f7ea 100644 --- a/src/Tests/CodeStandards/Serialization/Converters.doc.cs +++ b/src/Tests/CodeStandards/Serialization/Converters.doc.cs @@ -7,6 +7,7 @@ using Tests.Framework; using Newtonsoft.Json; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; namespace Tests.CodeStandards.Serialization { diff --git a/src/Tests/CodeStandards/Serialization/Enums.cs b/src/Tests/CodeStandards/Serialization/Enums.cs index a19fb19fbeb..7ff31252f33 100644 --- a/src/Tests/CodeStandards/Serialization/Enums.cs +++ b/src/Tests/CodeStandards/Serialization/Enums.cs @@ -4,6 +4,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Newtonsoft.Json; diff --git a/src/Tests/CodeStandards/Serialization/Properties.doc.cs b/src/Tests/CodeStandards/Serialization/Properties.doc.cs index 23049da6abd..64a7a64a9ae 100644 --- a/src/Tests/CodeStandards/Serialization/Properties.doc.cs +++ b/src/Tests/CodeStandards/Serialization/Properties.doc.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/CommonOptions/AutoExpandReplicas/AutoExpandReplicasTests.cs b/src/Tests/CommonOptions/AutoExpandReplicas/AutoExpandReplicasTests.cs index 1e29fb2219c..6597fe7294e 100644 --- a/src/Tests/CommonOptions/AutoExpandReplicas/AutoExpandReplicasTests.cs +++ b/src/Tests/CommonOptions/AutoExpandReplicas/AutoExpandReplicasTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Tests.Framework; using Nest; diff --git a/src/Tests/CommonOptions/DateMath/DateMathExpressions.doc.cs b/src/Tests/CommonOptions/DateMath/DateMathExpressions.doc.cs index 4ad12f1c8ec..9ca1b7bfb3d 100644 --- a/src/Tests/CommonOptions/DateMath/DateMathExpressions.doc.cs +++ b/src/Tests/CommonOptions/DateMath/DateMathExpressions.doc.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/CommonOptions/DateMath/DateMathTests.cs b/src/Tests/CommonOptions/DateMath/DateMathTests.cs index 4d6e3cb36bb..22cc2e41d7b 100644 --- a/src/Tests/CommonOptions/DateMath/DateMathTests.cs +++ b/src/Tests/CommonOptions/DateMath/DateMathTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/CommonOptions/DistanceUnit/DistanceUnits.doc.cs b/src/Tests/CommonOptions/DistanceUnit/DistanceUnits.doc.cs index eac9e4db242..508ec0c6dd7 100644 --- a/src/Tests/CommonOptions/DistanceUnit/DistanceUnits.doc.cs +++ b/src/Tests/CommonOptions/DistanceUnit/DistanceUnits.doc.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; using static Tests.Framework.RoundTripper; diff --git a/src/Tests/CommonOptions/TimeUnit/TimeUnits.doc.cs b/src/Tests/CommonOptions/TimeUnit/TimeUnits.doc.cs index 6d47d0fd4fd..87d49fc66f9 100644 --- a/src/Tests/CommonOptions/TimeUnit/TimeUnits.doc.cs +++ b/src/Tests/CommonOptions/TimeUnit/TimeUnits.doc.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Document/Multiple/Bulk/BulkProfileTests.cs b/src/Tests/Document/Multiple/Bulk/BulkProfileTests.cs index fbfc804167a..03f08d8a107 100644 --- a/src/Tests/Document/Multiple/Bulk/BulkProfileTests.cs +++ b/src/Tests/Document/Multiple/Bulk/BulkProfileTests.cs @@ -14,7 +14,7 @@ public class BulkProfileTests private readonly IElasticClient _client; private static readonly string IndexName = "bulk-profile"; - public BulkProfileTests(ClusterBase cluster) + public BulkProfileTests(ClientTestClusterBase cluster) { _client = cluster.Client; diff --git a/src/Tests/Document/Multiple/Bulk/BulkResponseParsingTests.cs b/src/Tests/Document/Multiple/Bulk/BulkResponseParsingTests.cs index 76423587edf..e913b72d9b2 100644 --- a/src/Tests/Document/Multiple/Bulk/BulkResponseParsingTests.cs +++ b/src/Tests/Document/Multiple/Bulk/BulkResponseParsingTests.cs @@ -1,6 +1,7 @@ using System.IO; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Multiple/Bulk/BulkUrlTests.cs b/src/Tests/Document/Multiple/Bulk/BulkUrlTests.cs index 4b73358f2f9..bdca9c8f55b 100644 --- a/src/Tests/Document/Multiple/Bulk/BulkUrlTests.cs +++ b/src/Tests/Document/Multiple/Bulk/BulkUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/BulkAll/BulkAllApiTests.cs b/src/Tests/Document/Multiple/BulkAll/BulkAllApiTests.cs index c6076857f50..9dddc24cb61 100644 --- a/src/Tests/Document/Multiple/BulkAll/BulkAllApiTests.cs +++ b/src/Tests/Document/Multiple/BulkAll/BulkAllApiTests.cs @@ -6,6 +6,7 @@ using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; @@ -32,7 +33,7 @@ private IEnumerable CreateLazyStreamOfDocuments(int count) yield return new SmallObject() { Id = i }; } - public BulkAllApiTests(IntrusiveOperationCluster cluster, EndpointUsage usage) + public BulkAllApiTests(IntrusiveOperationCluster cluster) { this._client = cluster.Client; } @@ -113,7 +114,7 @@ private static void OnError(ref Exception ex, Exception e, EventWaitHandle handl throw e; } - [I, SkipOnTeamCity("this test is extremely flakey on TC, but never fails localy")] + [I, SkipOnTeamCity] public void DisposingObservableCancelsBulkAll() { var index = CreateIndexName(); @@ -158,7 +159,7 @@ public void DisposingObservableCancelsBulkAll() bulkObserver.TotalNumberOfFailedBuffers.Should().Be(0); } - [I, SkipOnTeamCity("this test is extremely flakey on TC, but never fails localy")] + [I, SkipOnTeamCity] public void CancelBulkAll() { var index = CreateIndexName(); diff --git a/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryApiTests.cs b/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryApiTests.cs index 9d8b7a221ed..efcef5c61ff 100644 --- a/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryApiTests.cs +++ b/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryUrlTests.cs b/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryUrlTests.cs index ce9e00f4d26..a9a5769683b 100644 --- a/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryUrlTests.cs +++ b/src/Tests/Document/Multiple/DeleteByQuery/DeleteByQueryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/MultiGet/GetManyApiTests.cs b/src/Tests/Document/Multiple/MultiGet/GetManyApiTests.cs index dc5f0ac0b05..b8a37000777 100644 --- a/src/Tests/Document/Multiple/MultiGet/GetManyApiTests.cs +++ b/src/Tests/Document/Multiple/MultiGet/GetManyApiTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Document/Multiple/MultiGet/GetManyUrlTests.cs b/src/Tests/Document/Multiple/MultiGet/GetManyUrlTests.cs index 58eeb3b006e..0f80b07c526 100644 --- a/src/Tests/Document/Multiple/MultiGet/GetManyUrlTests.cs +++ b/src/Tests/Document/Multiple/MultiGet/GetManyUrlTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/MultiGet/MultiGetUrlTests.cs b/src/Tests/Document/Multiple/MultiGet/MultiGetUrlTests.cs index 14b9e211e3c..51b52174ad3 100644 --- a/src/Tests/Document/Multiple/MultiGet/MultiGetUrlTests.cs +++ b/src/Tests/Document/Multiple/MultiGet/MultiGetUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/MultiTermVectors/MultiTermVectorsUrlTests.cs b/src/Tests/Document/Multiple/MultiTermVectors/MultiTermVectorsUrlTests.cs index a9462faf05c..d45804a0776 100644 --- a/src/Tests/Document/Multiple/MultiTermVectors/MultiTermVectorsUrlTests.cs +++ b/src/Tests/Document/Multiple/MultiTermVectors/MultiTermVectorsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/Reindex/ReindexApiTests.cs b/src/Tests/Document/Multiple/Reindex/ReindexApiTests.cs index ae56a7d38cb..296a81becd6 100644 --- a/src/Tests/Document/Multiple/Reindex/ReindexApiTests.cs +++ b/src/Tests/Document/Multiple/Reindex/ReindexApiTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Reactive.Linq; using System.Threading; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; @@ -15,27 +16,27 @@ namespace Tests.Document.Multiple.Reindex { - public class ReindexCluster : ClusterBase + public class ReindexCluster : ClientTestClusterBase { - protected override void SeedNode() + protected override void SeedCluster() { - var seeder = new DefaultSeeder(this.Node); + var seeder = new DefaultSeeder(this.Client); seeder.DeleteIndicesAndTemplates(); seeder.CreateIndices(); } } - public class ManualReindexCluster : ClusterBase + public class ManualReindexCluster : ClientTestClusterBase { - protected override void SeedNode() + protected override void SeedCluster() { - var seeder = new DefaultSeeder(this.Node); + var seeder = new DefaultSeeder(this.Client); seeder.DeleteIndicesAndTemplates(); seeder.CreateIndices(); } } - public class ReindexApiTests : SerializationTestBase, IClusterFixture + public class ReindexApiTests : SerializationTestBase, IClusterFixture, IClassFixture { private readonly IObservable _reindexManyTypesResult; private readonly IObservable _reindexSingleTypeResult; diff --git a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerApiTests.cs b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerApiTests.cs index f590a208a26..07a868b61d2 100644 --- a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerApiTests.cs +++ b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerInvalidApiTests.cs b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerInvalidApiTests.cs index e8d64ef7011..04bdca7f401 100644 --- a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerInvalidApiTests.cs +++ b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerInvalidApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerRemoteApiTests.cs b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerRemoteApiTests.cs index 620ecfb875d..aa8e436259a 100644 --- a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerRemoteApiTests.cs +++ b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerRemoteApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerUrlTests.cs b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerUrlTests.cs index fb86b4d1699..97fe13042ab 100644 --- a/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerUrlTests.cs +++ b/src/Tests/Document/Multiple/ReindexOnServer/ReindexOnServerUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/ReindexRethrottle/ReindexRethrottleUrlTests.cs b/src/Tests/Document/Multiple/ReindexRethrottle/ReindexRethrottleUrlTests.cs index 72ebd67d6e4..1b0c865b474 100644 --- a/src/Tests/Document/Multiple/ReindexRethrottle/ReindexRethrottleUrlTests.cs +++ b/src/Tests/Document/Multiple/ReindexRethrottle/ReindexRethrottleUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryApiTests.cs b/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryApiTests.cs index 069c685567f..a9bbfbca153 100644 --- a/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryApiTests.cs +++ b/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryUrlTests.cs b/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryUrlTests.cs index dd571cd2152..ba93c74e0b4 100644 --- a/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryUrlTests.cs +++ b/src/Tests/Document/Multiple/UpdateByQuery/UpdateByQueryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Create/CreateApiTests.cs b/src/Tests/Document/Single/Create/CreateApiTests.cs index 81c64dcc690..9a38549b57d 100644 --- a/src/Tests/Document/Single/Create/CreateApiTests.cs +++ b/src/Tests/Document/Single/Create/CreateApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Single/Create/CreateUrlTests.cs b/src/Tests/Document/Single/Create/CreateUrlTests.cs index 2582f4a81a4..5dde46ff89c 100644 --- a/src/Tests/Document/Single/Create/CreateUrlTests.cs +++ b/src/Tests/Document/Single/Create/CreateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Delete/DeleteUrlTests.cs b/src/Tests/Document/Single/Delete/DeleteUrlTests.cs index d96003a0a79..915f98f9f34 100644 --- a/src/Tests/Document/Single/Delete/DeleteUrlTests.cs +++ b/src/Tests/Document/Single/Delete/DeleteUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/DocumentCrudTests.cs b/src/Tests/Document/Single/DocumentCrudTests.cs index 4eb2156cada..398417b8d6a 100644 --- a/src/Tests/Document/Single/DocumentCrudTests.cs +++ b/src/Tests/Document/Single/DocumentCrudTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Document/Single/Exists/DocumentExistsUrlTests.cs b/src/Tests/Document/Single/Exists/DocumentExistsUrlTests.cs index 7f3c0355046..b7f3feab83e 100644 --- a/src/Tests/Document/Single/Exists/DocumentExistsUrlTests.cs +++ b/src/Tests/Document/Single/Exists/DocumentExistsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Get/GetUrlTests.cs b/src/Tests/Document/Single/Get/GetUrlTests.cs index 75a44a46ef2..d56e47d9397 100644 --- a/src/Tests/Document/Single/Get/GetUrlTests.cs +++ b/src/Tests/Document/Single/Get/GetUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Index/IndexApiTests.cs b/src/Tests/Document/Single/Index/IndexApiTests.cs index 735c7ddff32..b11b20a6119 100644 --- a/src/Tests/Document/Single/Index/IndexApiTests.cs +++ b/src/Tests/Document/Single/Index/IndexApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Single/Index/IndexUrlTests.cs b/src/Tests/Document/Single/Index/IndexUrlTests.cs index 7f5c9fe1904..09ecb2cc5d8 100644 --- a/src/Tests/Document/Single/Index/IndexUrlTests.cs +++ b/src/Tests/Document/Single/Index/IndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Source/SourceApiTests.cs b/src/Tests/Document/Single/Source/SourceApiTests.cs index cb49d6af899..f9e3268f005 100644 --- a/src/Tests/Document/Single/Source/SourceApiTests.cs +++ b/src/Tests/Document/Single/Source/SourceApiTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Document/Single/SourceExists/SourceExistsApiTests.cs b/src/Tests/Document/Single/SourceExists/SourceExistsApiTests.cs index 4bf7f16cfe1..9ddd63ce7c3 100644 --- a/src/Tests/Document/Single/SourceExists/SourceExistsApiTests.cs +++ b/src/Tests/Document/Single/SourceExists/SourceExistsApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Document/Single/SourceExists/SourceExistsUrlTests.cs b/src/Tests/Document/Single/SourceExists/SourceExistsUrlTests.cs index 909a5a91dc5..bfb7e520207 100644 --- a/src/Tests/Document/Single/SourceExists/SourceExistsUrlTests.cs +++ b/src/Tests/Document/Single/SourceExists/SourceExistsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/TermVectors/TermVectorsUrlTests.cs b/src/Tests/Document/Single/TermVectors/TermVectorsUrlTests.cs index b04e7628506..8c662e0b777 100644 --- a/src/Tests/Document/Single/TermVectors/TermVectorsUrlTests.cs +++ b/src/Tests/Document/Single/TermVectors/TermVectorsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Update/UpdateUrlTests.cs b/src/Tests/Document/Single/Update/UpdateUrlTests.cs index f4567e1f5fa..65220ec6dd3 100644 --- a/src/Tests/Document/Single/Update/UpdateUrlTests.cs +++ b/src/Tests/Document/Single/Update/UpdateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Document/Single/Update/UpdateWithSourceApiTests.cs b/src/Tests/Document/Single/Update/UpdateWithSourceApiTests.cs index 6ab79bbb78f..f4cb42751bf 100644 --- a/src/Tests/Document/Single/Update/UpdateWithSourceApiTests.cs +++ b/src/Tests/Document/Single/Update/UpdateWithSourceApiTests.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using FluentAssertions; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework.ManagedElasticsearch.Clusters; namespace Tests.Document.Single.Update diff --git a/src/Tests/Framework/Configuration/EnvironmentConfiguration.cs b/src/Tests/Framework/Configuration/EnvironmentConfiguration.cs index 933953ea656..e7e4d56393f 100644 --- a/src/Tests/Framework/Configuration/EnvironmentConfiguration.cs +++ b/src/Tests/Framework/Configuration/EnvironmentConfiguration.cs @@ -3,7 +3,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -using Tests.Framework.Versions; +using Bogus; +using Elastic.Managed.Configuration; namespace Tests.Framework.Configuration { @@ -11,12 +12,13 @@ public class EnvironmentConfiguration : TestConfigurationBase { private const string DefaultVersion = "5.6.5"; - public override bool TestAgainstAlreadyRunningElasticsearch { get; protected set; } = false; - public override bool ForceReseed { get; protected set; } = true; - public override ElasticsearchVersion ElasticsearchVersion { get; protected set; } = ElasticsearchVersion.GetOrAdd(DefaultVersion); - public override TestMode Mode { get; protected set; } = TestMode.Unit; - public override string ClusterFilter { get; protected set; } - public override string TestFilter { get; protected set; } + public sealed override bool TestAgainstAlreadyRunningElasticsearch { get; protected set; } = false; + public sealed override bool ForceReseed { get; protected set; } = true; + public sealed override ElasticsearchVersion ElasticsearchVersion { get; protected set; } + public sealed override TestMode Mode { get; protected set; } = TestMode.Unit; + public sealed override string ClusterFilter { get; protected set; } + public sealed override string TestFilter { get; protected set; } + public sealed override int Seed { get; protected set; } public EnvironmentConfiguration() { @@ -25,9 +27,40 @@ public EnvironmentConfiguration() var version = Environment.GetEnvironmentVariable("NEST_INTEGRATION_VERSION"); if (!string.IsNullOrEmpty(version)) Mode = TestMode.Integration; - this.ElasticsearchVersion = ElasticsearchVersion.GetOrAdd(string.IsNullOrWhiteSpace(version) ? DefaultVersion : version); + this.ElasticsearchVersion = ElasticsearchVersion.From(string.IsNullOrWhiteSpace(version) ? DefaultVersion : version); this.ClusterFilter = Environment.GetEnvironmentVariable("NEST_INTEGRATION_CLUSTER"); this.TestFilter = Environment.GetEnvironmentVariable("NEST_TEST_FILTER"); + + var newRandom = new Random().Next(1, 100000); + + this.Seed = TryGetEnv("NEST_TEST_SEED", out var seed) ? int.Parse(seed) : newRandom; + Randomizer.Seed = new Random(this.Seed); + var randomizer = new Randomizer(); + + this.Random = new RandomConfiguration + { + SourceSerializer = RandomBoolConfig("SOURCESERIALIZER", randomizer), + TypedKeys = RandomBoolConfig("TYPEDKEYS", randomizer), +#if FEATURE_HTTPWEBREQUEST + OldConnection = RandomBoolConfig("OLDCONNECTION", randomizer), +#else + OldConnection = false +#endif + }; + } + + private static bool RandomBoolConfig(string key, Randomizer randomizer) + { + if (TryGetEnv("NEST_RANDOM_" + key, out var source) && bool.TryParse(source, out var b)) + return b; + return randomizer.Bool(); + } + + + private static bool TryGetEnv(string key, out string value) + { + value = Environment.GetEnvironmentVariable(key); + return !string.IsNullOrWhiteSpace(value); } } } diff --git a/src/Tests/Framework/Configuration/ITestConfiguration.cs b/src/Tests/Framework/Configuration/ITestConfiguration.cs index d6e88abc3da..47beccd29ec 100644 --- a/src/Tests/Framework/Configuration/ITestConfiguration.cs +++ b/src/Tests/Framework/Configuration/ITestConfiguration.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -using Tests.Framework.Versions; +using Elastic.Managed.Configuration; namespace Tests.Framework.Configuration { @@ -19,6 +19,16 @@ public interface ITestConfiguration bool RunIntegrationTests { get; } bool RunUnitTests { get; } + + RandomConfiguration Random { get; } + } + + //TODO these dont make sense in 5.x get rid of them + public class RandomConfiguration + { + public bool SourceSerializer { get; set; } + public bool TypedKeys { get; set; } + public bool OldConnection { get; set; } } } diff --git a/src/Tests/Framework/Configuration/TestConfigurationBase.cs b/src/Tests/Framework/Configuration/TestConfigurationBase.cs index 18005e08a6b..66d04cd0d76 100644 --- a/src/Tests/Framework/Configuration/TestConfigurationBase.cs +++ b/src/Tests/Framework/Configuration/TestConfigurationBase.cs @@ -1,4 +1,4 @@ -using Tests.Framework.Versions; +using Elastic.Managed.Configuration; namespace Tests.Framework.Configuration { @@ -10,9 +10,11 @@ public abstract class TestConfigurationBase : ITestConfiguration public abstract TestMode Mode { get; protected set; } public abstract string ClusterFilter { get; protected set; } public abstract string TestFilter { get; protected set; } - public int Seed { get; } = 1337; public virtual bool RunIntegrationTests => Mode == TestMode.Mixed || Mode == TestMode.Integration; public virtual bool RunUnitTests => Mode == TestMode.Mixed || Mode == TestMode.Unit; + + public abstract int Seed { get; protected set; } + public RandomConfiguration Random { get; protected set; } } } diff --git a/src/Tests/Framework/Configuration/Versions/ElasticsearchVersion.cs b/src/Tests/Framework/Configuration/Versions/ElasticsearchVersion.cs deleted file mode 100644 index 358e5768d9d..00000000000 --- a/src/Tests/Framework/Configuration/Versions/ElasticsearchVersion.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Linq; -using System.Net; -using System.Threading; -using System.Xml.Linq; -using Nest; -using Version = SemVer.Version; - -namespace Tests.Framework.Versions -{ - public class ElasticsearchVersion : Version - { - private static readonly Lazy LatestVersion = new Lazy(ResolveLatestVersion, LazyThreadSafetyMode.ExecutionAndPublication); - private static readonly Lazy LatestSnapshot = new Lazy(ResolveLatestSnapshot, LazyThreadSafetyMode.ExecutionAndPublication); - private static readonly object _lock = new { }; - private static readonly ConcurrentDictionary SnapshotVersions = new ConcurrentDictionary(); - private static readonly string SonaTypeUrl = "https://oss.sonatype.org/content/repositories/snapshots/org/elasticsearch/distribution/zip/elasticsearch"; - private static readonly ConcurrentDictionary Versions = new ConcurrentDictionary(); - - private string RootUrl => this.IsSnapshot - ? SonaTypeUrl - : TestClient.VersionUnderTestSatisfiedBy("<5.0.0") - ? "https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch" - : "https://artifacts.elastic.co/downloads/elasticsearch"; - - private static string ResolveLatestSnapshot() - { - var version = LatestVersion.Value; - return ResolveLatestSnapshotFor(version); - } - - private static string ResolveLatestSnapshotFor(string version) - { - var url = $"{SonaTypeUrl}/{version}/maven-metadata.xml"; - try - { - var mavenMetadata = XElement.Load(url); - var snapshot = mavenMetadata.Descendants("versioning").Descendants("snapshot").FirstOrDefault(); - var snapshotTimestamp = snapshot.Descendants("timestamp").FirstOrDefault().Value; - var snapshotBuildNumber = snapshot.Descendants("buildNumber").FirstOrDefault().Value; - var identifier = $"{snapshotTimestamp}-{snapshotBuildNumber}"; - var zip = $"elasticsearch-{version.Replace("SNAPSHOT", "")}{identifier}.zip"; - return zip; - - } - catch (Exception e) - { - throw new Exception($"Can not download maven data from {url}", e); - } - } - - private static string ResolveLatestVersion() - { - var url = $"{SonaTypeUrl}/maven-metadata.xml"; - try - { - var versions = XElement.Load(url) - .Descendants("version") - .Select(n => new Version(n.Value)) - .OrderByDescending(n => n); - return versions.First().ToString(); - } - catch (Exception e) - { - throw new Exception($"Can not download maven data from {url}", e); - } - } - - private static string TranslateConfigVersion(string configMoniker) => configMoniker == "latest" ? LatestVersion.Value : configMoniker; - - public ElasticsearchVersion(string version) : base(TranslateConfigVersion(version)) - { - this.Version = version; - if (this.Version.Equals("latest", StringComparison.OrdinalIgnoreCase)) - { - this.Version = LatestVersion.Value; - this.Zip = LatestSnapshot.Value; - } - else if (this.IsSnapshot) - { - lock (_lock) - { - string zipLocation; - if (SnapshotVersions.TryGetValue(version, out zipLocation)) - this.Zip = zipLocation; - else - { - zipLocation = ResolveLatestSnapshotFor(version); - SnapshotVersions.TryAdd(version, zipLocation); - this.Zip = zipLocation; - } - } - } - - this.Zip = this.Zip ?? $"elasticsearch-{this.Version}.zip"; - } - - private string _downloadUrl; - public string DownloadUrl - { - get - { - if (!string.IsNullOrWhiteSpace(this._downloadUrl)) return this._downloadUrl; - this._downloadUrl = this.IsSnapshot - ? $"{this.RootUrl}/{this.Version}/{this.Zip}" - : $"{this.RootUrl}/{this.Zip}"; - return this._downloadUrl; - - } - } - public string Zip { get; } - public string Version { get; } - - /// - /// Returns the version in elasticsearch-{version} format, for SNAPSHOTS this includes a - /// datetime suffix - /// - public string FullyQualifiedVersion => this.Zip?.Replace(".zip", "").Replace("elasticsearch-", ""); - - /// - /// The folder name to expect to be in the zip distribution - /// - public string FolderInZip => $"elasticsearch-{this.Version}"; - - /// - /// Whether this version is a snapshot or officicially released distribution - /// - public bool IsSnapshot => this.Version?.ToLower().Contains("snapshot") ?? false; - - public override string ToString() => this.Version; - - public static ElasticsearchVersion GetOrAdd(string version) => - Versions.GetOrAdd(version, v => new ElasticsearchVersion(v)); - } -} diff --git a/src/Tests/Framework/Configuration/YamlConfiguration.cs b/src/Tests/Framework/Configuration/YamlConfiguration.cs index 48d8f83bfef..a88711978a6 100644 --- a/src/Tests/Framework/Configuration/YamlConfiguration.cs +++ b/src/Tests/Framework/Configuration/YamlConfiguration.cs @@ -1,49 +1,62 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; -using Tests.Framework.Versions; +using Bogus; +using Elastic.Managed.Configuration; namespace Tests.Framework.Configuration { public class YamlConfiguration : TestConfigurationBase { - public override bool TestAgainstAlreadyRunningElasticsearch { get; protected set; } = true; - public override ElasticsearchVersion ElasticsearchVersion { get; protected set; } - public override bool ForceReseed { get; protected set; } = true; - public override TestMode Mode { get; protected set; } = TestMode.Unit; - public override string ClusterFilter { get; protected set; } - public override string TestFilter { get; protected set; } + private readonly Dictionary _config; + public sealed override bool TestAgainstAlreadyRunningElasticsearch { get; protected set; } = true; + public sealed override ElasticsearchVersion ElasticsearchVersion { get; protected set; } + public sealed override bool ForceReseed { get; protected set; } = true; + public sealed override TestMode Mode { get; protected set; } = TestMode.Unit; + public sealed override string ClusterFilter { get; protected set; } + public sealed override string TestFilter { get; protected set; } + public sealed override int Seed { get; protected set; } public YamlConfiguration(string configurationFile) { if (!File.Exists(configurationFile)) return; - var config = File.ReadAllLines(configurationFile) - .Where(l=>!l.Trim().StartsWith("#") && !string.IsNullOrWhiteSpace(l)) + _config = File.ReadAllLines(configurationFile) + .Where(l => !l.Trim().StartsWith("#") && !string.IsNullOrWhiteSpace(l)) .ToDictionary(ConfigName, ConfigValue); - this.Mode = GetTestMode(config["mode"]); - this.ElasticsearchVersion = ElasticsearchVersion.GetOrAdd(config["elasticsearch_version"]); - this.ForceReseed = bool.Parse(config["force_reseed"]); - this.TestAgainstAlreadyRunningElasticsearch = bool.Parse(config["test_against_already_running_elasticsearch"]); - this.ClusterFilter = config.ContainsKey("cluster_filter") ? config["cluster_filter"] : null; - this.TestFilter = config.ContainsKey("test_filter") ? config["test_filter"] : null; + this.Mode = GetTestMode(_config["mode"]); + this.ElasticsearchVersion = _config["elasticsearch_version"]; + this.ForceReseed = BoolConfig("force_reseed", false); + this.TestAgainstAlreadyRunningElasticsearch = BoolConfig("test_against_already_running_elasticsearch", false); + this.ClusterFilter = _config.ContainsKey("cluster_filter") ? _config["cluster_filter"] : null; + this.TestFilter = _config.ContainsKey("test_filter") ? _config["test_filter"] : null; + + this.Seed = _config.TryGetValue("seed", out var seed) ? int.Parse(seed) : 1337; + Randomizer.Seed = new Random(this.Seed); + var randomizer = new Randomizer(); + this.Random = new RandomConfiguration + { + SourceSerializer = RandomBool("source_serializer", randomizer), + TypedKeys = RandomBool("typed_keys", randomizer), + OldConnection = RandomBool("old_connection", randomizer) + }; } + private bool BoolConfig(string key, bool @default) => + _config.TryGetValue(key, out var v) ? bool.Parse(v) : @default; + + private bool RandomBool(string key, Randomizer randomizer) => + _config.TryGetValue($"random_{key}", out var v) ? bool.Parse(v) : randomizer.Bool(); + private static string ConfigName(string configLine) => Parse(configLine, 0); private static string ConfigValue(string configLine) => Parse(configLine, 1); - private static string Parse(string configLine, int index) - { - var configParts = configLine.Split(':'); - - return configParts.Length - 1 >= index - ? configParts[index].Trim(' ') - : string.Empty; - } + private static string Parse(string configLine, int index) => configLine.Split(':')[index].Trim(' '); private static TestMode GetTestMode(string mode) { - switch(mode) + switch (mode) { case "unit": case "u": diff --git a/src/Tests/Framework/DocumentationTests/IntegrationDocumentationTestBase.cs b/src/Tests/Framework/DocumentationTests/IntegrationDocumentationTestBase.cs index 7bb70705672..038e2baf083 100644 --- a/src/Tests/Framework/DocumentationTests/IntegrationDocumentationTestBase.cs +++ b/src/Tests/Framework/DocumentationTests/IntegrationDocumentationTestBase.cs @@ -18,10 +18,10 @@ public abstract class IntegrationDocumentationTestBase { protected static string RandomString() => Guid.NewGuid().ToString("N").Substring(0, 8); - readonly ClusterBase _cluster; + readonly ClientTestClusterBase _cluster; protected IElasticClient Client => this._cluster.Client; - protected IntegrationDocumentationTestBase(ClusterBase cluster) + protected IntegrationDocumentationTestBase(ClientTestClusterBase cluster) { this._cluster = cluster; } diff --git a/src/Tests/Framework/EndpointTests/ApiIntegrationAgainstNewIndexTestBase.cs b/src/Tests/Framework/EndpointTests/ApiIntegrationAgainstNewIndexTestBase.cs index a91c41dc06f..9717dd3553b 100644 --- a/src/Tests/Framework/EndpointTests/ApiIntegrationAgainstNewIndexTestBase.cs +++ b/src/Tests/Framework/EndpointTests/ApiIntegrationAgainstNewIndexTestBase.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Managed.Ephemeral; using Elasticsearch.Net; using Nest; using Tests.Framework.Integration; @@ -8,13 +9,13 @@ namespace Tests.Framework { public abstract class ApiIntegrationAgainstNewIndexTestBase : ApiIntegrationTestBase - where TCluster : ClusterBase, new() + where TCluster : IEphemeralCluster, INestTestCluster, new() where TResponse : class, IResponse where TDescriptor : class, TInterface where TInitializer : class, TInterface where TInterface : class { - protected ApiIntegrationAgainstNewIndexTestBase(ClusterBase cluster, EndpointUsage usage) : base(cluster, usage) { } + protected ApiIntegrationAgainstNewIndexTestBase(TCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -26,4 +27,4 @@ protected override void IntegrationSetup(IElasticClient client, CallUniqueValues protected virtual ICreateIndexRequest CreateIndexSettings(CreateIndexDescriptor create) => create; } -} \ No newline at end of file +} diff --git a/src/Tests/Framework/EndpointTests/ApiIntegrationTestBase.cs b/src/Tests/Framework/EndpointTests/ApiIntegrationTestBase.cs index a09b7554eea..1a71a7af194 100644 --- a/src/Tests/Framework/EndpointTests/ApiIntegrationTestBase.cs +++ b/src/Tests/Framework/EndpointTests/ApiIntegrationTestBase.cs @@ -2,17 +2,18 @@ using System.Net; using System.Runtime.ExceptionServices; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; +using Elastic.Managed.Ephemeral; using FluentAssertions; using Nest; using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch; using Tests.Framework.ManagedElasticsearch.Clusters; namespace Tests.Framework { public abstract class ApiIntegrationTestBase : ApiTestBase - where TCluster : ClusterBase, new() + where TCluster : IEphemeralCluster, INestTestCluster , new() where TResponse : class, IResponse where TDescriptor : class, TInterface where TInitializer : class, TInterface @@ -22,7 +23,7 @@ public abstract class ApiIntegrationTestBase this.Cluster.Client; protected override TInitializer Initializer => Activator.CreateInstance(); diff --git a/src/Tests/Framework/EndpointTests/ApiTestBase.cs b/src/Tests/Framework/EndpointTests/ApiTestBase.cs index 0fbe162fd32..7e5c72eb884 100644 --- a/src/Tests/Framework/EndpointTests/ApiTestBase.cs +++ b/src/Tests/Framework/EndpointTests/ApiTestBase.cs @@ -2,19 +2,21 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch; -using Tests.Framework.ManagedElasticsearch.Clusters; +using Elastic.Managed; +using Elastic.Managed.Configuration; +using Elastic.Managed.Ephemeral; using Xunit; namespace Tests.Framework { public abstract class ApiTestBase - : SerializationTestBase, IClusterFixture - where TCluster : ClusterBase, new() + : SerializationTestBase, IClusterFixture, IClassFixture + where TCluster : ICluster , new() where TResponse : class, IResponse where TDescriptor : class, TInterface where TInitializer : class, TInterface @@ -28,7 +30,7 @@ public abstract class ApiTestBase this._usage?.CalledSetup ?? false; protected string UrlEncode(string s) => Uri.EscapeDataString(s); - protected ClusterBase Cluster { get; } + protected TCluster Cluster { get; } protected string CallIsolatedValue => _uniqueValues.Value; protected T ExtendedValue(string key) where T : class => this._uniqueValues.ExtendedValue(key); @@ -48,12 +50,13 @@ protected virtual void OnAfterCall(IElasticClient client) { } protected abstract string UrlPath { get; } protected abstract HttpMethod HttpMethod { get; } - protected ApiTestBase(ClusterBase cluster, EndpointUsage usage) : base(cluster) + protected ApiTestBase(TCluster cluster, EndpointUsage usage) : base(cluster) { this._usage = usage ?? throw new ArgumentNullException(nameof(usage)); - this.Cluster = cluster ?? throw new ArgumentNullException(nameof(cluster)); + if (cluster == null) throw new ArgumentNullException(nameof(cluster)); + this.Cluster = cluster; - this._responses = usage.CallOnce(this.ClientUsage); + this._responses = usage.CallOnce(this.ClientUsage, 0); this._uniqueValues = usage.CallUniqueValues; this.SetupSerialization(); } @@ -135,9 +138,11 @@ protected virtual async Task AssertOnAllResponses(Action assert) this._uniqueValues.CurrentView = kv.Key; assert(response); } +#pragma warning disable 8360 //enable this if you expect a single overload to act up #pragma warning disable 7095 //enable this if you expect a single overload to act up catch (Exception ex) when (false) #pragma warning restore 7095 +#pragma warning restore 8360 #pragma warning disable 0162 //dead code while the previous exception filter is false { throw new Exception($"asserting over the response from: {kv.Key} failed: {ex.Message}", ex); diff --git a/src/Tests/Framework/EndpointTests/CanConnectTestBase.cs b/src/Tests/Framework/EndpointTests/CanConnectTestBase.cs index 01127dd4926..171770a6cda 100644 --- a/src/Tests/Framework/EndpointTests/CanConnectTestBase.cs +++ b/src/Tests/Framework/EndpointTests/CanConnectTestBase.cs @@ -1,3 +1,4 @@ +using Elastic.Managed.Ephemeral; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -8,7 +9,7 @@ namespace Tests.Framework { public abstract class CanConnectTestBase : ApiIntegrationTestBase - where TCluster : ClusterBase, new() + where TCluster : IEphemeralCluster, INestTestCluster , new() { protected CanConnectTestBase(TCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( @@ -31,4 +32,4 @@ protected override void ExpectResponse(IRootNodeInfoResponse response) response.Name.Should().NotBeNullOrWhiteSpace(); } } -} \ No newline at end of file +} diff --git a/src/Tests/Framework/EndpointTests/ConnectionErrorTestBase.cs b/src/Tests/Framework/EndpointTests/ConnectionErrorTestBase.cs index c5aae575e57..2af9350c312 100644 --- a/src/Tests/Framework/EndpointTests/ConnectionErrorTestBase.cs +++ b/src/Tests/Framework/EndpointTests/ConnectionErrorTestBase.cs @@ -1,19 +1,23 @@ using System; +using System.Linq; using System.Net; +using System.Net.Http; using System.Threading.Tasks; -using Elasticsearch.Net; +using Elastic.Managed.Ephemeral; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; +using HttpMethod = Elasticsearch.Net.HttpMethod; namespace Tests.Framework { public abstract class ConnectionErrorTestBase : ApiTestBase - where TCluster : ClusterBase, new() + where TCluster : IEphemeralCluster, INestTestCluster , new() { - protected ConnectionErrorTestBase(ClusterBase cluster, EndpointUsage usage) : base(cluster, usage) { } + protected ConnectionErrorTestBase(TCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.RootNodeInfo(f), @@ -34,14 +38,44 @@ [I] public async Task AssertException() => await this.AssertOnAllResponses(r => { var e = r.OriginalException; e.Should().NotBeNull(); - if (e is WebException) this.AssertException((WebException) e); - else if (e is System.Net.Http.HttpRequestException) - this.AssertException((System.Net.Http.HttpRequestException) e); - else throw new Exception("Response orginal exception is not one of the expected connection exception but" + e.GetType().FullName); + //TODO build seed:85405 integrate 5.6.0 "badcertgenca,denyallcertificates" "workingwithcertificates+badcertgenca,workingwithcertificates+denyallsslcertificates" + //This is fixed in 6.x and master but due to differences in RequestPipeline.cs this warrants a deeper investigation on 5.x + //FindWebExceptionOrHttpRequestException(e, e); }); - protected abstract void AssertException(WebException e); - protected abstract void AssertException(System.Net.Http.HttpRequestException e); + private bool FindWebExceptionOrHttpRequestException(Exception mainException, Exception currentException) + { + mainException.Should().NotBeNull(); + currentException.Should().NotBeNull(); + switch (currentException) + { + case WebException exception: + this.AssertWebException(exception); + return true; + case HttpRequestException requestException: + this.AssertHttpRequestException(requestException); + return true; + default: + if (currentException.InnerException != null) + { + if (currentException.InnerException is AggregateException ae) + { + ae.Flatten(); + if (ae.InnerExceptions.Any(e => FindWebExceptionOrHttpRequestException(mainException, e))) return true; + } + else + { + if (FindWebExceptionOrHttpRequestException(mainException, currentException.InnerException)) return true; + } + + } + if (mainException == currentException) + throw new Exception("Unable to find WebException or HttpRequestException on" + mainException.GetType().FullName); + return false; + } + } + protected abstract void AssertWebException(WebException e); + protected abstract void AssertHttpRequestException(HttpRequestException e); } -} \ No newline at end of file +} diff --git a/src/Tests/Framework/EndpointTests/CrudTestBase.cs b/src/Tests/Framework/EndpointTests/CrudTestBase.cs index 5e31960b8f7..8be99f2308a 100644 --- a/src/Tests/Framework/EndpointTests/CrudTestBase.cs +++ b/src/Tests/Framework/EndpointTests/CrudTestBase.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; +using Elastic.Managed.Ephemeral; +using Elastic.Xunit.Sdk; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -18,7 +21,7 @@ public abstract class CrudWithNoDeleteTestBase false; } @@ -29,13 +32,13 @@ public abstract class CrudTestBase : IClusterFixture - where TCluster : ClusterBase, new() + public abstract class CrudTestBase : IClusterFixture, IClassFixture + where TCluster : IEphemeralCluster, INestTestCluster, new() where TCreateResponse : class, IResponse where TReadResponse : class, IResponse where TUpdateResponse : class, IResponse @@ -48,13 +51,12 @@ public abstract class CrudTestBase> requestAsync protected virtual string Sanitize(string randomString) => randomString + "-" + this.GetType().Name.Replace("CrudTests", "").ToLowerInvariant(); - protected int IntegrationPort { get; set; } = 9200; protected virtual IElasticClient Client => this._cluster.Client; protected async Task AssertOnAllResponses(LazyResponses responses, Action assert) diff --git a/src/Tests/Framework/EndpointTests/TestState/EndpointUsage.cs b/src/Tests/Framework/EndpointTests/TestState/EndpointUsage.cs index 582aa75106a..61aceca0242 100644 --- a/src/Tests/Framework/EndpointTests/TestState/EndpointUsage.cs +++ b/src/Tests/Framework/EndpointTests/TestState/EndpointUsage.cs @@ -18,16 +18,14 @@ public EndpointUsage() this.CallUniqueValues = new CallUniqueValues(); } - public LazyResponses CallOnce(Func clientUsage, int? k = null) + public LazyResponses CallOnce(Func clientUsage, int k) { - var key = k ?? clientUsage.GetHashCode(); - LazyResponses r; - if (_usages.TryGetValue(key, out r)) return r; + if (_usages.TryGetValue(k, out var r)) return r; lock (_lock) { - if (_usages.TryGetValue(key, out r)) return r; + if (_usages.TryGetValue(k, out r)) return r; var response = clientUsage(); - _usages.TryAdd(key, response); + _usages.TryAdd(k, response); return response; } } diff --git a/src/Tests/Framework/ManagedElasticsearch/ClusterTestClassBase.cs b/src/Tests/Framework/ManagedElasticsearch/ClusterTestClassBase.cs new file mode 100644 index 00000000000..fd56a6ed85d --- /dev/null +++ b/src/Tests/Framework/ManagedElasticsearch/ClusterTestClassBase.cs @@ -0,0 +1,21 @@ +using Elastic.Managed.Ephemeral; +using Elastic.Xunit.XunitPlumbing; +using Nest; +using Tests.Framework.ManagedElasticsearch.Clusters; + +namespace Tests.Framework.ManagedElasticsearch +{ + public abstract class ClusterTestClassBase : IClusterFixture + where TCluster : IEphemeralCluster, INestTestCluster, new() + { + public TCluster Cluster { get; } + public IElasticClient Client => this.Cluster.Client; + + protected ClusterTestClassBase(TCluster cluster) + { + this.Cluster = cluster; + this.Cluster.ClusterConfiguration.ShowElasticsearchOutputAfterStarted = false; + this.Cluster.ClusterConfiguration.CacheEsHomeInstallation = true; + } + } +} diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/BenchmarkCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/BenchmarkCluster.cs index 5ec09461901..428499d4d2f 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/BenchmarkCluster.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/BenchmarkCluster.cs @@ -1,6 +1,11 @@ -using Tests.Framework.Integration; +using System.Collections.Generic; +using Elastic.Managed.Configuration; +using Elastic.Xunit.XunitPlumbing; +using Elastic.Managed.FileSystem; +using Xunit.Abstractions; namespace Tests.Framework.ManagedElasticsearch.Clusters { - public class BenchmarkCluster : ClusterBase { } + public class BenchmarkCluster : ClientTestClusterBase { } + } diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/ClientTestClusterBase.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/ClientTestClusterBase.cs new file mode 100644 index 00000000000..1bdb43a154b --- /dev/null +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/ClientTestClusterBase.cs @@ -0,0 +1,58 @@ +using System; +using System.IO; +using Elastic.Managed.Ephemeral; +using Elastic.Managed.Ephemeral.Plugins; +using Elastic.Xunit; +using Nest; +using Tests.Framework.Configuration; +using Tests.Framework.ManagedElasticsearch.Tasks; + +namespace Tests.Framework.ManagedElasticsearch.Clusters +{ + public class ClientTestClusterBase : XunitClusterBase, INestTestCluster + { + public ClientTestClusterBase() : this(new ClientTestClusterConfiguration()) { } + + public ClientTestClusterBase(params ElasticsearchPlugin[] plugins) : this(new ClientTestClusterConfiguration(plugins: plugins)) { } + + public ClientTestClusterBase(ClientTestClusterConfiguration configuration) : base(configuration) + { + } + + public IElasticClient Client => this.GetOrAddClient(ConnectionSettings); + + protected virtual ConnectionSettings ConnectionSettings(ConnectionSettings s) => s; + } + + public class ClientTestClusterConfiguration : XunitClusterConfiguration + { + public ITestConfiguration TestConfiguration { get; } + + public ClientTestClusterConfiguration(params ElasticsearchPlugin[] plugins) : this(numberOfNodes: 1, plugins: plugins) { } + + public ClientTestClusterConfiguration(ClusterFeatures features = ClusterFeatures.None, int numberOfNodes = 1, params ElasticsearchPlugin[] plugins) + : base(TestClient.Configuration.ElasticsearchVersion, features, new ElasticsearchPlugins(plugins), numberOfNodes) + { + this.TestConfiguration = TestClient.Configuration; + this.ShowElasticsearchOutputAfterStarted = false; + + this.CacheEsHomeInstallation = true; + + this.Add(this.AttributeKey("testingcluster"), "true"); + this.Add(this.AttributeKey("gateway"), "true"); + this.Add("search.remote.connect", "true"); + + this.Add($"script.max_compilations_per_minute", "10000", "<6.0.0-rc1"); + this.Add($"script.max_compilations_rate", "10000/1m", ">=6.0.0-rc1"); + + this.Add($"script.inline", "true", "<6.0.0"); + this.Add($"script.stored", "true", ">5.0.0-alpha1 <6.0.0"); + this.Add($"script.indexed", "true", "<5.0.0-alpha1"); + this.Add($"script.allowed_types", "inline,stored", ">=6.0.0"); + + this.AdditionalBeforeNodeStartedTasks.Add(new WriteAnalysisFiles()); + } + + public string AnalysisFolder => Path.Combine(this.FileSystem.ConfigPath, "analysis"); + } +} diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/ClusterBase.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/ClusterBase.cs deleted file mode 100644 index 927a4dfaef2..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/ClusterBase.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Linq; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.Tasks; -using Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks; - -namespace Tests.Framework.ManagedElasticsearch.Clusters -{ - public abstract class ClusterBase : IDisposable - { - protected ClusterBase() - { - this.NodeConfiguration = new NodeConfiguration(TestClient.Configuration, this); - this.TaskRunner = new NodeTaskRunner(this.NodeConfiguration); - this.Node = new ElasticsearchNode(this.NodeConfiguration); - } - - public ElasticsearchNode Node { get; } - public IElasticClient Client => this.Node.Client; - private NodeConfiguration NodeConfiguration { get; } - private NodeTaskRunner TaskRunner { get; } - - public virtual int MaxConcurrency => 0; - protected virtual string[] AdditionalServerSettings { get; } = { }; - protected virtual InstallationTaskBase[] AdditionalInstallationTasks { get; } = { }; - - public virtual bool EnableSsl { get; } - public virtual bool SkipValidation { get; } - - public virtual int DesiredPort { get; } = 9200; - - public virtual ConnectionSettings ClusterConnectionSettings(ConnectionSettings s) => s; - - protected virtual void SeedNode() { } - - public virtual TimeSpan StartTimeout => TimeSpan.FromMinutes(1); - - public void Start() - { - this.TaskRunner.Install(this.AdditionalInstallationTasks); - var nodeSettings = this.NodeConfiguration.CreateSettings(this.AdditionalServerSettings); - this.TaskRunner.OnBeforeStart(nodeSettings); - this.Node.Start(nodeSettings, this.StartTimeout); - if (!this.SkipValidation) - this.TaskRunner.ValidateAfterStart(this.Node.Client); - if (this.NodeConfiguration.RunIntegrationTests && this.Node.Port != this.DesiredPort) - throw new Exception($"The cluster that was started of type {this.GetType().Name} runs on {this.Node.Port} but this cluster wants {this.DesiredPort}"); - this.SeedNode(); - } - - public void Dispose() - { - this.Node?.Dispose(); - this.TaskRunner?.Dispose(); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/INestTestCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/INestTestCluster.cs new file mode 100644 index 00000000000..924ea08a5cf --- /dev/null +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/INestTestCluster.cs @@ -0,0 +1,9 @@ +using Nest; + +namespace Tests.Framework.ManagedElasticsearch.Clusters +{ + public interface INestTestCluster + { + IElasticClient Client { get; } + } +} \ No newline at end of file diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/IntrusiveOperationCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/IntrusiveOperationCluster.cs index 8b2c2dbdd35..698c462ea9e 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/IntrusiveOperationCluster.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/IntrusiveOperationCluster.cs @@ -1,12 +1,19 @@ -using Tests.Framework.Integration; +using Elastic.Managed.Ephemeral; +using Elastic.Managed.Ephemeral.Plugins; +using Elastic.Xunit; namespace Tests.Framework.ManagedElasticsearch.Clusters { /// /// Use this cluster for heavy API's, either on ES's side or the client (intricate setup etc) /// - public class IntrusiveOperationCluster : ClusterBase + public class IntrusiveOperationCluster : ClientTestClusterBase { - public override int MaxConcurrency => 1; + public IntrusiveOperationCluster() : base(new ClientTestClusterConfiguration( + ElasticsearchPlugin.IngestGeoIp, ElasticsearchPlugin.IngestAttachment + ) + { + MaxConcurrency= 1 + }) { } } } diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/MachineLearningCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/MachineLearningCluster.cs new file mode 100644 index 00000000000..32087646883 --- /dev/null +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/MachineLearningCluster.cs @@ -0,0 +1,60 @@ +using System; +using System.IO; +using Elastic.Managed.Ephemeral; +using Elastic.Managed.Ephemeral.Tasks; +using ICSharpCode.SharpZipLib.GZip; +using ICSharpCode.SharpZipLib.Tar; +using Tests.Framework.ManagedElasticsearch.NodeSeeders; + +namespace Tests.Framework.ManagedElasticsearch.Clusters +{ + public class MachineLearningCluster : XPackCluster + { + public MachineLearningCluster() : base(new XPackClusterConfiguration + { + MaxConcurrency = 1, + DefaultNodeSettings = + { + { "xpack.ml.node_concurrent_job_allocations", "4", ">=5.4.0"}, + { "node.attr.ml.max_open_jobs", "30", ">=5.4.0 <6.0.0"}, + { "xpack.ml.max_open_jobs", "30", ">=6.0.0"} + }, + AdditionalBeforeNodeStartedTasks = + { + new DownloadMachineLearningSampleDataDistribution() + }, + Timeout = TimeSpan.FromMinutes(10), + }) { } + + protected override void SeedCluster() => new MachineLearningSeeder(this.Client, this.ClusterConfiguration.FileSystem).SeedNode(); + } + + public class DownloadMachineLearningSampleDataDistribution : ClusterComposeTask + { + public override void Run(IEphemeralCluster cluster) + { + var to = Path.Combine(cluster.FileSystem.LocalFolder, "server_metrics.tar.gz"); + if (!File.Exists(to)) + { + var from = "https://download.elasticsearch.org/demos/machine_learning/gettingstarted/server_metrics.tar.gz"; + Console.WriteLine($"Download machine learning sample data from: {from}"); + DownloadFile(from, to); + Console.WriteLine($"Downloaded machine learning sample data to: {to}"); + } + + var directoryTarget = Path.Combine(cluster.FileSystem.LocalFolder, "server_metrics"); + + if (Directory.Exists(directoryTarget)) return; + + Directory.CreateDirectory(directoryTarget); + Console.WriteLine($"Unzipping machine learning sample data: {to} ..."); + using (var inStream = File.OpenRead(to)) + using (var gzipStream = new GZipInputStream(inStream)) + using (var tarArchive = TarArchive.CreateInputTarArchive(gzipStream)) + { + tarArchive.ExtractContents(directoryTarget); + tarArchive.Close(); + } + } + } +} diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/ReadOnlyCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/ReadOnlyCluster.cs index 08e5af2527a..8a387101e0f 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/ReadOnlyCluster.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/ReadOnlyCluster.cs @@ -1,12 +1,12 @@ -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.NodeSeeders; -using Tests.Framework.ManagedElasticsearch.Plugins; +using Tests.Framework.ManagedElasticsearch.NodeSeeders; +using static Elastic.Managed.Ephemeral.Plugins.ElasticsearchPlugin; namespace Tests.Framework.ManagedElasticsearch.Clusters { - [RequiresPlugin(ElasticsearchPlugin.MapperMurmer3)] - public class ReadOnlyCluster : ClusterBase + public class ReadOnlyCluster : ClientTestClusterBase { - protected override void SeedNode() => new DefaultSeeder(this.Node).SeedNode(); + public ReadOnlyCluster() : base(MapperMurmur3) { } + + protected override void SeedCluster() => new DefaultSeeder(this.Client).SeedNode(); } } diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/UnbalancedCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/UnbalancedCluster.cs index 28501c53472..55195f34669 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/UnbalancedCluster.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/UnbalancedCluster.cs @@ -1,12 +1,13 @@ using Nest; -using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.NodeSeeders; namespace Tests.Framework.ManagedElasticsearch.Clusters { - public class UnbalancedCluster : ReadOnlyCluster + //TODO does this need a whole separate cluster? + public class UnbalancedCluster : ClientTestClusterBase { - protected override void SeedNode() => - new DefaultSeeder(this.Node, new IndexSettings { NumberOfShards = 3, NumberOfReplicas = 2 }).SeedNode(); + protected override void SeedCluster() => + new DefaultSeeder(this.Client, new IndexSettings { NumberOfShards = 3, NumberOfReplicas = 2 }) + .SeedNode(); } } diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/WritableCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/WritableCluster.cs index 358a67ca4f2..678e0254cd8 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/WritableCluster.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/WritableCluster.cs @@ -1,27 +1,21 @@ -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.NodeSeeders; -using Tests.Framework.ManagedElasticsearch.Plugins; +using Tests.Framework.ManagedElasticsearch.NodeSeeders; +using static Elastic.Managed.Ephemeral.Plugins.ElasticsearchPlugin; namespace Tests.Framework.ManagedElasticsearch.Clusters { - /// - /// Use this cluster for api's that do writes. If they are however intrusive or long running consider IntrusiveOperationCluster instead. - /// - [RequiresPlugin( - ElasticsearchPlugin.MapperAttachments, - ElasticsearchPlugin.IngestGeoIp, - ElasticsearchPlugin.AnalysisKuromoji, - ElasticsearchPlugin.AnalysisIcu, - ElasticsearchPlugin.AnalysisPhonetic, - ElasticsearchPlugin.IngestAttachment - )] - public class WritableCluster : ClusterBase + /// Use this cluster for api's that do writes. If they are however intrusive or long running consider IntrusiveOperationCluster instead. + public class WritableCluster : ClientTestClusterBase { - public override int MaxConcurrency => 4; + public WritableCluster() : base(new ClientTestClusterConfiguration( + IngestGeoIp, IngestAttachment, AnalysisKuromoji, AnalysisIcu, AnalysisPhonetic, MapperMurmur3, MapperAttachment + ) + { + MaxConcurrency = 4 + }) { } - protected override void SeedNode() + protected override void SeedCluster() { - var seeder = new DefaultSeeder(this.Node); + var seeder = new DefaultSeeder(this.Client); seeder.SeedNode(); } } diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackCluster.cs index 3dd67b3b24e..879299f8e3c 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackCluster.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackCluster.cs @@ -1,22 +1,37 @@ -using System; -using System.Linq; +using Elastic.Managed.Ephemeral; +using Elastic.Xunit; +using Elasticsearch.Net; using Nest; -using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.NodeSeeders; -using Tests.Framework.ManagedElasticsearch.Plugins; +using Tests.Framework.ManagedElasticsearch.Tasks; namespace Tests.Framework.ManagedElasticsearch.Clusters { - [RequiresPlugin(ElasticsearchPlugin.XPack)] - public class XPackCluster : ClusterBase + public class XPackClusterConfiguration : ClientTestClusterConfiguration { - protected string[] XPackSettings => TestClient.VersionUnderTestSatisfiedBy(">=5.5.0") - ? new[] {"xpack.security.authc.token.enabled=true"} - : new string[] {} ; + public XPackClusterConfiguration() : this(ClusterFeatures.SSL | ClusterFeatures.Security) { } - protected override string[] AdditionalServerSettings => base.AdditionalServerSettings.Concat(this.XPackSettings).ToArray(); + public XPackClusterConfiguration(ClusterFeatures features) : base(ClusterFeatures.XPack | features, 1) + { + this.ShowElasticsearchOutputAfterStarted = false; - public override ConnectionSettings ClusterConnectionSettings(ConnectionSettings s) => - s.BasicAuthentication("es_admin", "es_admin"); + this.AdditionalBeforeNodeStartedTasks.Add(new EnsureWatcherActionConfigurationInElasticsearchYaml()); + } + } + + public class XPackCluster : XunitClusterBase, INestTestCluster + { + public XPackCluster() : this(new XPackClusterConfiguration()) { } + public XPackCluster(XPackClusterConfiguration configuration) : base(configuration) { } + + protected virtual ConnectionSettings Authenticate(ConnectionSettings s) => s + .BasicAuthentication(ClusterAuthentication.Admin.Username, ClusterAuthentication.Admin.Password); + + protected virtual ConnectionSettings ConnectionSettings(ConnectionSettings s) => s + .ServerCertificateValidationCallback(CertificateValidations.AllowAll); + + public virtual IElasticClient Client => this.GetOrAddClient(s=>Authenticate(ConnectionSettings(s))); + + protected override void SeedCluster() => new DefaultSeeder(this.Client).SeedNode(); } } diff --git a/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackMachineLearningCluster.cs b/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackMachineLearningCluster.cs deleted file mode 100644 index 98934331aa2..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Clusters/XPackMachineLearningCluster.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Linq; -using Nest; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.NodeSeeders; -using Tests.Framework.ManagedElasticsearch.Plugins; -using Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks; - -namespace Tests.Framework.ManagedElasticsearch.Clusters -{ - [RequiresPlugin(ElasticsearchPlugin.XPack)] - public class XPackMachineLearningCluster : XPackCluster - { - private string[] XPackMachineLearningSettings => TestClient.VersionUnderTestSatisfiedBy(">=5.4.0") - ? new[] - { - "xpack.ml.node_concurrent_job_allocations=4", - TestClient.VersionUnderTestSatisfiedBy("<6.0.0") - ? "node.attr.ml.max_open_jobs=30" - : "xpack.ml.max_open_jobs=30" - } - : new string[] {} ; - - protected override void SeedNode() - { - // TODO: seem to be seeding data on unit tests too in ClusterBase.Start? - if (TestClient.Configuration.RunIntegrationTests) - new MachineLearningSeeder(this.Node).SeedNode(); - } - - public override int MaxConcurrency => 1; - - public override TimeSpan StartTimeout => TimeSpan.FromMinutes(10); - - protected override string[] AdditionalServerSettings => base.AdditionalServerSettings.Concat(this.XPackMachineLearningSettings).ToArray(); - - protected override InstallationTaskBase[] AdditionalInstallationTasks => base.AdditionalInstallationTasks.Concat(new InstallationTaskBase[] - { - new DownloadMachineLearningSampleDataDistribution() - }).ToArray(); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/EphemeralClusterExtensions.cs b/src/Tests/Framework/ManagedElasticsearch/EphemeralClusterExtensions.cs new file mode 100644 index 00000000000..1819ad167a3 --- /dev/null +++ b/src/Tests/Framework/ManagedElasticsearch/EphemeralClusterExtensions.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using Elastic.Managed.Ephemeral; +using Elastic.Xunit; +using Elasticsearch.Net; +using Nest; + +namespace Tests.Framework.ManagedElasticsearch +{ + internal static class EphemeralClusterExtensions + { + public static bool RunningFiddler => Process.GetProcessesByName("fiddler").Any(); + + public static IElasticClient GetOrAddClient( + this IEphemeralCluster cluster, + Func createSettings = null, + Func, IConnectionPool> createPool = null) + where TConfig : EphemeralClusterConfiguration + { + createSettings = createSettings ?? (s => s); + return cluster.GetOrAddClient(c => + { + var host = (RunningFiddler) ? "ipv4.fiddler" : "localhost"; + createPool = createPool ?? (uris => new StaticConnectionPool(uris)); + var connectionPool = createPool(c.NodesUris(host)); + var connection = TestClient.Configuration.RunIntegrationTests ? (IConnection)new HttpConnection() : new InMemoryConnection(); + var settings = TestClient.CreateSettings(createSettings, connection, connectionPool); + + var current = (IConnectionConfigurationValues) settings; + var notAlreadyAuthenticated = current.BasicAuthenticationCredentials == null && current.ClientCertificates == null; + var noCertValidation = current.ServerCertificateValidationCallback == null; + + if (cluster.ClusterConfiguration.EnableSecurity && notAlreadyAuthenticated) + settings = settings.BasicAuthentication(ClusterAuthentication.Admin.Username, ClusterAuthentication.Admin.Password); + if (cluster.ClusterConfiguration.EnableSsl && noCertValidation) + { + var ca = new X509Certificate2(cluster.ClusterConfiguration.FileSystem.CaCertificate); + settings = settings.ServerCertificateValidationCallback(CertificateValidations.AllowAll); + } + var client = new ElasticClient(settings); + return client; + }); + } + } +} diff --git a/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/DefaultSeeder.cs b/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/DefaultSeeder.cs index 8f8f1b70f29..a886b5ef0b8 100644 --- a/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/DefaultSeeder.cs +++ b/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/DefaultSeeder.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; -using FluentAssertions; +using Elastic.Managed; using Nest; -using Tests.Framework.ManagedElasticsearch.Nodes; using Tests.Framework.MockData; namespace Tests.Framework.ManagedElasticsearch.NodeSeeders @@ -21,13 +20,13 @@ public class DefaultSeeder private IIndexSettings IndexSettings { get; } - public DefaultSeeder(ElasticsearchNode node, IIndexSettings indexSettings) + public DefaultSeeder(IElasticClient client, IIndexSettings indexSettings) { - this.Client = node.Client; + this.Client = client; this.IndexSettings = indexSettings ?? _defaultIndexSettings; } - public DefaultSeeder(ElasticsearchNode node) : this(node, null) { } + public DefaultSeeder(IElasticClient client) : this(client, null) { } public void SeedNode() { @@ -165,7 +164,7 @@ public static IAnalysis ProjectAnalysisSettings(AnalysisDescriptor analysis) ) ); //normalizers are a new feature since 5.2.0 - if (TestClient.VersionUnderTestSatisfiedBy(">=5.2.0")) + if (TestClient.Configuration.ElasticsearchVersion.InRange(">=5.2.0")) analysis.Normalizers(analyzers => analyzers .Custom("my_normalizer", n => n .Filters("lowercase", "asciifolding") diff --git a/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/MachineLearningSeeder.cs b/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/MachineLearningSeeder.cs index 0eb8627095c..9ca461fcfa6 100644 --- a/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/MachineLearningSeeder.cs +++ b/src/Tests/Framework/ManagedElasticsearch/NodeSeeders/MachineLearningSeeder.cs @@ -2,9 +2,9 @@ using System.IO; using System.Linq; using System.Text; +using Elastic.Managed.FileSystem; using Elasticsearch.Net; using Nest; -using Tests.Framework.ManagedElasticsearch.Nodes; using Tests.Framework.MockData; namespace Tests.Framework.ManagedElasticsearch.NodeSeeders @@ -16,10 +16,10 @@ public class MachineLearningSeeder private IElasticClient Client { get; } public string RoamingFolder { get; } - public MachineLearningSeeder(ElasticsearchNode node) + public MachineLearningSeeder(IElasticClient client, INodeFileSystem fileSystem) { - this.RoamingFolder = node.FileSystem.RoamingFolder; - this.Client = node.Client; + this.RoamingFolder = fileSystem.LocalFolder; + this.Client = client; } // Sometimes we run against an manually started elasticsearch when diff --git a/src/Tests/Framework/ManagedElasticsearch/Nodes/ElasticsearchNode.cs b/src/Tests/Framework/ManagedElasticsearch/Nodes/ElasticsearchNode.cs deleted file mode 100644 index c6103a173c0..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Nodes/ElasticsearchNode.cs +++ /dev/null @@ -1,215 +0,0 @@ -using System; -using System.Collections.Specialized; -using System.IO; -using System.Linq; -using System.Reactive.Disposables; -using System.Reactive.Linq; -using Elasticsearch.Net; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Process; -using Tests.Framework.Versions; -#if !DOTNETCORE -using XplatManualResetEvent = System.Threading.ManualResetEvent; - -#endif - -namespace Tests.Framework.ManagedElasticsearch.Nodes -{ - public class ElasticsearchNode : IDisposable - { - private readonly object _lock = new object(); - - private CompositeDisposable _composite; - private int? ProcessId { get; set; } - - private readonly NodeConfiguration _config; - - public ElasticsearchVersion Version => _config.ElasticsearchVersion; - - public NodeFileSystem FileSystem { get; } - - public bool Started { get; private set; } - - public int Port { get; private set; } - - private bool RunningOnCI { get; } - - public ElasticsearchNode(NodeConfiguration config) - { - this._config = config; - this.FileSystem = config.FileSystem; - this.RunningOnCI = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION")); - this.Port = config.DesiredPort; - if (this._config.RunIntegrationTests && !this._config.TestAgainstAlreadyRunningElasticsearch) return; - } - - private readonly object _lockGetClient = new object { }; - private volatile IElasticClient _client; - - public IElasticClient Client - { - get - { - ThrowIfNotStarted(); - - if (this._client != null) return this._client; - - lock (_lockGetClient) - { - if (this._client != null) return this._client; - - var port = this.Started ? this.Port : 9200; - this._client = TestClient.GetClient(ComposeSettings, port, forceSsl: this._config.EnableSsl); - } - - return this._client; - } - } - - private void ThrowIfNotStarted() - { - if (this.Started || !TestClient.Configuration.RunIntegrationTests) return; - var logFile = Path.Combine(this.FileSystem.LogsPath, $"{this._config.ClusterName}.log"); - throw new Exception($"cannot request a client from an ElasticsearchNode that hasn't started yet. " + - $"Check the log at {logFile} to see if there was an issue starting"); - } - - public void Start(string[] settings, TimeSpan startTimeout) - { - if (!this._config.RunIntegrationTests || this.Started) return; - lock (_lock) - { - if (!this._config.RunIntegrationTests || this.Started) return; - - this.FreeResources(); - - if (UseAlreadyRunningInstance()) - { - this.Started = true; - return; - } - - var handle = new XplatManualResetEvent(false); - var booted = false; - var process = new ObservableProcess(this.FileSystem.Binary, settings); - this._composite = new CompositeDisposable(process); - Console.WriteLine($"Starting: {process.Binary} {process.Arguments}"); - try - { - var subscription = Observable.Using(() => process, p => p.Start()) - .Select(c => new ElasticsearchConsoleOut(this._config.ElasticsearchVersion, c.Error, c.Data)) - .Subscribe(s => this.HandleConsoleMessage(s, handle), e => throw e, () => handle.Set()); - this._composite.Add(subscription); - - if (!handle.WaitOne(startTimeout, true)) - throw new Exception($"Could not start elasticsearch within {startTimeout}"); - - booted = true; - } - finally - { - if (!booted) this.FreeResources(); - } - } - } - - private bool UseAlreadyRunningInstance() - { - var client = this.GetPrivateClient(null, false, this.Port); - return this._config.TestAgainstAlreadyRunningElasticsearch && client.RootNodeInfo().IsValid; - } - - private void HandleConsoleMessage(ElasticsearchConsoleOut consoleOut, XplatManualResetEvent handle) - { - //no need to snoop for metadata if we already started - if (!this._config.RunIntegrationTests || this.Started) return; - - //if we are running on CI and not started dump elasticsearch stdout/err - //before the started notification to help debug failures to start - if (this.RunningOnCI && !this.Started) - { - if (consoleOut.Error) Console.Error.WriteLine(consoleOut.Data); - else Console.WriteLine(consoleOut.Data); - } - - if (consoleOut.Error && !this.Started && !string.IsNullOrWhiteSpace(consoleOut.Data)) throw new Exception(consoleOut.Data); - - string version; - int? pid; - int port; - - if (this.ProcessId == null && consoleOut.TryParseNodeInfo(out version, out pid)) - { - var startedVersion = ElasticsearchVersion.GetOrAdd(version); - this.ProcessId = pid; - if (this.Version != startedVersion) - throw new Exception($"Booted elasticsearch is version {startedVersion} but the test config dictates {this.Version}"); - } - else if (consoleOut.TryGetPortNumber(out port)) - this.Port = port; - else if (consoleOut.TryGetStartedConfirmation()) - { - this.Started = true; - handle.Set(); - } - } - - private ConnectionSettings ClusterSettings(ConnectionSettings s, Func settings) => - AddClusterSpecificConnectionSettings(AppendClusterNameToHttpHeaders(settings(s))); - - private IElasticClient GetPrivateClient(Func settings, bool forceInMemory, int port) - { - settings = settings ?? (s => s); - var client = forceInMemory - ? TestClient.GetInMemoryClient(s => ClusterSettings(s, settings), port) - : TestClient.GetClient(s => ClusterSettings(s, settings), port, forceSsl: this._config.EnableSsl); - return client; - } - - private ConnectionSettings ComposeSettings(ConnectionSettings s) => - AddClusterSpecificConnectionSettings(AppendClusterNameToHttpHeaders(s)); - - private ConnectionSettings AddClusterSpecificConnectionSettings(ConnectionSettings settings) => - this._config.ClusterConnectionSettings(settings); - - private ConnectionSettings AppendClusterNameToHttpHeaders(ConnectionSettings settings) - { - IConnectionConfigurationValues values = settings; - var headers = values.Headers ?? new NameValueCollection(); - headers.Add("ClusterName", this._config.ClusterName); - return settings; - } - - private void FreeResources() - { - var hasStarted = this.Started; - this.Started = false; - - this._composite?.Dispose(); - - var esProcess = this.ProcessId == null - ? null - : System.Diagnostics.Process.GetProcesses().FirstOrDefault(p => p.Id == this.ProcessId.Value); - if (esProcess != null) - { - Console.WriteLine($"Killing elasticsearch PID {this.ProcessId}"); - esProcess.Kill(); - esProcess.WaitForExit(5000); - esProcess.Close(); - } - - if (!this._config.RunIntegrationTests || !hasStarted) return; - Console.WriteLine($"Stopping... node has started and ran integrations: {this._config.RunIntegrationTests}"); - Console.WriteLine($"Node started on port: {this.Port} using PID: {this.ProcessId}"); - } - - public void Stop() - { - lock (_lock) this.FreeResources(); - } - - public void Dispose() => this.Stop(); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Nodes/NodeConfiguration.cs b/src/Tests/Framework/ManagedElasticsearch/Nodes/NodeConfiguration.cs deleted file mode 100644 index a76576f5cad..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Nodes/NodeConfiguration.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.ManagedElasticsearch.Clusters; -using Tests.Framework.ManagedElasticsearch.Plugins; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Nodes -{ - public class NodeConfiguration : ITestConfiguration - { - private readonly ClusterBase _cluster; - public TestMode Mode { get; } - public ElasticsearchVersion ElasticsearchVersion { get; } - public bool ForceReseed { get; } - public bool TestAgainstAlreadyRunningElasticsearch { get; } - public bool RunIntegrationTests { get; } - public bool RunUnitTests { get; } - public string ClusterFilter { get; } - public string TestFilter { get; } - public NodeFileSystem FileSystem { get; } - public int DesiredPort { get; } - public int Seed { get; } - - public ElasticsearchPlugin[] RequiredPlugins { get; } = { }; - - public bool XPackEnabled => this.RequiredPlugins.Contains(ElasticsearchPlugin.XPack); - public bool EnableSsl { get; } - public ConnectionSettings ClusterConnectionSettings(ConnectionSettings s) => _cluster.ClusterConnectionSettings(s); - - private readonly string _uniqueSuffix = Guid.NewGuid().ToString("N").Substring(0, 6); - public string ClusterMoniker => this._cluster.GetType().Name.Replace("Cluster", "").ToLowerInvariant(); - public string ClusterName => $"{this.ClusterMoniker}-cluster-{_uniqueSuffix}"; - public string NodeName => $"{this.ClusterMoniker}-node-{_uniqueSuffix}"; - - private List DefaultNodeSettings { get; } - - public NodeConfiguration(ITestConfiguration configuration, ClusterBase cluster) - { - this._cluster = cluster; - this.EnableSsl = cluster.SkipValidation; - - this.RequiredPlugins = ClusterRequiredPlugins(cluster); - this.Mode = configuration.Mode; - - var v = configuration.ElasticsearchVersion; - this.ElasticsearchVersion = v; - this.Seed = configuration.Seed; - this.ForceReseed = configuration.ForceReseed; - this.TestAgainstAlreadyRunningElasticsearch = configuration.TestAgainstAlreadyRunningElasticsearch; - this.RunIntegrationTests = configuration.RunIntegrationTests; - this.RunUnitTests = configuration.RunUnitTests; - this.ClusterFilter = configuration.ClusterFilter; - this.TestFilter = configuration.TestFilter; - this.FileSystem = new NodeFileSystem(configuration.ElasticsearchVersion, this.ClusterName, this.NodeName); - this.DesiredPort = cluster.DesiredPort; - - var attr = v.Major >= 5 ? "attr." : ""; - var indexedOrStored = v > ElasticsearchVersion.GetOrAdd("5.0.0-alpha1") ? "stored" : "indexed"; - var shieldOrSecurity = v > ElasticsearchVersion.GetOrAdd("5.0.0-alpha1") ? "xpack.security" : "shield"; - var es = v > ElasticsearchVersion.GetOrAdd("5.0.0-alpha2") ? "" : "es."; - var b = this.XPackEnabled.ToString().ToLowerInvariant(); - var sslEnabled = this.EnableSsl.ToString().ToLowerInvariant(); - this.DefaultNodeSettings = new List - { - $"{es}cluster.name={this.ClusterName}", - $"{es}node.name={this.NodeName}", - $"{es}path.repo={this.FileSystem.RepositoryPath}", - $"{es}path.data={this.FileSystem.DataPath}", - $"{es}http.port={this.DesiredPort}", - $"{es}script.inline=true", - $"{es}script.max_compilations_per_minute=10000", - $"{es}script.{indexedOrStored}=true", - $"{es}node.{attr}testingcluster=true", - $"{es}node.{attr}gateway=true", - $"{es}{shieldOrSecurity}.enabled={b}", - $"{es}{shieldOrSecurity}.http.ssl.enabled={sslEnabled}", - $"{es}{shieldOrSecurity}.authc.realms.pki1.enabled={sslEnabled}", - - }; - if (v >= ElasticsearchVersion.GetOrAdd("5.4.0")) - this.DefaultNodeSettings.Add($"{es}search.remote.connect=true"); - } - - public string[] CreateSettings(string[] additionalSettings) - { - var settingMarker = this.ElasticsearchVersion.Major >= 5 ? "-E " : "-D"; - return DefaultNodeSettings - .Concat(additionalSettings ?? Enumerable.Empty()) - //allow additional settings to take precedence over already DefaultNodeSettings - //without relying on elasticsearch to dedup, 5.4.0 no longer allows passing the same setting twice - //on the command with the latter taking precedence - .GroupBy(setting => setting.Split(new [] {'='}, 2, StringSplitOptions.RemoveEmptyEntries)[0]) - .Select(g => g.Last()) - .Select(s => $"{settingMarker}{s}") - .ToArray(); - } - - private static ElasticsearchPlugin[] ClusterRequiredPlugins(ClusterBase cluster) => - cluster.GetType().GetAttributes().SelectMany(a => a.Plugins).ToArray(); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Nodes/NodeFileSystem.cs b/src/Tests/Framework/ManagedElasticsearch/Nodes/NodeFileSystem.cs deleted file mode 100644 index 53906f3e9f1..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Nodes/NodeFileSystem.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Nodes -{ - /// Strongly types file system paths for a node - public class NodeFileSystem - { - private readonly ElasticsearchVersion _version; - private readonly string _clusterName; - - public string ElasticsearchHome { get; } - private static bool IsMono { get; } = Type.GetType("Mono.Runtime") != null; - public string BinarySuffix => IsMono || Path.PathSeparator == '/' ? "" : ".bat"; - public string Binary => Path.Combine(this.ElasticsearchHome, "bin", "elasticsearch") + BinarySuffix; - public string PluginBinary => - Path.Combine(this.ElasticsearchHome, "bin", (this._version.Major >= 5 ? "elasticsearch-" : "" ) +"plugin") + BinarySuffix; - public string ConfigPath => Path.Combine(ElasticsearchHome, "config"); - public string DataPath => Path.Combine(ElasticsearchHome, "data", this._clusterName); - public string LogsPath => Path.Combine(ElasticsearchHome, "logs"); - public string RepositoryPath => Path.Combine(RoamingFolder, "repositories"); - - public string RoamingFolder { get; } - public string AnalysisFolder => Path.Combine(this.ConfigPath, "analysis"); - public string DownloadZipLocation => Path.Combine(this.RoamingFolder, this._version.Zip); - public string TaskRunnerFile => Path.Combine(this.RoamingFolder, "taskrunner.log"); - - - //certificates - public string CertGenBinary => Path.Combine(this.ElasticsearchHome, "bin", "x-pack", "certgen") + BinarySuffix; - - public string CertificateFolderName => "node-certificates"; - public string CertificateNodeName => "node01"; - public string ClientCertificateName => "cn=John Doe,ou=example,o=com"; - public string ClientCertificateFilename => "john_doe"; - public string CertificatesPath => Path.Combine(this.ConfigPath, this.CertificateFolderName); - public string CaCertificate => Path.Combine(this.CertificatesPath, "ca", "ca") + ".crt"; - public string NodePrivateKey => Path.Combine(this.CertificatesPath, this.CertificateNodeName, this.CertificateNodeName) + ".key"; - public string NodeCertificate => Path.Combine(this.CertificatesPath, this.CertificateNodeName, this.CertificateNodeName) + ".crt"; - public string ClientCertificate => Path.Combine(this.CertificatesPath, this.ClientCertificateFilename, this.ClientCertificateFilename) + ".crt"; - public string ClientPrivateKey => Path.Combine(this.CertificatesPath, this.ClientCertificateFilename, this.ClientCertificateFilename) + ".key"; - - public string UnusedCertificateFolderName => $"unused-{CertificateFolderName}"; - public string UnusedCertificatesPath => Path.Combine(this.ConfigPath, this.UnusedCertificateFolderName); - public string UnusedCaCertificate => Path.Combine(this.UnusedCertificatesPath, "ca", "ca") + ".crt"; - public string UnusedClientCertificate => Path.Combine(this.UnusedCertificatesPath, this.ClientCertificateFilename, this.ClientCertificateFilename) + ".crt"; - - public NodeFileSystem(ElasticsearchVersion version, string clusterName, string nodeName) - { - this._version = version; - this._clusterName = clusterName; - - var appData = GetApplicationDataDirectory() ?? "/tmp/NEST"; - this.RoamingFolder = Path.Combine(appData, "NEST", this._version.FullyQualifiedVersion); - this.ElasticsearchHome = Path.Combine(this.RoamingFolder, this._version.FolderInZip); - } - - private static string GetApplicationDataDirectory() - { -#if DOTNETCORE - return Environment.GetEnvironmentVariable("APPDATA"); -#else - return Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); -#endif - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPlugin.cs b/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPlugin.cs deleted file mode 100644 index 190dfa50222..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPlugin.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Reflection; - -namespace Tests.Framework.ManagedElasticsearch.Plugins -{ - public enum ElasticsearchPlugin - { - [Moniker("delete-by-query")] DeleteByQuery, - [Moniker("cloud-azure")] CloudAzure, - [Moniker("mapper-attachments")] MapperAttachments, - [Moniker("mapper-murmur3")] MapperMurmer3, - [Moniker("x-pack")] XPack, - [Moniker("ingest-geoip")] IngestGeoIp, - [Moniker("ingest-attachment")] IngestAttachment, - [Moniker("analysis-kuromoji")] AnalysisKuromoji, - [Moniker("analysis-icu")] AnalysisIcu, - [Moniker("analysis-phonetic")] AnalysisPhonetic - } -} - diff --git a/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPluginCollection.cs b/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPluginCollection.cs deleted file mode 100644 index edcbd244d23..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPluginCollection.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Collections.ObjectModel; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Plugins -{ - public class ElasticsearchPluginCollection : KeyedCollection - { - public static ElasticsearchPluginCollection Supported { get; } = - new ElasticsearchPluginCollection - { - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.DeleteByQuery, version => version < ElasticsearchVersion.GetOrAdd("5.0.0-alpha3")), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.MapperAttachments), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.MapperMurmer3), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.XPack), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.IngestGeoIp, version => version >= ElasticsearchVersion.GetOrAdd("5.0.0-alpha3")), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.IngestAttachment, version => version >= ElasticsearchVersion.GetOrAdd("5.0.0-alpha3")), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.AnalysisKuromoji), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.AnalysisIcu), - new ElasticsearchPluginConfiguration(ElasticsearchPlugin.AnalysisPhonetic) - }; - - protected override ElasticsearchPlugin GetKeyForItem(ElasticsearchPluginConfiguration item) => item.Plugin; - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPluginConfiguration.cs b/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPluginConfiguration.cs deleted file mode 100644 index d0ff9d99ef1..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Plugins/ElasticsearchPluginConfiguration.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Plugins -{ - public class ElasticsearchPluginConfiguration - { - private readonly Func _isValid; - - public ElasticsearchPlugin Plugin { get; } - - /// - /// The moniker the plugin is known by in Elasticsearch e.g what /_cat/plugins will return for it - /// - public string Moniker { get; internal set; } - - /// - /// The folder name under /plugins, defaults to moniker - /// - public string FolderName { get; internal set; } - - public ElasticsearchPluginConfiguration(ElasticsearchPlugin plugin) : this(plugin, null) { } - - public ElasticsearchPluginConfiguration(ElasticsearchPlugin plugin, Func isValid) - { - Plugin = plugin; - Moniker = plugin.Moniker(); - FolderName = plugin.Moniker(); - _isValid = isValid ?? (v => true); - } - - public bool IsValid(ElasticsearchVersion version) => _isValid(version); - - public string SnapshotDownloadUrl(ElasticsearchVersion version) => - $"https://snapshots.elastic.co/downloads/elasticsearch-plugins/{Moniker}/{SnapshotZip(version)}"; - - public string SnapshotZip(ElasticsearchVersion version) => $"{Moniker}-{version.Version}.zip"; - } -} \ No newline at end of file diff --git a/src/Tests/Framework/ManagedElasticsearch/Plugins/MonikerAttribute.cs b/src/Tests/Framework/ManagedElasticsearch/Plugins/MonikerAttribute.cs deleted file mode 100644 index 9c554062b52..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Plugins/MonikerAttribute.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Reflection; - -namespace Tests.Framework.ManagedElasticsearch.Plugins -{ - [AttributeUsage(AttributeTargets.Field)] - public class MonikerAttribute : Attribute - { - public string Moniker { get; } - - public MonikerAttribute(string moniker) - { - if (moniker == null) throw new ArgumentNullException(nameof(moniker)); - if (moniker.Length == 0) throw new ArgumentException("must have a value"); - Moniker = moniker; - } - } - public static class ElasticsearchPluginExtensions - { - public static string Moniker(this ElasticsearchPlugin plugin) - { - var info = typeof(ElasticsearchPlugin).GetField(plugin.ToString()); - var da = info.GetCustomAttribute(); - - if (da == null) throw new InvalidOperationException($"{plugin} plugin must have a {nameof(MonikerAttribute)}"); - return da.Moniker; - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Process/ElasticsearchConsoleOut.cs b/src/Tests/Framework/ManagedElasticsearch/Process/ElasticsearchConsoleOut.cs deleted file mode 100644 index ac0598a33ea..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Process/ElasticsearchConsoleOut.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System; -using System.Globalization; -using System.Text.RegularExpressions; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Process -{ - public class ElasticsearchConsoleOut : ConsoleOut - { -/* -[2016-09-26T11:43:17,314][INFO ][o.e.n.Node ] [readonly-node-a9c5f4] initializing ... -[2016-09-26T11:43:17,470][INFO ][o.e.e.NodeEnvironment ] [readonly-node-a9c5f4] using [1] data paths, mounts [[BOOTCAMP (C:)]], net usable_space [27.7gb], net total_space [129.7gb], spins? [unknown], types [NTFS] -[2016-09-26T11:43:17,471][INFO ][o.e.e.NodeEnvironment ] [readonly-node-a9c5f4] heap size [1.9gb], compressed ordinary object pointers [true] -[2016-09-26T11:43:17,475][INFO ][o.e.n.Node ] [readonly-node-a9c5f4] version[5.0.0-beta1], pid[13172], build[7eb6260/2016-09-20T23:10:37.942Z], OS[Windows 10/10.0/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_101/25.101-b13] -[2016-09-26T11:43:19,160][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [aggs-matrix-stats] -[2016-09-26T11:43:19,160][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [ingest-common] -[2016-09-26T11:43:19,161][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [lang-expression] -[2016-09-26T11:43:19,161][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [lang-groovy] -[2016-09-26T11:43:19,161][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [lang-mustache] -[2016-09-26T11:43:19,162][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [lang-painless] -[2016-09-26T11:43:19,162][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [percolator] -[2016-09-26T11:43:19,162][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [reindex] -[2016-09-26T11:43:19,162][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [transport-netty3] -[2016-09-26T11:43:19,163][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded module [transport-netty4] -[2016-09-26T11:43:19,163][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded plugin [ingest-attachment] -[2016-09-26T11:43:19,164][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded plugin [ingest-geoip] -[2016-09-26T11:43:19,164][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded plugin [mapper-attachments] -[2016-09-26T11:43:19,164][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded plugin [mapper-murmur3] -[2016-09-26T11:43:19,164][INFO ][o.e.p.PluginsService ] [readonly-node-a9c5f4] loaded plugin [x-pack] -[2016-09-26T11:43:19,374][WARN ][d.m.attachment ] [mapper-attachments] plugin has been deprecated and will be replaced by [ingest-attachment] plugin. -[2016-09-26T11:43:22,179][INFO ][o.e.n.Node ] [readonly-node-a9c5f4] initialized -[2016-09-26T11:43:22,180][INFO ][o.e.n.Node ] [readonly-node-a9c5f4] starting ... -*/ - public DateTime Date { get; } - public string Level { get; } - public string Section { get; } - public string Node { get; } - public string Message { get; } - - private static readonly Regex ConsoleLineParser = - new Regex(@"\[(?.*?)\]\[(?.*?)\]\[(?
.*?)\] \[(?.*?)\] (?.+)"); - - public ElasticsearchConsoleOut(ElasticsearchVersion version, bool error, string consoleLine) : base(error, consoleLine) - { - if (string.IsNullOrEmpty(consoleLine)) return; - - var match = ConsoleLineParser.Match(consoleLine); - if (!match.Success) return; - var dateString = match.Groups["date"].Value.Trim(); - if (version.Major >= 5) - Date = DateTime.ParseExact(dateString, "yyyy-MM-ddTHH:mm:ss,fff", CultureInfo.CurrentCulture); - else - Date = DateTime.ParseExact(dateString, "yyyy-MM-dd HH:mm:ss,fff", CultureInfo.CurrentCulture); - Level = match.Groups["level"].Value.Trim(); - Section = match.Groups["section"].Value.Trim().Replace("org.elasticsearch.", ""); - Node = match.Groups["node"].Value.Trim(); - Message = match.Groups["message"].Value.Trim(); - } - - //[2016-09-26T11:43:17,475][INFO ][o.e.n.Node ] [readonly-node-a9c5f4] version[5.0.0-beta1], pid[13172], build[7eb6260/2016-09-20T23:10:37.942Z], OS[Windows 10/10.0/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_101/25.101-b13] - private static readonly Regex InfoParser = - new Regex(@"version\[(?.*)\], pid\[(?.*)\], build\[(?.+)\]"); - - public bool InNodeSection => this.Section == "o.e.n.Node" || this.Section == "node"; - public bool InHttpSection => this.Section == "o.e.h.HttpServer" || this.Section == "http"; - - public bool TryParseNodeInfo(out string version, out int? pid) - { - version = null; - pid = null; - if (!this.InNodeSection) return false; - - var match = InfoParser.Match(this.Message.Replace(Environment.NewLine, "")); - if (!match.Success) return false; - - version = match.Groups["version"].Value.Trim(); - pid = int.Parse(match.Groups["pid"].Value.Trim()); - return true; - } - - public bool TryGetStartedConfirmation() - { - if (!this.InNodeSection) return false; - return this.Message.Trim() == "started"; - } - - private static readonly Regex PortParser = - new Regex(@"bound_address(es)? {.+\:(?\d+)}"); - - public bool TryGetPortNumber(out int port) - { - port = 0; - if (!this.InHttpSection) return false; - - if (string.IsNullOrWhiteSpace(this.Message)) return false; - - var match = PortParser.Match(this.Message); - if (!match.Success) return false; - - var portString = match.Groups["port"].Value.Trim(); - port = int.Parse(portString); - return true; - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Process/ObservableProcess.cs b/src/Tests/Framework/ManagedElasticsearch/Process/ObservableProcess.cs deleted file mode 100644 index 99e9f2ab212..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Process/ObservableProcess.cs +++ /dev/null @@ -1,152 +0,0 @@ -using System; -using System.Diagnostics; -using System.Reactive; -using System.Reactive.Disposables; -using System.Reactive.Linq; - -namespace Tests.Framework.ManagedElasticsearch.Process -{ - public class ObservableProcess : IDisposable - { - public ObservableProcess(string bin, params string[] args) - { - this.Binary = bin; - this.Arguments = string.Join(" ", args); - this.Process = new System.Diagnostics.Process - { - EnableRaisingEvents = true, - StartInfo = - { - FileName = this.Binary, - Arguments = this.Arguments, - CreateNoWindow = true, - UseShellExecute = false, - RedirectStandardOutput = true, - RedirectStandardError = true, - RedirectStandardInput = false - } - }; - } - - private bool Started { get; set; } - - public int? ExitCode { get; set; } - - public string Binary { get; private set; } - - public System.Diagnostics.Process Process { get; private set; } - - public string Arguments { get; private set; } - - public IObservable Start() - { - return Observable.Create(observer => - { - // listen to stdout and stderr - var stdOut = this.Process.CreateStandardOutputObservable(); - var stdErr = this.Process.CreateStandardErrorObservable(); - - var stdOutSubscription = stdOut.Subscribe(observer); - var stdErrSubscription = stdErr.Subscribe(observer); - - var processExited = Observable.FromEventPattern(h => this.Process.Exited += h, h => this.Process.Exited -= h); - var processError = CreateProcessExitSubscription(this.Process, processExited, observer); - - if (!this.Process.Start()) - throw new Exception($"Failed to start observable process: {this.Binary}"); - - this.Process.BeginOutputReadLine(); - this.Process.BeginErrorReadLine(); - this.Started = true; - - return new CompositeDisposable(stdOutSubscription, stdErrSubscription, processError); - }); - } - - private IDisposable CreateProcessExitSubscription(System.Diagnostics.Process process, IObservable> processExited, IObserver observer) - { - return processExited.Subscribe(args => - { - try - { - this.ExitCode = process?.ExitCode; - if (process?.ExitCode > 0) - { - observer.OnError(new Exception( - $"Process '{process.StartInfo.FileName}' terminated with error code {process.ExitCode}")); - } - else observer.OnCompleted(); - } - finally - { - this.Started = false; - process?.Close(); - } - }); - } - - public void Stop() - { - if (this.Started) - { - try - { - this.Process?.Kill(); - this.Process?.WaitForExit(2000); - this.Process?.Close(); - } - catch (Exception) - { - } - } - this.Started = false; - } - - public void Dispose() => this.Stop(); - } - - public class ConsoleOut - { - public bool Error { get; } - public string Data { get; } - protected ConsoleOut(bool error, string data) - { - this.Error = error; - this.Data = data; - } - - public static ConsoleOut ErrorOut(string data) => new ConsoleOut(true, data); - public static ConsoleOut Out(string data) => new ConsoleOut(false, data); - } - - public static class RxProcessUtilities - { - public static IObservable CreateStandardErrorObservable(this System.Diagnostics.Process process) - { - var receivedStdErr = - Observable.FromEventPattern - (h => process.ErrorDataReceived += h, h => process.ErrorDataReceived -= h) - .Select(e => ConsoleOut.ErrorOut(e.EventArgs.Data)); - - return Observable.Create(observer => - { - var cancel = Disposable.Create(process.CancelErrorRead); - return new CompositeDisposable(cancel, receivedStdErr.Subscribe(observer)); - }); - } - - public static IObservable CreateStandardOutputObservable(this System.Diagnostics.Process process) - { - var receivedStdOut = - Observable.FromEventPattern - (h => process.OutputDataReceived += h, h => process.OutputDataReceived -= h) - .Select(e => ConsoleOut.Out(e.EventArgs.Data)); - - return Observable.Create(observer => - { - var cancel = Disposable.Create(process.CancelOutputRead); - return new CompositeDisposable(cancel, receivedStdOut.Subscribe(observer)); - }); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Process/XplatManualResetEvent.cs b/src/Tests/Framework/ManagedElasticsearch/Process/XplatManualResetEvent.cs deleted file mode 100644 index 90535ab24c5..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Process/XplatManualResetEvent.cs +++ /dev/null @@ -1,41 +0,0 @@ -#if DOTNETCORE -using System; -using System.Threading; - -namespace Tests.Framework.Integration -{ - // Investigate problem with ManualResetEvent on CoreClr - // Maybe due to .WaitOne() not taking exitContext? - public class XplatManualResetEvent - { - private readonly object _lock = new object(); - private bool _notified; - - public XplatManualResetEvent(bool initialState) - { - _notified = initialState; - } - - public void Set() - { - lock (_lock) - { - if (_notified) return; - _notified = true; - Monitor.Pulse(_lock); - } - } - - public bool WaitOne(TimeSpan timeout, bool exitContext) - { - lock (_lock) - { - bool exit = true; - if (_notified) return exit; - exit = Monitor.Wait(_lock, timeout); - return exit; - } - } - } -} -#endif diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/AfterNodeStoppedTasks/AfterNodeStoppedTaskBase.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/AfterNodeStoppedTasks/AfterNodeStoppedTaskBase.cs deleted file mode 100644 index b1948662372..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/AfterNodeStoppedTasks/AfterNodeStoppedTaskBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.AfterNodeStoppedTasks -{ - public abstract class AfterNodeStoppedTaskBase - { - public abstract void Run(NodeConfiguration config, NodeFileSystem fileSystem); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/AfterNodeStoppedTasks/CleanUpDirectoriesAfterNodeStopped.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/AfterNodeStoppedTasks/CleanUpDirectoriesAfterNodeStopped.cs deleted file mode 100644 index c8f950a182d..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/AfterNodeStoppedTasks/CleanUpDirectoriesAfterNodeStopped.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.AfterNodeStoppedTasks -{ - public class CleanUpDirectoriesAfterNodeStopped : AfterNodeStoppedTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fs) - { - if (Directory.Exists(fs.DataPath)) - { - Console.WriteLine($"attempting to delete cluster data: {fs.DataPath}"); - Directory.Delete(fs.DataPath, true); - } - - if (Directory.Exists(fs.LogsPath)) - { - var files = Directory.GetFiles(fs.LogsPath, config.ClusterName + "*.log"); - foreach (var f in files) - { - Console.WriteLine($"attempting to delete log file: {f}"); - File.Delete(f); - } - } - - if (Directory.Exists(fs.RepositoryPath)) - { - Console.WriteLine("attempting to delete repositories"); - Directory.Delete(fs.RepositoryPath, true); - } - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/BeforeStartNodeTasks/BeforeStartNodeTaskBase.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/BeforeStartNodeTasks/BeforeStartNodeTaskBase.cs deleted file mode 100644 index b108e88c682..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/BeforeStartNodeTasks/BeforeStartNodeTaskBase.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.BeforeStartNodeTasks -{ - public abstract class BeforeStartNodeTaskBase - { - public abstract void Run(NodeConfiguration config, NodeFileSystem fileSystem, string[] serverSettings); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/BeforeStartNodeTasks/CreateEasyRunClusterBatFile.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/BeforeStartNodeTasks/CreateEasyRunClusterBatFile.cs deleted file mode 100644 index 70114818a3b..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/BeforeStartNodeTasks/CreateEasyRunClusterBatFile.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.IO; -using System.Linq; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.BeforeStartNodeTasks -{ - public class CreateEasyRunClusterBatFile : BeforeStartNodeTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fs, string[] serverSettings) - { - var clusterMoniker = config.ClusterMoniker; - var v = config.ElasticsearchVersion; - var easyRunBat = Path.Combine(fs.RoamingFolder, $"run-{clusterMoniker}.bat"); - if (File.Exists(easyRunBat)) return; - var badSettings = new[] {"node.name", "cluster.name"}; - var batSettings = string.Join(" ", serverSettings.Where(s => !badSettings.Any(s.Contains))); - File.WriteAllText(easyRunBat, $@"elasticsearch-{v}\bin\elasticsearch.bat {batSettings}"); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureWatcherActionConfigurationInElasticsearchYaml.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/EnsureWatcherActionConfigurationInElasticsearchYaml.cs similarity index 60% rename from src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureWatcherActionConfigurationInElasticsearchYaml.cs rename to src/Tests/Framework/ManagedElasticsearch/Tasks/EnsureWatcherActionConfigurationInElasticsearchYaml.cs index d9e976a1aaf..7260b163a60 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureWatcherActionConfigurationInElasticsearchYaml.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Tasks/EnsureWatcherActionConfigurationInElasticsearchYaml.cs @@ -1,21 +1,22 @@ using System.IO; using System.Linq; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; +using Elastic.Managed.ConsoleWriters; +using Elastic.Managed.Ephemeral; +using Elastic.Managed.Ephemeral.Tasks; -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks +namespace Tests.Framework.ManagedElasticsearch.Tasks { - public class EnsureWatcherActionConfigurationInElasticsearchYaml : InstallationTaskBase + public class EnsureWatcherActionConfigurationInElasticsearchYaml : ClusterComposeTask { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) + public override void Run(IEphemeralCluster cluster) { - var rolesConfig = Path.Combine(fileSystem.ElasticsearchHome, "config", "elasticsearch.yml"); - var lines = File.ReadAllLines(rolesConfig).ToList(); + var configFile = Path.Combine(cluster.FileSystem.ConfigPath, "elasticsearch.yml"); + var lines = File.ReadAllLines(configFile).ToList(); var saveFile = false; - var prefix = config.ElasticsearchVersion.Major >= 5 ? "xpack.notification" : "watcher.actions"; - var postfix = config.ElasticsearchVersion.Major >= 5 ? string.Empty : ".service"; + var v = cluster.ClusterConfiguration.Version; + var prefix = v.Major >= 5 ? "xpack.notification" : "watcher.actions"; + var postfix = v.Major >= 5 ? string.Empty : ".service"; // set up for Watcher HipChat action if (!lines.Any(line => line.StartsWith($"{prefix}.hipchat{postfix}:"))) @@ -27,7 +28,6 @@ public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) " account:", " notify-monitoring:", " profile: user", - " user: watcher-user@example.com", " auth_token: hipchat_auth_token", string.Empty }); @@ -67,7 +67,8 @@ public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) saveFile = true; } - if (saveFile) File.WriteAllLines(rolesConfig, lines); + if (saveFile) File.WriteAllLines(configFile, lines); + cluster.Writer.WriteDiagnostic($"{{{nameof(EnsureWatcherActionConfigurationInElasticsearchYaml)}}} {(saveFile ? "saved" : "skipped saving")} watcher config [{configFile}]"); } } } diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/CreateEasyRunBatFile.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/CreateEasyRunBatFile.cs deleted file mode 100644 index a8f38bebfa0..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/CreateEasyRunBatFile.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class CreateEasyRunBatFile : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) => - WriteFileIfNotExist(Path.Combine(fileSystem.ElasticsearchHome, "run.bat"), @"bin\elasticsearch.bat"); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/CreateNestApplicationDirectory.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/CreateNestApplicationDirectory.cs deleted file mode 100644 index 4bb2ee45dc0..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/CreateNestApplicationDirectory.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class CreateNestApplicationDirectory : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - if (!Directory.Exists(fileSystem.RoamingFolder)) - Directory.CreateDirectory(fileSystem.RoamingFolder); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/DownloadCurrentElasticsearchDistribution.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/DownloadCurrentElasticsearchDistribution.cs deleted file mode 100644 index b9839f125c1..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/DownloadCurrentElasticsearchDistribution.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class DownloadCurrentElasticsearchDistribution : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - var v = config.ElasticsearchVersion; - var from = v.DownloadUrl; - var to = fileSystem.DownloadZipLocation; - if (File.Exists(to)) return; - Console.WriteLine($"Download elasticsearch: {v} from {from}"); - this.DownloadFile(from, to); - Console.WriteLine($"Downloaded elasticsearch: {v}"); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/DownloadMachineLearningSampleDataDistribution.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/DownloadMachineLearningSampleDataDistribution.cs deleted file mode 100644 index 1626fbee5ea..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/DownloadMachineLearningSampleDataDistribution.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.IO; -using ICSharpCode.SharpZipLib.GZip; -using ICSharpCode.SharpZipLib.Tar; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class DownloadMachineLearningSampleDataDistribution : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - var to = Path.Combine(config.FileSystem.RoamingFolder, "server_metrics.tar.gz"); - if (!File.Exists(to)) - { - var from = "https://download.elasticsearch.org/demos/machine_learning/gettingstarted/server_metrics.tar.gz"; - Console.WriteLine($"Download machine learning sample data from: {from}"); - this.DownloadFile(from, to); - Console.WriteLine($"Downloaded machine learning sample data to: {to}"); - } - - var directoryTarget = Path.Combine(config.FileSystem.RoamingFolder, "server_metrics"); - - if (Directory.Exists(directoryTarget)) return; - - Directory.CreateDirectory(directoryTarget); - Console.WriteLine($"Unzipping machine learning sample data: {to} ..."); - using (var inStream = File.OpenRead(to)) - using (var gzipStream = new GZipInputStream(inStream)) - using (var tarArchive = TarArchive.CreateInputTarArchive(gzipStream)) - { - tarArchive.ExtractContents(directoryTarget); - tarArchive.Close(); - } - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureJavaHomeEnvironmentVariableIsSet.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureJavaHomeEnvironmentVariableIsSet.cs deleted file mode 100644 index b4202266f93..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureJavaHomeEnvironmentVariableIsSet.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class EnsureJavaHomeEnvironmentVariableIsSet : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { -#if DOTNETCORE - var javaHome = Environment.GetEnvironmentVariable("JAVA_HOME"); -#else - var javaHome = Environment.GetEnvironmentVariable("JAVA_HOME", EnvironmentVariableTarget.Machine) - ?? Environment.GetEnvironmentVariable("JAVA_HOME", EnvironmentVariableTarget.User); -#endif - if (string.IsNullOrWhiteSpace(javaHome)) - throw new Exception("The elasticsearch bat files are resillient to JAVA_HOME not being set, however the shield tooling is not"); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityRealms.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityRealms.cs deleted file mode 100644 index ae440f51295..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityRealms.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.IO; -using System.Linq; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class EnsureSecurityRealms : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - var configFile = Path.Combine(fileSystem.ElasticsearchHome, "config", "elasticsearch.yml"); - var lines = File.ReadAllLines(configFile).ToList(); - var saveFile = false; - - // set up for Watcher HipChat action - if (!lines.Any(line => line.Contains("file1"))) - { - lines.AddRange(new[] - { - string.Empty, - "xpack:", - " security:", - " authc:", - " realms:", - $" {SecurityRealms.FileRealm}:", - " type: file", - " order: 0", - string.Empty - }); - saveFile = true; - } - - // set up for Watcher HipChat action - if (!lines.Any(line => line.Contains("pki1"))) - { - lines.AddRange(new[] - { - string.Empty, - "xpack:", - " security:", - " authc:", - " realms:", - $" {SecurityRealms.PkiRealm}:", - " type: pki", - " order: 1", - string.Empty - }); - saveFile = true; - } - - if (saveFile) File.WriteAllLines(configFile, lines); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityRolesFileExists.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityRolesFileExists.cs deleted file mode 100644 index 9e2b4a95c0e..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityRolesFileExists.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System.IO; -using System.Linq; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class EnsureSecurityRolesFileExists : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - //2.x tests only use prebaked roles - if (config.ElasticsearchVersion.Major < 5) return; - var folder = config.ElasticsearchVersion.Major >= 5 ? "x-pack" : "shield"; - var rolesConfig = Path.Combine(fileSystem.ElasticsearchHome, "config", folder, "roles.yml"); - - if (!File.Exists(rolesConfig)) - { - Directory.CreateDirectory(Path.Combine(fileSystem.ElasticsearchHome, "config", folder)); - File.WriteAllText(rolesConfig, string.Empty); - } - - var lines = File.ReadAllLines(rolesConfig).ToList(); - var saveFile = false; - - if (!lines.Any(line => line.StartsWith("user:"))) - { - lines.InsertRange(0, new [] - { - "# Read-only operations on indices", - "user:", - " indices:", - " - names: '*'", - " privileges:", - " - read", - string.Empty - }); - - saveFile = true; - } - - if (!lines.Any(line => line.StartsWith("power_user:"))) - { - lines.InsertRange(0, new [] - { - "# monitoring cluster privileges", - "# All operations on all indices", - "power_user:", - " cluster:", - " - monitor", - " indices:", - " - names: '*'", - " privileges:", - " - all", - string.Empty - }); - - saveFile = true; - } - - if (!lines.Any(line => line.StartsWith("admin:"))) - { - lines.InsertRange(0, new [] - { - "# All cluster rights", - "# All operations on all indices", - "admin:", - " cluster:", - " - all", - " indices:", - " - names: '*'", - " privileges:", - " - all", - string.Empty - }); - - saveFile = true; - } - - if (saveFile) File.WriteAllLines(rolesConfig, lines); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityUsersInDefaultRealmAreAdded.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityUsersInDefaultRealmAreAdded.cs deleted file mode 100644 index a67e2274e4a..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/EnsureSecurityUsersInDefaultRealmAreAdded.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.XPack.Security; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class EnsureSecurityUsersInDefaultRealmAreAdded : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - var v = config.ElasticsearchVersion; - var folder = v.Major >= 5 ? "x-pack" : "shield"; - var plugin = v.Major >= 5 ? "users" : "esusers"; - - var pluginBat = Path.Combine(fileSystem.ElasticsearchHome, "bin", folder, plugin) + BinarySuffix; - foreach (var cred in ShieldInformation.AllUsers) - this.ExecuteBinary(pluginBat, $"adding user {cred.Username}",$"useradd {cred.Username} -p {cred.Password} -r {cred.Role}"); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/InstallPlugins.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/InstallPlugins.cs deleted file mode 100644 index 14925a76f5e..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/InstallPlugins.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.Plugins; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class InstallPlugins : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - var v = config.ElasticsearchVersion; - //on 2.x we so not support tests requiring plugins for 2.x since we can not reliably install them - if (v.IsSnapshot && v.Major == 2) return; - var plugins = - from plugin in ElasticsearchPluginCollection.Supported - let validForCurrentVersion = plugin.IsValid(v) - let alreadyInstalled = AlreadyInstalled(plugin, fileSystem) - where !alreadyInstalled && validForCurrentVersion - select plugin; - - foreach (var plugin in plugins) - { - var installParameter = !v.IsSnapshot ? plugin.Moniker : this.DownloadSnapshotIfNeeded(fileSystem, plugin, v); - this.ExecuteBinary(fileSystem.PluginBinary, $"install elasticsearch plugin: {plugin.Moniker}", "install --batch", installParameter); - } - } - - private static bool AlreadyInstalled(ElasticsearchPluginConfiguration plugin, NodeFileSystem fileSystem) - { - var folder = plugin.FolderName; - var pluginFolder = Path.Combine(fileSystem.ElasticsearchHome, "plugins", folder); - - // assume plugin already installed - return Directory.Exists(pluginFolder); - } - - private string DownloadSnapshotIfNeeded(NodeFileSystem fileSystem, ElasticsearchPluginConfiguration plugin, ElasticsearchVersion v) - { - var downloadLocation = Path.Combine(fileSystem.RoamingFolder, plugin.SnapshotZip(v)); - this.DownloadPluginSnapshot(downloadLocation, plugin, v); - //transform downloadLocation to file uri and use that to install from - return new Uri(downloadLocation).AbsoluteUri; - } - - private void DownloadPluginSnapshot(string downloadLocation, ElasticsearchPluginConfiguration plugin, ElasticsearchVersion v) - { - if (File.Exists(downloadLocation)) return; - var downloadUrl = plugin.SnapshotDownloadUrl(v); - Console.WriteLine($"Download plugin snapshot {plugin.Moniker}: {downloadUrl}"); - try - { - this.DownloadFile(downloadUrl, downloadLocation); - Console.WriteLine($"Downloaded plugin snapshot {plugin.Moniker}"); - } - catch (Exception e) - { - Console.WriteLine($"Failed downloading plugin snapshot {plugin.Moniker}, {e.Message}"); - } - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/InstallationTaskBase.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/InstallationTaskBase.cs deleted file mode 100644 index a8d4918dc2d..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/InstallationTaskBase.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.IO; -using System.Net; -using System.Threading.Tasks; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.Process; -#if !DOTNETCORE -using XplatManualResetEvent = System.Threading.ManualResetEvent; -#endif - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public abstract class InstallationTaskBase - { - public abstract void Run(NodeConfiguration config, NodeFileSystem fileSystem); - - private static bool IsMono { get; } = Type.GetType("Mono.Runtime") != null; - protected string BinarySuffix => IsMono || Path.PathSeparator == '/' ? "" : ".bat"; - - protected void DownloadFile(string from, string to) - { - if (File.Exists(to)) return; - new WebClient().DownloadFile(from, to); - } - - protected static void WriteFileIfNotExist(string fileLocation, string contents) - { - if (!File.Exists(fileLocation)) File.WriteAllText(fileLocation, contents); - } - - protected void ExecuteBinary(string binary, string description, params string[] arguments) - { - Console.WriteLine($"Preparing to execute: {description} ..."); - var timeout = TimeSpan.FromSeconds(420); - var handle = new XplatManualResetEvent(false); - var task = Task.Run(() => - { - using (var p = new ObservableProcess(binary, arguments)) - { - var o = p.Start(); - Console.WriteLine($"Executing: {binary} {string.Join(" ", arguments)}"); - o.Subscribe(c => Console.WriteLine(c.Data), - (e) => - { - Console.WriteLine($"Failed executing: {description} {e.Message} {e.StackTrace}"); - handle.Set(); - throw e; - }, - () => - { - Console.WriteLine($"Finished executing {description} exit code: {p.ExitCode}"); - handle.Set(); - }); - if (!handle.WaitOne(timeout, true)) - throw new Exception($"Timeout while executing {description} exceeded {timeout}"); - } - }); - - if (!handle.WaitOne(timeout, true)) - throw new Exception($"Timeout while executing {description} exceeded {timeout}"); - - if (task.Exception != null) - throw task.Exception; - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/SecurityRealms.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/SecurityRealms.cs deleted file mode 100644 index 9ce4f8e5cc3..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/SecurityRealms.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public static class SecurityRealms - { - public const string FileRealm = "file1"; - - public const string PkiRealm = "pki1"; - - } -} \ No newline at end of file diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/UnzipCurrentElasticsearchDistribution.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/UnzipCurrentElasticsearchDistribution.cs deleted file mode 100644 index 0b8f846cc74..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/UnzipCurrentElasticsearchDistribution.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.IO; -using System.IO.Compression; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks -{ - public class UnzipCurrentElasticsearchDistribution : InstallationTaskBase - { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) - { - var v = config.ElasticsearchVersion; - if (Directory.Exists(fileSystem.ElasticsearchHome)) return; - Console.WriteLine($"Unzipping elasticsearch: {v} ..."); - ZipFile.ExtractToDirectory(fileSystem.DownloadZipLocation, fileSystem.RoamingFolder); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/NodeTaskRunner.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/NodeTaskRunner.cs deleted file mode 100644 index f51e6a08113..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/NodeTaskRunner.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.Tasks.AfterNodeStoppedTasks; -using Tests.Framework.ManagedElasticsearch.Tasks.BeforeStartNodeTasks; -using Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks; -using Tests.Framework.ManagedElasticsearch.Tasks.ValidationTasks; - -namespace Tests.Framework.ManagedElasticsearch.Tasks -{ - public class NodeTaskRunner : IDisposable - { - public NodeConfiguration NodeConfiguration { get; } - private static readonly object Lock = new object(); - - public NodeTaskRunner(NodeConfiguration nodeConfiguration) - { - this.NodeConfiguration = nodeConfiguration; - } - - private static IEnumerable InstallationTasks { get; } = new List - { - new CreateNestApplicationDirectory(), - new EnsureJavaHomeEnvironmentVariableIsSet(), - new DownloadCurrentElasticsearchDistribution(), - new UnzipCurrentElasticsearchDistribution(), - new CreateEasyRunBatFile(), - new InstallPlugins(), - new WriteAnalysisFiles(), - new EnsureSecurityRolesFileExists(), - new EnsureWatcherActionConfigurationInElasticsearchYaml(), - new EnsureSecurityRealms(), - new EnsureSecurityUsersInDefaultRealmAreAdded(), - }; - private static IEnumerable BeforeStart { get; } = new List - { - new CreateEasyRunClusterBatFile() - }; - private static IEnumerable NodeStoppedTasks { get; } = new List - { - new CleanUpDirectoriesAfterNodeStopped() - }; - - private static IEnumerable ValidationTasks { get; } = new List - { - new ValidateRunningVersion(), - new ValidateLicenseTask(), - new ValidatePluginsTask(), - new ValidateClusterStateTask() - }; - - public void Install(InstallationTaskBase[] additionalInstallationTasks)=> - Iterate( - InstallationTasks.Concat(additionalInstallationTasks ?? Enumerable.Empty()), - (t, n, fs) => t.Run(n, fs) - ); - - public void Dispose() => - Iterate(NodeStoppedTasks, (t, n, fs) => t.Run(n, fs)); - - public void OnBeforeStart(string [] serverSettings) => - Iterate(BeforeStart, (t, n, fs) => t.Run(n, fs, serverSettings), log: false); - - public void ValidateAfterStart(IElasticClient client) => - Iterate(ValidationTasks, (t, n, fs) => t.Validate(client, n), log: false); - - private IList GetCurrentRunnerLog() - { - var log = this.NodeConfiguration.FileSystem.TaskRunnerFile; - return !File.Exists(log) ? new List() : File.ReadAllLines(log).ToList(); - } - private void LogTasks(IList logs) - { - var log = this.NodeConfiguration.FileSystem.TaskRunnerFile; - File.WriteAllText(log, string.Join(Environment.NewLine, logs)); - } - - private void Iterate(IEnumerable collection, Action act, bool log = true) - { - if (!this.NodeConfiguration.RunIntegrationTests || this.NodeConfiguration.TestAgainstAlreadyRunningElasticsearch) return; - lock (Lock) - { - var taskLog = this.GetCurrentRunnerLog(); - foreach (var task in collection) - { - var name = task.GetType().Name; - if (log && taskLog.Contains(name)) continue; - act(task,this.NodeConfiguration, this.NodeConfiguration.FileSystem); - if (log) taskLog.Add(name); - } - if (log) this.LogTasks(taskLog); - } - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/NodeValidationTaskBase.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/NodeValidationTaskBase.cs deleted file mode 100644 index 717dc445d8c..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/NodeValidationTaskBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.ValidationTasks -{ - public abstract class NodeValidationTaskBase - { - public abstract void Validate(IElasticClient client, NodeConfiguration configuration); - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateClusterStateTask.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateClusterStateTask.cs deleted file mode 100644 index 80446e50ebe..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateClusterStateTask.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using Elasticsearch.Net; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.ValidationTasks -{ - public class ValidateClusterStateTask : NodeValidationTaskBase - { - private static TimeSpan ClusterHealthTimeout { get; } = TimeSpan.FromSeconds(20); - - public override void Validate(IElasticClient client, NodeConfiguration configuration) - { - var healthyCluster = client.ClusterHealth(g => g - .WaitForStatus(WaitForStatus.Yellow) - .Timeout(ClusterHealthTimeout) - ); - if(!healthyCluster.IsValid) - throw new Exception($"Did not see a healhty cluster before calling onNodeStarted handler." + healthyCluster.DebugInformation); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateLicenseTask.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateLicenseTask.cs deleted file mode 100644 index ea9878abf94..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateLicenseTask.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using Elasticsearch.Net; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.ValidationTasks -{ - public class ValidateLicenseTask : NodeValidationTaskBase - { - public override void Validate(IElasticClient client, NodeConfiguration configuration) - { - if (!configuration.XPackEnabled) return; - - var license = client.GetLicense(); - if (license.IsValid && license.License.Status == LicenseStatus.Active) return; - - var exceptionMessageStart = "Server has license plugin installed, "; -#if DOTNETCORE - var licenseFile = Environment.GetEnvironmentVariable("ES_LICENSE_FILE"); -#else - var licenseFile = Environment.GetEnvironmentVariable("ES_LICENSE_FILE", EnvironmentVariableTarget.Machine); -#endif - if (!string.IsNullOrWhiteSpace(licenseFile)) - { - var putLicense = client.PostLicense(new PostLicenseRequest - { - License = License.LoadFromDisk(licenseFile) - }); - if (!putLicense.IsValid) - throw new Exception("Server has invalid license and the ES_LICENSE_FILE failed to register\r\n" + putLicense.DebugInformation); - - license = client.GetLicense(); - if (license.IsValid && license.License.Status == LicenseStatus.Active) return; - exceptionMessageStart += " but the installed license is invalid and we attempted to register ES_LICENSE_FILE "; - } - - Exception exception = null; - if (!license.IsValid) - { - exception = license.ApiCall.HttpStatusCode == 404 - ? new Exception($"{exceptionMessageStart} but the license was not found! Details: {license.DebugInformation}") - : new Exception($"{exceptionMessageStart} but a {license.ApiCall.HttpStatusCode} was returned! Details: {license.DebugInformation}"); - } - else if (license.License == null) - exception = new Exception($"{exceptionMessageStart} but the license was deleted!"); - - else if (license.License.Status == LicenseStatus.Expired) - exception = new Exception($"{exceptionMessageStart} but the license has expired!"); - - else if (license.License.Status == LicenseStatus.Invalid) - exception = new Exception($"{exceptionMessageStart} but the license is invalid!"); - - if (exception != null) - throw exception; - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidatePluginsTask.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidatePluginsTask.cs deleted file mode 100644 index 8ac84a8402b..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidatePluginsTask.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Linq; -using Elasticsearch.Net; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.ManagedElasticsearch.Plugins; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.ValidationTasks -{ - public class ValidatePluginsTask : NodeValidationTaskBase - { - public override void Validate(IElasticClient client, NodeConfiguration configuration) - { - var v = configuration.ElasticsearchVersion; - //if the version we are running against is a s snapshot version we do not validate plugins - //because we can not reliably install plugins against snapshots - if (v.IsSnapshot) return; - - var requiredMonikers = ElasticsearchPluginCollection.Supported - .Where(plugin => plugin.IsValid(v) && configuration.RequiredPlugins.Contains(plugin.Plugin)) - .Select(plugin => plugin.Moniker) - .ToList(); - - if (!requiredMonikers.Any()) return; - var checkPlugins = client.CatPlugins(); - - if (!checkPlugins.IsValid) - throw new Exception($"Failed to check plugins: {checkPlugins.DebugInformation}."); - - var missingPlugins = requiredMonikers - .Except((checkPlugins.Records ?? Enumerable.Empty()).Select(r => r.Component)) - .ToList(); - if (!missingPlugins.Any()) return; - - var pluginsString = string.Join(", ", missingPlugins); - throw new Exception($"Already running elasticsearch missed the following plugin(s): {pluginsString}."); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateRunningVersion.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateRunningVersion.cs deleted file mode 100644 index 047ed20d8f4..00000000000 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/ValidationTasks/ValidateRunningVersion.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using Elasticsearch.Net; -using Nest; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; -using Tests.Framework.Versions; - -namespace Tests.Framework.ManagedElasticsearch.Tasks.ValidationTasks -{ - public class ValidateRunningVersion : NodeValidationTaskBase - { - public override void Validate(IElasticClient client, NodeConfiguration configuration) - { - if (!configuration.TestAgainstAlreadyRunningElasticsearch) return; - var alreadyUp = client.RootNodeInfo(); - if (!alreadyUp.IsValid) return; - var v = configuration.ElasticsearchVersion; - - var alreadyUpVersion = ElasticsearchVersion.GetOrAdd(alreadyUp.Version.Number); - var alreadyUpSnapshotVersion = ElasticsearchVersion.GetOrAdd(alreadyUp.Version.Number + "-SNAPSHOT"); - if (v != alreadyUpVersion && v != alreadyUpSnapshotVersion) - throw new Exception($"running elasticsearch is version {alreadyUpVersion} but the test config dictates {v}"); - } - } -} diff --git a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/WriteAnalysisFiles.cs b/src/Tests/Framework/ManagedElasticsearch/Tasks/WriteAnalysisFiles.cs similarity index 67% rename from src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/WriteAnalysisFiles.cs rename to src/Tests/Framework/ManagedElasticsearch/Tasks/WriteAnalysisFiles.cs index 9bfb2a5eebc..fe0368f25ad 100644 --- a/src/Tests/Framework/ManagedElasticsearch/Tasks/InstallationTasks/WriteAnalysisFiles.cs +++ b/src/Tests/Framework/ManagedElasticsearch/Tasks/WriteAnalysisFiles.cs @@ -1,18 +1,22 @@ using System.IO; -using Tests.Framework.Configuration; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch.Nodes; +using Elastic.Managed.ConsoleWriters; +using Elastic.Managed.Ephemeral; +using Elastic.Managed.Ephemeral.Tasks; +using Tests.Framework.ManagedElasticsearch.Clusters; -namespace Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks +namespace Tests.Framework.ManagedElasticsearch.Tasks { - public class WriteAnalysisFiles : InstallationTaskBase + public class WriteAnalysisFiles : ClusterComposeTask { - public override void Run(NodeConfiguration config, NodeFileSystem fileSystem) + public override void Run(IEphemeralCluster cluster) { - var analysisPath = fileSystem.AnalysisFolder; + if (!(cluster.ClusterConfiguration is ClientTestClusterConfiguration config)) return; + + var analysisPath = config.AnalysisFolder; if (!Directory.Exists(analysisPath)) Directory.CreateDirectory(analysisPath); - SetupHunspellFiles(fileSystem.ConfigPath); - SetupIcuFiles(fileSystem.ConfigPath); + cluster.Writer.WriteDiagnostic($"{{{nameof(WriteAnalysisFiles)}}} writing analysis files to watcher config [{analysisPath}]"); + SetupHunspellFiles(cluster.FileSystem.ConfigPath); + SetupIcuFiles(cluster.FileSystem.ConfigPath); SetupCompoundTokenFilterFopFile(analysisPath); SetupCustomStemming(analysisPath); SetupStopwordsFile(analysisPath); diff --git a/src/Tests/Framework/ManagedElasticsearch/XunitSetup.cs b/src/Tests/Framework/ManagedElasticsearch/XunitSetup.cs new file mode 100644 index 00000000000..20def9e98a5 --- /dev/null +++ b/src/Tests/Framework/ManagedElasticsearch/XunitSetup.cs @@ -0,0 +1,161 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using Bogus; +using Elastic.Xunit; +using Tests.Framework.Configuration; +using Tests.Framework.ManagedElasticsearch; +using static System.Console; + +[assembly: Xunit.TestFrameworkAttribute("Elastic.Xunit.Sdk.ElasticTestFramework", "Elastic.Xunit")] +[assembly: ElasticXunitConfiguration(typeof(NestXunitRunOptions))] + +namespace Tests.Framework.ManagedElasticsearch +{ + /// Feeding TestClient.Configuration options to the runner + public class NestXunitRunOptions : ElasticXunitRunOptions + { + public NestXunitRunOptions() + { + this.RunIntegrationTests = TestClient.Configuration.RunIntegrationTests; + this.RunUnitTests = TestClient.Configuration.RunUnitTests; + this.ClusterFilter = TestClient.Configuration.ClusterFilter; + this.TestFilter = TestClient.Configuration.TestFilter; + this.Version = TestClient.Configuration.ElasticsearchVersion; + } + + public override void OnBeforeTestsRun() => DumpConfiguration(); + + private static void DumpConfiguration() + { + var config = TestClient.Configuration; + + Randomizer.Seed = new Random(config.Seed); + + WriteLine(new string('-', 20)); + WriteLine("Starting tests using config:"); + WriteLine($" - {nameof(config.TestAgainstAlreadyRunningElasticsearch)}: {config.TestAgainstAlreadyRunningElasticsearch}"); + WriteLine($" - {nameof(config.ElasticsearchVersion)}: {config.ElasticsearchVersion}"); + WriteLine($" - {nameof(config.ForceReseed)}: {config.ForceReseed}"); + WriteLine($" - {nameof(config.Mode)}: {config.Mode}"); + WriteLine($" - {nameof(config.Seed)}: {config.Seed}"); + if (config.Mode == TestMode.Integration) + { + WriteLine($" - {nameof(config.ClusterFilter)}: {config.ClusterFilter}"); + WriteLine($" - {nameof(config.TestFilter)}: {config.TestFilter}"); + + } + WriteLine($" - {nameof(config.RunIntegrationTests)}: {config.RunIntegrationTests}"); + WriteLine($" - {nameof(config.RunUnitTests)}: {config.RunUnitTests}"); + WriteLine($" - Random:"); + WriteLine($" \t- {nameof(config.Random.SourceSerializer)}: {config.Random.SourceSerializer}"); + WriteLine($" \t- {nameof(config.Random.TypedKeys)}: {config.Random.TypedKeys}"); + WriteLine(new string('-', 20)); + + } + + public override void OnTestsFinished(Dictionary clusterTotals, ConcurrentBag> failedCollections) + { + Out.Flush(); + DumpClusterTotals(clusterTotals); + DumpSeenDeprecations(); + DumpFailedCollections(failedCollections); + } + + private static void DumpClusterTotals(Dictionary clusterTotals) + { + WriteLine("--------"); + WriteLine("Individual cluster running times:"); + foreach (var kv in clusterTotals) WriteLine($"- {kv.Key}: {kv.Value.Elapsed}"); + WriteLine("--------"); + } + private static void DumpSeenDeprecations() + { + if (TestClient.SeenDeprecations.Count == 0) return; + + WriteLine("-------- SEEN DEPRECATIONS"); + foreach (var d in TestClient.SeenDeprecations.Distinct()) + WriteLine(d); + WriteLine("--------"); + } + + private static void DumpFailedCollections(ConcurrentBag> failedCollections) + { + if (failedCollections.Count <= 0) return; + + ForegroundColor = ConsoleColor.Red; + WriteLine("Failed collections:"); + foreach (var t in failedCollections.OrderBy(p => p.Item1).ThenBy(t => t.Item2)) + + { + var cluster = t.Item1; + WriteLine($" - {cluster}: {t.Item2}"); + } + DumpReproduceFilters(failedCollections); + ResetColor(); + } + + private static void DumpReproduceFilters(ConcurrentBag> failedCollections) + { + var config = TestClient.Configuration; + var runningIntegrations = config.RunIntegrationTests; + ForegroundColor = ConsoleColor.Yellow; + WriteLine("---Reproduce: -----"); + var sb = new StringBuilder("build ") + .Append($"seed:{config.Seed} "); + + AppendExplictConfig(nameof(RandomConfiguration.SourceSerializer), sb); + AppendExplictConfig(nameof(RandomConfiguration.TypedKeys), sb); + + if (runningIntegrations) + sb.Append("integrate ") + .Append(TestClient.Configuration.ElasticsearchVersion); + + else sb.Append("test"); + + if (runningIntegrations && failedCollections.Count > 0) + { + var clusters = string.Join(",", failedCollections + .Select(c => c.Item1.ToLowerInvariant()).Distinct()); + sb.Append(" \""); + sb.Append(clusters); + sb.Append("\""); + } + if ((!runningIntegrations || (failedCollections.Count < 30)) && failedCollections.Count > 0) + { + sb.Append(" \""); + var tests = string.Join(",", failedCollections + .OrderBy(t => t.Item2) + .Select(c => c.Item2.ToLowerInvariant().Split('.').Last() + .Replace("apitests", "") + .Replace("usagetests", "") + .Replace("tests", "") + )); + sb.Append(tests); + sb.Append("\""); + } + WriteLine(sb.ToString()); + WriteLine("--------"); + } + + /// + /// Append random overwrite to reproduce line only if one was provided explicitly + /// + private static void AppendExplictConfig(string key, StringBuilder sb) + { + if (!TryGetExplicitRandomConfig(key, out var b)) return; + sb.Append($"random:{key}{(b ? "" : ":false")} "); + } + + private static bool TryGetExplicitRandomConfig(string key, out bool value) + { + value = false; + var v = Environment.GetEnvironmentVariable($"NEST_RANDOM_{key.ToUpper()}"); + return !string.IsNullOrWhiteSpace(v) && bool.TryParse(v, out value); + } + + } +} diff --git a/src/Tests/Framework/Profiling/Memory/MemoryProfileFactory.cs b/src/Tests/Framework/Profiling/Memory/MemoryProfileFactory.cs index dbf1e7f7833..3e2870f1731 100644 --- a/src/Tests/Framework/Profiling/Memory/MemoryProfileFactory.cs +++ b/src/Tests/Framework/Profiling/Memory/MemoryProfileFactory.cs @@ -12,7 +12,7 @@ internal class MemoryProfileFactory : ProfileFactory public MemoryProfileFactory( string sdkPath, string outputPath, - ClusterBase cluster, + ProfilingCluster cluster, Assembly assembly, IColoredWriter output) : base(sdkPath, outputPath, cluster, assembly, output) { diff --git a/src/Tests/Framework/Profiling/Performance/PerformanceProfileFactory.cs b/src/Tests/Framework/Profiling/Performance/PerformanceProfileFactory.cs index 357cf791895..7d4c668053c 100644 --- a/src/Tests/Framework/Profiling/Performance/PerformanceProfileFactory.cs +++ b/src/Tests/Framework/Profiling/Performance/PerformanceProfileFactory.cs @@ -12,7 +12,7 @@ internal class PerformanceProfileFactory : ProfileFactory public PerformanceProfileFactory( string sdkPath, string outputPath, - ClusterBase cluster, + ProfilingCluster cluster, Assembly assembly, IColoredWriter output) : base(sdkPath, outputPath, cluster, assembly, output) { diff --git a/src/Tests/Framework/Profiling/ProfileFactory.cs b/src/Tests/Framework/Profiling/ProfileFactory.cs index 17e1895ada5..dca9858499e 100644 --- a/src/Tests/Framework/Profiling/ProfileFactory.cs +++ b/src/Tests/Framework/Profiling/ProfileFactory.cs @@ -16,7 +16,7 @@ internal abstract class ProfileFactory : IProfileFactory where TAttr protected ProfileFactory(string sdkPath, string outputPath, - ClusterBase cluster, + ProfilingCluster cluster, Assembly assembly, IColoredWriter output) { @@ -32,7 +32,7 @@ protected ProfileFactory(string sdkPath, protected Assembly Assembly { get; } - protected ClusterBase Cluster { get; } + protected ProfilingCluster Cluster { get; } protected IColoredWriter Output { get; } diff --git a/src/Tests/Framework/Profiling/ProfiledClass.cs b/src/Tests/Framework/Profiling/ProfiledClass.cs index 85a2db03b01..2c1902c40fb 100644 --- a/src/Tests/Framework/Profiling/ProfiledClass.cs +++ b/src/Tests/Framework/Profiling/ProfiledClass.cs @@ -27,7 +27,7 @@ public ProfiledClass(Type type, ProfiledMethod setupMethod, IEnumerable public TimelineProfileFactory( string sdkPath, string outputPath, - ClusterBase cluster, + ProfilingCluster cluster, Assembly assembly, IColoredWriter output) : base(sdkPath, outputPath, cluster, assembly, output) { } diff --git a/src/Tests/Framework/SerializationTests/DictionarySerializationTests.cs b/src/Tests/Framework/SerializationTests/DictionarySerializationTests.cs index de49b5d8c45..66fec1dd54f 100644 --- a/src/Tests/Framework/SerializationTests/DictionarySerializationTests.cs +++ b/src/Tests/Framework/SerializationTests/DictionarySerializationTests.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; +using Elastic.Xunit.XunitPlumbing; using Nest; using Newtonsoft.Json.Linq; diff --git a/src/Tests/Framework/SerializationTests/SerializationTestBase.cs b/src/Tests/Framework/SerializationTests/SerializationTestBase.cs index b838d7bae98..eb197a13545 100644 --- a/src/Tests/Framework/SerializationTests/SerializationTestBase.cs +++ b/src/Tests/Framework/SerializationTests/SerializationTestBase.cs @@ -2,6 +2,8 @@ using System.IO; using System.Linq; using System.Text; +using Elastic.Managed; +using Elastic.Managed.Ephemeral; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -29,6 +31,8 @@ public abstract class SerializationTestBase protected IElasticsearchSerializer Serializer => Client.Serializer; + protected static bool TestingAgainst(string range) => TestClient.Configuration.ElasticsearchVersion.InRange(range); + protected virtual IElasticClient Client => _connectionSettingsModifier == null && _serializerFactory == null ? TestClient.DefaultInMemoryClient @@ -39,7 +43,7 @@ protected SerializationTestBase() SetupSerialization(); } - protected SerializationTestBase(ClusterBase cluster) + protected SerializationTestBase(ICluster cluster) { } diff --git a/src/Tests/Framework/TestClient.cs b/src/Tests/Framework/TestClient.cs index a57d160ea38..af4740f8350 100644 --- a/src/Tests/Framework/TestClient.cs +++ b/src/Tests/Framework/TestClient.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; @@ -7,14 +8,35 @@ using System.Net; using System.Text; using System.Threading; +using Elastic.Managed.Configuration; using Elasticsearch.Net; using Nest; using Tests.Framework.Configuration; using Tests.Framework.MockData; -using Tests.Framework.Versions; +using Elastic.Xunit.XunitPlumbing; namespace Tests.Framework { + public class IntegrationOnlyAttribute : SkipTestAttributeBase + { + public override bool Skip => TestClient.Configuration.RunUnitTests; + public override string Reason { get; } = "Inherited unit tests are ignored on this integration test class"; + } + public class NeedsTypedKeysAttribute : SkipTestAttributeBase + { + public override bool Skip => !TestClient.Configuration.Random.TypedKeys; + public override string Reason { get; } = "Random Configuration dictates no typed keys but this tests relies on it being set"; + } + public class ProjectReferenceOnlyAttribute : SkipTestAttributeBase + { + public override bool Skip => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TestPackageVersion")); + public override string Reason { get; } = "This test can only be run if client dependencies are project references"; + } + public class SkipOnTeamCityAttribute : SkipTestAttributeBase + { + public override bool Skip => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION")); + public override string Reason { get; } = "Skip running this test on TeamCity, this is usually a sign this test is flakey?"; + } public static class TestClient { public static bool RunningFiddler = Process.GetProcessesByName("fiddler").Any(); @@ -24,6 +46,8 @@ public static class TestClient public static IElasticClient Default = new ElasticClient(GlobalDefaultSettings); public static IElasticClient DefaultInMemoryClient = GetInMemoryClient(); + public static ConcurrentBag SeenDeprecations { get; } = new ConcurrentBag(); + public static Uri CreateUri(int port = 9200, bool forceSsl = false) => new UriBuilder(forceSsl ? "https" : "http", Host, port).Uri; @@ -95,13 +119,21 @@ private static ConnectionSettings DefaultSettings(ConnectionSettings settings) = //.PrettyJson() //TODO make this random //.EnableHttpCompression() + .OnRequestCompleted(r => + { + if (!r.DeprecationWarnings.Any()) return; + var q = r.Uri.Query; + //hack to prevent the deprecation warnings from the deprecation response test to be reported + if (!string.IsNullOrWhiteSpace(q) && q.Contains("routing=ignoredefaultcompletedhandler")) return; + foreach (var d in r.DeprecationWarnings) SeenDeprecations.Add(d); + }) .OnRequestDataCreated(data => data.Headers.Add("TestMethod", ExpensiveTestNameForIntegrationTests())); private static IClrTypeMapping ProjectMapping(ClrTypeMappingDescriptor m) { m.IndexName("project").IdProperty(p => p.Name); //*_range type only available since 5.2.0 so we ignore them when running integration tests - if (VersionUnderTestSatisfiedBy("<5.2.0") && Configuration.RunIntegrationTests) + if (TestClient.Configuration.ElasticsearchVersion.InRange("<5.2.0") && Configuration.RunIntegrationTests) m.Ignore(p => p.Ranges); return m; } @@ -109,30 +141,24 @@ private static IClrTypeMapping ProjectMapping(ClrTypeMappingDescriptor< private static IClrTypeMapping RangesMapping(ClrTypeMappingDescriptor m) { //ip_range type only available since 5.5.0 so we ignore them when running integration tests - if (VersionUnderTestSatisfiedBy("<5.5.0") && Configuration.RunIntegrationTests) + if (TestClient.Configuration.ElasticsearchVersion.InRange("<5.5.0") && Configuration.RunIntegrationTests) m.Ignore(p => p.Ips); return m; } - public static string PercolatorType => Configuration.ElasticsearchVersion <= ElasticsearchVersion.GetOrAdd("5.0.0-alpha1") + public static string PercolatorType => Configuration.ElasticsearchVersion <= "5.0.0-alpha1" ? ".percolator" : "query"; - public static bool VersionSatisfiedBy(string range, ElasticsearchVersion version) + public static ConnectionSettings CreateSettings(Func modifySettings, IConnection connection, IConnectionPool connectionPool) { - var versionRange = new SemVer.Range(range); - var satisfied = versionRange.IsSatisfied(version.Version); - if (!version.IsSnapshot || satisfied) return satisfied; - //Semver can only match snapshot version with ranges on the same major and minor - //anything else fails but we want to know e.g 2.4.5-SNAPSHOT satisfied by <5.0.0; - var wholeVersion = $"{version.Major}.{version.Minor}.{version.Patch}"; - return versionRange.IsSatisfied(wholeVersion); - +#pragma warning disable CS0618 // Type or member is obsolete + var defaultSettings = DefaultSettings(new ConnectionSettings(connectionPool, connection)); +#pragma warning restore CS0618 // Type or member is obsolete + var settings = modifySettings != null ? modifySettings(defaultSettings) : defaultSettings; + return settings; } - public static bool VersionUnderTestSatisfiedBy(string range) => - VersionSatisfiedBy(range, TestClient.Configuration.ElasticsearchVersion); - public static ConnectionSettings CreateSettings( Func modifySettings = null, int port = 9200, diff --git a/src/Tests/Framework/XUnitPlumbing/IntegrationOnly.cs b/src/Tests/Framework/XUnitPlumbing/IntegrationOnly.cs deleted file mode 100644 index 91233e12ebd..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/IntegrationOnly.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System; - -namespace Tests.Framework -{ - public class IntegrationOnly : Attribute { } -} \ No newline at end of file diff --git a/src/Tests/Framework/XUnitPlumbing/IntegrationTestDiscoverer.cs b/src/Tests/Framework/XUnitPlumbing/IntegrationTestDiscoverer.cs deleted file mode 100644 index 10f81ea86f7..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/IntegrationTestDiscoverer.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Xunit; -using Xunit.Abstractions; - -namespace Tests.Framework -{ - public class IntegrationTestDiscoverer : NestTestDiscoverer - { - private bool RunningOnTeamCity { get; } = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TEAMCITY_VERSION")); - - public IntegrationTestDiscoverer(IMessageSink diagnosticMessageSink) - : base(diagnosticMessageSink, TestClient.Configuration.RunIntegrationTests) { } - - protected override bool SkipMethod(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) - { - var classOfMethod = Type.GetType(testMethod.TestClass.Class.Name, true, true); - var method = classOfMethod.GetMethod(testMethod.Method.Name, BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Public) - ?? testMethod.Method.ToRuntimeMethod(); - - return TypeSkipVersionAttributeSatisfies(classOfMethod) - || MethodSkipVersionAttributeSatisfies(method) - || SkipWhenRunOnTeamCity(classOfMethod, method); - } - - private bool SkipWhenRunOnTeamCity(Type classOfMethod, MethodInfo info) - { - if (!this.RunningOnTeamCity) return false; - - var attributes = classOfMethod.GetAttributes().Concat(info.GetAttributes()); - return attributes.Any(); - } - - private static bool TypeSkipVersionAttributeSatisfies(Type classOfMethod) => - VersionUnderTestMatchesAttribute(classOfMethod.GetAttributes()); - - private static bool MethodSkipVersionAttributeSatisfies(MethodInfo methodInfo) => - VersionUnderTestMatchesAttribute(methodInfo.GetAttributes()); - - private static bool VersionUnderTestMatchesAttribute(IEnumerable attributes) - { - if (!attributes.Any()) return false; - - return attributes - .SelectMany(a => a.Ranges) - .Any(range => TestClient.VersionUnderTestSatisfiedBy(range.ToString())); - } - - } -} diff --git a/src/Tests/Framework/XUnitPlumbing/NestTestDiscoverer.cs b/src/Tests/Framework/XUnitPlumbing/NestTestDiscoverer.cs deleted file mode 100644 index 378682baaa0..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/NestTestDiscoverer.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Xunit.Abstractions; -using Xunit.Sdk; -using System.Reflection; - -namespace Tests.Framework -{ - public abstract class NestTestDiscoverer : IXunitTestCaseDiscoverer - { - protected IMessageSink DiagnosticMessageSink; - private readonly bool _condition; - - protected NestTestDiscoverer(IMessageSink diagnosticMessageSink, bool condition) - { - this._condition = condition; - this.DiagnosticMessageSink = diagnosticMessageSink; - } - - protected virtual bool SkipMethod(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) => false; - - public IEnumerable Discover(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) => - !_condition || SkipMethod(discoveryOptions, testMethod, factAttribute) - ? Enumerable.Empty() - : new[] { new XunitTestCase(DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), testMethod) }; - - } -} diff --git a/src/Tests/Framework/XUnitPlumbing/RequiresPluginAttribute.cs b/src/Tests/Framework/XUnitPlumbing/RequiresPluginAttribute.cs deleted file mode 100644 index ba105d3603a..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/RequiresPluginAttribute.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch; -using Tests.Framework.ManagedElasticsearch.Plugins; - -namespace Tests.Framework -{ - public class RequiresPluginAttribute : Attribute - { - public IList Plugins { get; } - - public RequiresPluginAttribute(params ElasticsearchPlugin[] plugins) - { - if (plugins == null) - throw new ArgumentNullException(nameof(plugins)); - - this.Plugins = plugins.ToList(); - } - } -} diff --git a/src/Tests/Framework/XUnitPlumbing/SkipOnTeamCityAttribute.cs b/src/Tests/Framework/XUnitPlumbing/SkipOnTeamCityAttribute.cs deleted file mode 100644 index 06679f083b9..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/SkipOnTeamCityAttribute.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace Tests.Framework -{ - public class SkipOnTeamCityAttribute : Attribute - { - public SkipOnTeamCityAttribute(string reason) - { - } - } -} diff --git a/src/Tests/Framework/XUnitPlumbing/SkipVersionAttribute.cs b/src/Tests/Framework/XUnitPlumbing/SkipVersionAttribute.cs deleted file mode 100644 index 49a419803c3..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/SkipVersionAttribute.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using SemVer; - -namespace Tests.Framework -{ - public class SkipVersionAttribute : Attribute - { - public IList Ranges { get; } - - public SkipVersionAttribute(string skipVersionRangesSeparatedByComma, string reason) - { - this.Ranges = skipVersionRangesSeparatedByComma.Split(',') - .Select(r => new Range(r)) - .ToList(); - } - } -} diff --git a/src/Tests/Framework/XUnitPlumbing/TestAttributes.cs b/src/Tests/Framework/XUnitPlumbing/TestAttributes.cs deleted file mode 100644 index a4064fb4083..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/TestAttributes.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Xunit; -using Xunit.Sdk; -using System.Reflection; - -namespace Tests.Framework -{ - /// - /// An integration test - /// - [XunitTestCaseDiscoverer("Tests.Framework.IntegrationTestDiscoverer", "Tests")] - public class I : FactAttribute { } - - /// - /// A unit test - /// - [XunitTestCaseDiscoverer("Tests.Framework.UnitTestDiscoverer", "Tests")] - public class U : FactAttribute { } -} diff --git a/src/Tests/Framework/XUnitPlumbing/UnitTestDiscoverer.cs b/src/Tests/Framework/XUnitPlumbing/UnitTestDiscoverer.cs deleted file mode 100644 index 5e0b770527a..00000000000 --- a/src/Tests/Framework/XUnitPlumbing/UnitTestDiscoverer.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Linq; -using Xunit; -using Xunit.Abstractions; - -namespace Tests.Framework -{ - public class UnitTestDiscoverer : NestTestDiscoverer - { - public UnitTestDiscoverer(IMessageSink diagnosticMessageSink) - : base(diagnosticMessageSink, TestClient.Configuration.RunUnitTests) - { - } - - protected override bool SkipMethod(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) - { - var classOfMethod = Type.GetType(testMethod.TestClass.Class.Name, true, true); - return !TestClient.Configuration.RunUnitTests || ClassIsIntegrationOnly(classOfMethod); - } - - private static bool ClassIsIntegrationOnly(Type classOfMethod) - { - var attributes = classOfMethod.GetAttributes(); - return (attributes.Any()); - } - } -} diff --git a/src/Tests/Framework/Xunit/ForEachAsyncExtensions.cs b/src/Tests/Framework/Xunit/ForEachAsyncExtensions.cs deleted file mode 100644 index fe2575cbf8f..00000000000 --- a/src/Tests/Framework/Xunit/ForEachAsyncExtensions.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Collections.Concurrent; - -namespace Xunit -{ - - public static class ForEachAsyncExtensions - { - - public static Task ForEachAsync(this IEnumerable source, int dop, Func body) - { - return Task.WhenAll( - from partition in Partitioner.Create(source).GetPartitions(dop) - select Task.Run(async delegate - { - using (partition) - while (partition.MoveNext()) - await body(partition.Current); - })); - } - - } -} diff --git a/src/Tests/Framework/Xunit/IClusterFixture.cs b/src/Tests/Framework/Xunit/IClusterFixture.cs deleted file mode 100644 index 28ae903cb30..00000000000 --- a/src/Tests/Framework/Xunit/IClusterFixture.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Tests.Framework.Integration; -using Tests.Framework.ManagedElasticsearch; -using Tests.Framework.ManagedElasticsearch.Clusters; - -namespace Xunit -{ - public interface IClusterFixture : IClassFixture - where TFixture : ClusterBase, new() - { } -} diff --git a/src/Tests/Framework/Xunit/TestAssemblyRunner.cs b/src/Tests/Framework/Xunit/TestAssemblyRunner.cs deleted file mode 100644 index 6b27e267399..00000000000 --- a/src/Tests/Framework/Xunit/TestAssemblyRunner.cs +++ /dev/null @@ -1,236 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Xunit.Abstractions; -using Xunit.Sdk; -using System.Reflection; -using Tests.Framework; -using System.Collections.Concurrent; -using Tests.Framework.Integration; -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using System.Reflection.Metadata.Ecma335; -using Tests.Framework.ManagedElasticsearch; -using Tests.Framework.ManagedElasticsearch.Clusters; - -namespace Xunit -{ - class TestAssemblyRunner : XunitTestAssemblyRunner - { - readonly Dictionary assemblyFixtureMappings = new Dictionary(); - - public TestAssemblyRunner(ITestAssembly testAssembly, - IEnumerable testCases, - IMessageSink diagnosticMessageSink, - IMessageSink executionMessageSink, - ITestFrameworkExecutionOptions executionOptions) - : base(testAssembly, testCases, diagnosticMessageSink, executionMessageSink, executionOptions) - { - } - - protected override Task RunTestCollectionAsync(IMessageBus bus, ITestCollection col, - IEnumerable testCases, CancellationTokenSource cts) => - new TestCollectionRunner( - assemblyFixtureMappings, col, testCases, DiagnosticMessageSink, bus, TestCaseOrderer, - new ExceptionAggregator(Aggregator), cts - ).RunAsync(); - - private class GroupedByCluster - { - public ClusterBase Cluster { get; set; } - public ITestCollection Collection { get; set; } - public List TestCases { get; set; } - } - - protected override async Task RunTestCollectionsAsync(IMessageBus messageBus, - CancellationTokenSource cancellationTokenSource) - { - //bit side effecty, sets up assemblyFixtureMapping before possibly letting xunit do its regular concurrency thing - var grouped = (from c in OrderTestCollections() - let cluster = ClusterFixture(c.Item1) - let testcase = new GroupedByCluster {Collection = c.Item1, TestCases = c.Item2, Cluster = cluster} - group testcase by testcase.Cluster - into g - orderby g.Count() descending - select g).ToList(); - - //threading guess - var defaultMaxConcurrency = Environment.ProcessorCount * 4; - - if (TestClient.Configuration.RunIntegrationTests) - return await IntegrationPipeline(defaultMaxConcurrency, grouped, messageBus, cancellationTokenSource); - return await UnitTestPipeline(defaultMaxConcurrency, grouped, messageBus, cancellationTokenSource); - } - - private static readonly TimeSpan SlowTestThreshold = TimeSpan.FromSeconds(2.0); - - private async Task UnitTestPipeline(int defaultMaxConcurrency, - List> grouped, IMessageBus messageBus, - CancellationTokenSource cancellationTokenSource) - { - foreach (var g in grouped) g.Key?.Start(); - - var summaries = new ConcurrentBag(); - var slowTestCollections = new ConcurrentDictionary(); - - var testFilter = TestClient.Configuration.TestFilter; - var sw = Stopwatch.StartNew(); - await grouped.SelectMany(g => g) - .ForEachAsync(defaultMaxConcurrency, async g => - { - var test = g.Collection.DisplayName.Replace("Test collection for", ""); - if (!string.IsNullOrWhiteSpace(testFilter) && test.IndexOf(testFilter, StringComparison.OrdinalIgnoreCase) < 0) - return; - - if (!string.IsNullOrWhiteSpace(testFilter)) Console.WriteLine(" -> " + test); - - try - { - var s = Stopwatch.StartNew(); - var summary = await RunTestCollectionAsync(messageBus, g.Collection, g.TestCases, cancellationTokenSource); - s.Stop(); - if (s.Elapsed >= SlowTestThreshold) - slowTestCollections.TryAdd(test, s.Elapsed); - summaries.Add(summary); - } - catch (TaskCanceledException) - { - } - }); - sw.Stop(); - foreach (var g in grouped) g.Key?.Dispose(); - - Console.WriteLine("--------"); - Console.WriteLine($"Unit test time {sw.Elapsed}"); - Console.WriteLine("--------"); - if (slowTestCollections.Count > 0) - { - Console.WriteLine($"Test collections slower then {SlowTestThreshold}"); - foreach (var t in slowTestCollections.OrderByDescending(kv => kv.Value)) - Console.WriteLine($" ({t.Value}) - {t.Key}"); - } - - return new RunSummary() - { - Total = summaries.Sum(s => s.Total), - Failed = summaries.Sum(s => s.Failed), - Skipped = summaries.Sum(s => s.Skipped) - }; - } - - private IEnumerable ParseExcludedClusters(string clusterFilter) - { - if (string.IsNullOrWhiteSpace(clusterFilter)) return Enumerable.Empty(); - var clusters = -#if DOTNETCORE - typeof(ClusterBase).Assembly() -#else - typeof(ClusterBase).Assembly -#endif - .GetTypes() - .Where(t => typeof(ClusterBase).IsAssignableFrom(t) && t != typeof(ClusterBase)) - .Select(c => c.Name.Replace("Cluster", "").ToLowerInvariant()); - var filters = clusterFilter.Split(',').Select(c => c.Trim().ToLowerInvariant()); - var include = filters.Where(f => !f.StartsWith("-")).Select(f => f.ToLowerInvariant()); - if (include.Any()) return clusters.Where(c => !include.Contains(c)); - var exclude = filters.Where(f => f.StartsWith("-")).Select(f => f.TrimStart('-').ToLowerInvariant()); - if (exclude.Any()) return exclude; - return new List(); - } - - private async Task IntegrationPipeline(int defaultMaxConcurrency, - List> grouped, IMessageBus messageBus, - CancellationTokenSource cancellationTokenSource) - { - var summaries = new ConcurrentBag(); - var clusterTotals = new Dictionary(); - var excludedClusters = ParseExcludedClusters(TestClient.Configuration.ClusterFilter); - var testFilter = TestClient.Configuration.TestFilter; - foreach (var group in grouped) - { - var type = @group.Key?.GetType(); - var clusterName = type?.Name.Replace("Cluster", "") ?? "UNKNOWN"; - - if (excludedClusters.Contains(clusterName, StringComparer.OrdinalIgnoreCase)) - continue; - - var dop = @group.Key != null && @group.Key.MaxConcurrency > 0 - ? @group.Key.MaxConcurrency - : defaultMaxConcurrency; - - clusterTotals.Add(clusterName, Stopwatch.StartNew()); - - //We group over each cluster group and execute test classes pertaining to that cluster - //in parallel - using (@group.Key ?? System.Reactive.Disposables.Disposable.Empty) - { - @group.Key?.Start(); - await @group.ForEachAsync(dop, async g => - { - var test = g.Collection.DisplayName.Replace("Test collection for", ""); - if (!string.IsNullOrWhiteSpace(testFilter) && test.IndexOf(testFilter, StringComparison.OrdinalIgnoreCase) < 0) - return; - - if (!string.IsNullOrWhiteSpace(testFilter)) Console.WriteLine(" -> " + test); - - try - { - var summary = await RunTestCollectionAsync(messageBus, g.Collection, g.TestCases, cancellationTokenSource); - summaries.Add(summary); - } - catch (TaskCanceledException) - { - } - }); - } - clusterTotals[clusterName].Stop(); - } - - Console.WriteLine("--------"); - Console.WriteLine("Individual cluster running times"); - foreach (var kv in clusterTotals) - Console.WriteLine($"- {kv.Key}: {kv.Value.Elapsed.ToString()}"); - Console.WriteLine("--------"); - - - - return new RunSummary() - { - Total = summaries.Sum(s => s.Total), - Failed = summaries.Sum(s => s.Failed), - Skipped = summaries.Sum(s => s.Skipped) - }; - } - - protected ClusterBase ClusterFixture(ITestCollection testCollection) - { - var clusterType = GetClusterForCollection(testCollection); - - ClusterBase cluster = null; - if (clusterType == null) return null; - if (assemblyFixtureMappings.ContainsKey(clusterType)) - return assemblyFixtureMappings[clusterType] as ClusterBase; - Aggregator.Run(() => - { - var o = Activator.CreateInstance(clusterType); - assemblyFixtureMappings.Add(clusterType, o); - cluster = o as ClusterBase; - }); - return cluster; - } - - public static Type GetClusterForCollection(ITestCollection testCollection) - { - var collectionTypeName = testCollection.DisplayName.Split(' ').Last(); - var collectionType = Type.GetType(collectionTypeName); - var clusterType = collectionType.GetTypeInfo() - .ImplementedInterfaces - .Where(i => i.GetTypeInfo().IsGenericType && i.GetGenericTypeDefinition() == typeof(IClusterFixture<>)) - .Select(i => i.GetTypeInfo().GenericTypeArguments.Single()) - .FirstOrDefault(); - return clusterType; - } - } -} diff --git a/src/Tests/Framework/Xunit/TestCollectionRunner.cs b/src/Tests/Framework/Xunit/TestCollectionRunner.cs deleted file mode 100644 index ac6de1baadc..00000000000 --- a/src/Tests/Framework/Xunit/TestCollectionRunner.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Reflection; -using System.Threading; -using System.Threading.Tasks; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace Xunit -{ - class TestCollectionRunner : XunitTestCollectionRunner - { - readonly Dictionary assemblyFixtureMappings; - readonly IMessageSink diagnosticMessageSink; - - public TestCollectionRunner(Dictionary assemblyFixtureMappings, - ITestCollection testCollection, - IEnumerable testCases, - IMessageSink diagnosticMessageSink, - IMessageBus messageBus, - ITestCaseOrderer testCaseOrderer, - ExceptionAggregator aggregator, - CancellationTokenSource cancellationTokenSource) - : base(testCollection, testCases, diagnosticMessageSink, messageBus, testCaseOrderer, aggregator, cancellationTokenSource) - { - this.assemblyFixtureMappings = assemblyFixtureMappings; - this.diagnosticMessageSink = diagnosticMessageSink; - } - - protected override Task RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo @class, IEnumerable testCases) - { - var combinedFixtures = new Dictionary(assemblyFixtureMappings); - foreach (var kvp in CollectionFixtureMappings) - combinedFixtures[kvp.Key] = kvp.Value; - - // We've done everything we need, so let the built-in types do the rest of the heavy lifting - - return new XunitTestClassRunner(testClass, @class, testCases, diagnosticMessageSink, MessageBus, TestCaseOrderer, new ExceptionAggregator(Aggregator), CancellationTokenSource, combinedFixtures).RunAsync(); - } - } -} diff --git a/src/Tests/Framework/Xunit/TestFramework.cs b/src/Tests/Framework/Xunit/TestFramework.cs deleted file mode 100644 index 1c9006bfaf3..00000000000 --- a/src/Tests/Framework/Xunit/TestFramework.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Reflection; -using Bogus; -using Tests.Framework; -using Tests.Framework.Configuration; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace Xunit -{ - class TestFramework : XunitTestFramework - { - public TestFramework(IMessageSink messageSink) - : base(messageSink) - { } - - protected override ITestFrameworkExecutor CreateExecutor(AssemblyName assemblyName) - { - var config = TestClient.Configuration; - - Randomizer.Seed = new Random(1337); - - Console.WriteLine("Starting tests using config:"); - Console.WriteLine($" - {nameof(config.TestAgainstAlreadyRunningElasticsearch)}: {config.TestAgainstAlreadyRunningElasticsearch}"); - Console.WriteLine($" - {nameof(config.ElasticsearchVersion)}: {config.ElasticsearchVersion}"); - Console.WriteLine($" - {nameof(config.ForceReseed)}: {config.ForceReseed}"); - Console.WriteLine($" - {nameof(config.Mode)}: {config.Mode.ToString()}"); - if (config.Mode == TestMode.Integration) - { - Console.WriteLine($" - {nameof(config.ClusterFilter)}: {config.ClusterFilter}"); - Console.WriteLine($" - {nameof(config.TestFilter)}: {config.TestFilter}"); - - } - Console.WriteLine($" - {nameof(config.RunIntegrationTests)}: {config.RunIntegrationTests}"); - Console.WriteLine($" - {nameof(config.RunUnitTests)}: {config.RunUnitTests}"); - - return new TestFrameworkExecutor(assemblyName, SourceInformationProvider, DiagnosticMessageSink); - } - } -} diff --git a/src/Tests/Framework/Xunit/TestFrameworkExecutor.cs b/src/Tests/Framework/Xunit/TestFrameworkExecutor.cs deleted file mode 100644 index 9d1b8e014fb..00000000000 --- a/src/Tests/Framework/Xunit/TestFrameworkExecutor.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace Xunit -{ - class TestFrameworkExecutor : XunitTestFrameworkExecutor - { - public TestFrameworkExecutor(AssemblyName assemblyName, ISourceInformationProvider sourceInformationProvider, IMessageSink diagnosticMessageSink) - : base(assemblyName, sourceInformationProvider, diagnosticMessageSink) - { - } - - protected override async void RunTestCases(IEnumerable testCases, IMessageSink executionMessageSink, ITestFrameworkExecutionOptions executionOptions) - { - try - { - using (var assemblyRunner = new TestAssemblyRunner(TestAssembly, testCases, DiagnosticMessageSink, executionMessageSink, executionOptions)) - await assemblyRunner.RunAsync(); - - } - catch (Exception e) - { - Console.WriteLine(e); - throw; - } - } - } -} diff --git a/src/Tests/IndexModules/IndexSettings/Settings/RoutingPartitionSizeIndexSettings.cs b/src/Tests/IndexModules/IndexSettings/Settings/RoutingPartitionSizeIndexSettings.cs index 738e9145e1b..27636f3d883 100644 --- a/src/Tests/IndexModules/IndexSettings/Settings/RoutingPartitionSizeIndexSettings.cs +++ b/src/Tests/IndexModules/IndexSettings/Settings/RoutingPartitionSizeIndexSettings.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/IndexModules/UsageTestBase.cs b/src/Tests/IndexModules/UsageTestBase.cs index af144b48c6b..16fbbed44da 100644 --- a/src/Tests/IndexModules/UsageTestBase.cs +++ b/src/Tests/IndexModules/UsageTestBase.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; namespace Tests.Framework diff --git a/src/Tests/Indices/AliasManagement/Alias/AliasUrlTests.cs b/src/Tests/Indices/AliasManagement/Alias/AliasUrlTests.cs index 2b3c1d49468..fec62eb0a24 100644 --- a/src/Tests/Indices/AliasManagement/Alias/AliasUrlTests.cs +++ b/src/Tests/Indices/AliasManagement/Alias/AliasUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/AliasManagement/AliasExists/AliasExistsUrlTests.cs b/src/Tests/Indices/AliasManagement/AliasExists/AliasExistsUrlTests.cs index 95d77e749c0..15f89dd0473 100644 --- a/src/Tests/Indices/AliasManagement/AliasExists/AliasExistsUrlTests.cs +++ b/src/Tests/Indices/AliasManagement/AliasExists/AliasExistsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/AliasManagement/DeleteAlias/DeleteAliasUrlTests.cs b/src/Tests/Indices/AliasManagement/DeleteAlias/DeleteAliasUrlTests.cs index a5fde40eac6..58f94023844 100644 --- a/src/Tests/Indices/AliasManagement/DeleteAlias/DeleteAliasUrlTests.cs +++ b/src/Tests/Indices/AliasManagement/DeleteAlias/DeleteAliasUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/AliasManagement/GetAlias/GetAliasApiTests.cs b/src/Tests/Indices/AliasManagement/GetAlias/GetAliasApiTests.cs index 50599100ba0..b6df804aeeb 100644 --- a/src/Tests/Indices/AliasManagement/GetAlias/GetAliasApiTests.cs +++ b/src/Tests/Indices/AliasManagement/GetAlias/GetAliasApiTests.cs @@ -57,7 +57,7 @@ protected override LazyResponses ClientUsage() => Calls( ); protected override bool ExpectIsValid => true; - protected override int ExpectStatusCode => TestClient.VersionUnderTestSatisfiedBy("<5.5.0") ? 200 : 404; + protected override int ExpectStatusCode => TestingAgainst("<5.5.0") ? 200 : 404; protected override HttpMethod HttpMethod => HttpMethod.GET; protected override string UrlPath => $"_all/_alias/{DefaultSeeder.ProjectsAliasName}%2Cx%2Cy"; protected override void ExpectResponse(IGetAliasResponse response) diff --git a/src/Tests/Indices/AliasManagement/GetAlias/GetAliasUrlTests.cs b/src/Tests/Indices/AliasManagement/GetAlias/GetAliasUrlTests.cs index e305f7a6ab7..07d45380073 100644 --- a/src/Tests/Indices/AliasManagement/GetAlias/GetAliasUrlTests.cs +++ b/src/Tests/Indices/AliasManagement/GetAlias/GetAliasUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/AliasManagement/GetAliasesPointingToIndex/GetAliasesPointingToIndexTests.cs b/src/Tests/Indices/AliasManagement/GetAliasesPointingToIndex/GetAliasesPointingToIndexTests.cs index bb23b3a217d..322386bd252 100644 --- a/src/Tests/Indices/AliasManagement/GetAliasesPointingToIndex/GetAliasesPointingToIndexTests.cs +++ b/src/Tests/Indices/AliasManagement/GetAliasesPointingToIndex/GetAliasesPointingToIndexTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/AliasManagement/GetIndicesPointingToAlias/GetIndicesPointingToAliasTests.cs b/src/Tests/Indices/AliasManagement/GetIndicesPointingToAlias/GetIndicesPointingToAliasTests.cs index aa22aa847ee..72b5c193134 100644 --- a/src/Tests/Indices/AliasManagement/GetIndicesPointingToAlias/GetIndicesPointingToAliasTests.cs +++ b/src/Tests/Indices/AliasManagement/GetIndicesPointingToAlias/GetIndicesPointingToAliasTests.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/AliasManagement/PutAlias/PutAliasUrlTests.cs b/src/Tests/Indices/AliasManagement/PutAlias/PutAliasUrlTests.cs index a19304bb874..2dc9d9ab44c 100644 --- a/src/Tests/Indices/AliasManagement/PutAlias/PutAliasUrlTests.cs +++ b/src/Tests/Indices/AliasManagement/PutAlias/PutAliasUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/Analyze/AnalyzeUrlTests.cs b/src/Tests/Indices/Analyze/AnalyzeUrlTests.cs index 4483a396e25..64cee668548 100644 --- a/src/Tests/Indices/Analyze/AnalyzeUrlTests.cs +++ b/src/Tests/Indices/Analyze/AnalyzeUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexManagement/CreateIndex/CreateIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/CreateIndex/CreateIndexUrlTests.cs index 1bad355a9fa..3286cbc0796 100644 --- a/src/Tests/Indices/IndexManagement/CreateIndex/CreateIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/CreateIndex/CreateIndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexManagement/DeleteIndex/DeleteIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/DeleteIndex/DeleteIndexUrlTests.cs index 55dd424008f..cc8e02a5980 100644 --- a/src/Tests/Indices/IndexManagement/DeleteIndex/DeleteIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/DeleteIndex/DeleteIndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/IndexManagement/GetIndex/GetIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/GetIndex/GetIndexUrlTests.cs index 1e5e515d43b..167527a72d1 100644 --- a/src/Tests/Indices/IndexManagement/GetIndex/GetIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/GetIndex/GetIndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/IndexManagement/IndicesExists/IndexExistsUrlTests.cs b/src/Tests/Indices/IndexManagement/IndicesExists/IndexExistsUrlTests.cs index daadb89c747..ebae954f3ed 100644 --- a/src/Tests/Indices/IndexManagement/IndicesExists/IndexExistsUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/IndicesExists/IndexExistsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/IndexManagement/OpenCloseIndex/CloseIndex/CloseIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/OpenCloseIndex/CloseIndex/CloseIndexUrlTests.cs index 901483d4a17..489d8a2b1bc 100644 --- a/src/Tests/Indices/IndexManagement/OpenCloseIndex/CloseIndex/CloseIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/OpenCloseIndex/CloseIndex/CloseIndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/IndexManagement/OpenCloseIndex/OpenIndex/OpenIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/OpenCloseIndex/OpenIndex/OpenIndexUrlTests.cs index e8c8f99d573..5c86d0904f9 100644 --- a/src/Tests/Indices/IndexManagement/OpenCloseIndex/OpenIndex/OpenIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/OpenCloseIndex/OpenIndex/OpenIndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/IndexManagement/RolloverIndex/RolloverIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/RolloverIndex/RolloverIndexUrlTests.cs index fc41e329913..149a870a721 100644 --- a/src/Tests/Indices/IndexManagement/RolloverIndex/RolloverIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/RolloverIndex/RolloverIndexUrlTests.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexManagement/ShrinkIndex/ShrinkIndexUrlTests.cs b/src/Tests/Indices/IndexManagement/ShrinkIndex/ShrinkIndexUrlTests.cs index 7acacca7919..f51ec2d01a2 100644 --- a/src/Tests/Indices/IndexManagement/ShrinkIndex/ShrinkIndexUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/ShrinkIndex/ShrinkIndexUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexManagement/TypesExists/TypeExistsUrlTests.cs b/src/Tests/Indices/IndexManagement/TypesExists/TypeExistsUrlTests.cs index b507c2d09a5..9c76cbc8b9b 100644 --- a/src/Tests/Indices/IndexManagement/TypesExists/TypeExistsUrlTests.cs +++ b/src/Tests/Indices/IndexManagement/TypesExists/TypeExistsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/IndexSettings/GetIndexSettings/GetIndexSettingsUrlTests.cs b/src/Tests/Indices/IndexSettings/GetIndexSettings/GetIndexSettingsUrlTests.cs index bae2edab8d8..b01012aeb16 100644 --- a/src/Tests/Indices/IndexSettings/GetIndexSettings/GetIndexSettingsUrlTests.cs +++ b/src/Tests/Indices/IndexSettings/GetIndexSettings/GetIndexSettingsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Nest.Indices; diff --git a/src/Tests/Indices/IndexSettings/IndexTemplates/DeleteIndexTemplate/DeleteIndexTemplateUrlTests.cs b/src/Tests/Indices/IndexSettings/IndexTemplates/DeleteIndexTemplate/DeleteIndexTemplateUrlTests.cs index 8d3f6ce76db..fe08330f852 100644 --- a/src/Tests/Indices/IndexSettings/IndexTemplates/DeleteIndexTemplate/DeleteIndexTemplateUrlTests.cs +++ b/src/Tests/Indices/IndexSettings/IndexTemplates/DeleteIndexTemplate/DeleteIndexTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexSettings/IndexTemplates/GetIndexTemplate/GetIndexTemplateUrlTests.cs b/src/Tests/Indices/IndexSettings/IndexTemplates/GetIndexTemplate/GetIndexTemplateUrlTests.cs index 59abbbfbe25..5129950452f 100644 --- a/src/Tests/Indices/IndexSettings/IndexTemplates/GetIndexTemplate/GetIndexTemplateUrlTests.cs +++ b/src/Tests/Indices/IndexSettings/IndexTemplates/GetIndexTemplate/GetIndexTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexSettings/IndexTemplates/IndexTemplateExists/IndexTemplateExistsUrlTests.cs b/src/Tests/Indices/IndexSettings/IndexTemplates/IndexTemplateExists/IndexTemplateExistsUrlTests.cs index 4e699581536..74b5d70d62a 100644 --- a/src/Tests/Indices/IndexSettings/IndexTemplates/IndexTemplateExists/IndexTemplateExistsUrlTests.cs +++ b/src/Tests/Indices/IndexSettings/IndexTemplates/IndexTemplateExists/IndexTemplateExistsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateUrlTests.cs b/src/Tests/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateUrlTests.cs index 2e68aac2615..70b7d512957 100644 --- a/src/Tests/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateUrlTests.cs +++ b/src/Tests/Indices/IndexSettings/IndexTemplates/PutIndexTemplate/PutIndexTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/IndexSettings/UpdateIndicesSettings/UpdateIndexSettingsUrlTests.cs b/src/Tests/Indices/IndexSettings/UpdateIndicesSettings/UpdateIndexSettingsUrlTests.cs index c069eb17a4a..fbc7596b101 100644 --- a/src/Tests/Indices/IndexSettings/UpdateIndicesSettings/UpdateIndexSettingsUrlTests.cs +++ b/src/Tests/Indices/IndexSettings/UpdateIndicesSettings/UpdateIndexSettingsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Nest.Indices; diff --git a/src/Tests/Indices/MappingManagement/GetFieldMapping/GetFieldMappingUrlTests.cs b/src/Tests/Indices/MappingManagement/GetFieldMapping/GetFieldMappingUrlTests.cs index 0513109f325..a22f4313cc6 100644 --- a/src/Tests/Indices/MappingManagement/GetFieldMapping/GetFieldMappingUrlTests.cs +++ b/src/Tests/Indices/MappingManagement/GetFieldMapping/GetFieldMappingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/MappingManagement/GetMapping/GetMappingApiTest.cs b/src/Tests/Indices/MappingManagement/GetMapping/GetMappingApiTest.cs index afec0f2f130..f21c6ec219a 100644 --- a/src/Tests/Indices/MappingManagement/GetMapping/GetMappingApiTest.cs +++ b/src/Tests/Indices/MappingManagement/GetMapping/GetMappingApiTest.cs @@ -46,7 +46,7 @@ protected override void ExpectResponse(IGetMappingResponse response) visitor.CountsShouldContainKeyAndCountBe("type", 1); //ranges property is ignored on versions before 5.2.0 - var supportsRanges = TestClient.VersionUnderTestSatisfiedBy(">=5.2.0"); + var supportsRanges = TestingAgainst(">=5.2.0"); visitor.CountsShouldContainKeyAndCountBe("object", supportsRanges ? 5 : 4); visitor.CountsShouldContainKeyAndCountBe("date", 4); visitor.CountsShouldContainKeyAndCountBe("text", 11); @@ -64,7 +64,7 @@ protected override void ExpectResponse(IGetMappingResponse response) visitor.CountsShouldContainKeyAndCountBe("double_range", 1); visitor.CountsShouldContainKeyAndCountBe("long_range", 1); - if (TestClient.VersionUnderTestSatisfiedBy(">=5.5.0")) + if (TestingAgainst(">=5.5.0")) visitor.CountsShouldContainKeyAndCountBe("ip_range", 1); } } diff --git a/src/Tests/Indices/MappingManagement/GetMapping/GetMappingUrlTests.cs b/src/Tests/Indices/MappingManagement/GetMapping/GetMappingUrlTests.cs index a3495300981..6f9189c6fe0 100644 --- a/src/Tests/Indices/MappingManagement/GetMapping/GetMappingUrlTests.cs +++ b/src/Tests/Indices/MappingManagement/GetMapping/GetMappingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs index 9929286dbd0..24a33511863 100644 --- a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs +++ b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingUrlTests.cs b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingUrlTests.cs index 3fa3d58c31d..14075ac1d42 100644 --- a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingUrlTests.cs +++ b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Indices/Monitoring/IndicesRecovery/RecoveryStatusUrlTests.cs b/src/Tests/Indices/Monitoring/IndicesRecovery/RecoveryStatusUrlTests.cs index 80b61a8321d..e3e8329e61a 100644 --- a/src/Tests/Indices/Monitoring/IndicesRecovery/RecoveryStatusUrlTests.cs +++ b/src/Tests/Indices/Monitoring/IndicesRecovery/RecoveryStatusUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/Monitoring/IndicesSegments/SegmentsUrlTests.cs b/src/Tests/Indices/Monitoring/IndicesSegments/SegmentsUrlTests.cs index d17ea52b130..022e601a9f9 100644 --- a/src/Tests/Indices/Monitoring/IndicesSegments/SegmentsUrlTests.cs +++ b/src/Tests/Indices/Monitoring/IndicesSegments/SegmentsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresApiTests.cs b/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresApiTests.cs index daf6afd2e52..ecdae14456e 100644 --- a/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresApiTests.cs +++ b/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresApiTests.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresUrlTests.cs b/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresUrlTests.cs index 9df688cc6ab..4e0a2ba65dd 100644 --- a/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresUrlTests.cs +++ b/src/Tests/Indices/Monitoring/IndicesShardStores/IndicesShardStoresUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/Monitoring/IndicesStats/IndicesStatsUrlTests.cs b/src/Tests/Indices/Monitoring/IndicesStats/IndicesStatsUrlTests.cs index 31efc76e5f1..1a781bc6316 100644 --- a/src/Tests/Indices/Monitoring/IndicesStats/IndicesStatsUrlTests.cs +++ b/src/Tests/Indices/Monitoring/IndicesStats/IndicesStatsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/StatusManagement/ClearCache/ClearCacheUrlTests.cs b/src/Tests/Indices/StatusManagement/ClearCache/ClearCacheUrlTests.cs index decf38b9f24..307b19626b5 100644 --- a/src/Tests/Indices/StatusManagement/ClearCache/ClearCacheUrlTests.cs +++ b/src/Tests/Indices/StatusManagement/ClearCache/ClearCacheUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/StatusManagement/Flush/FlushUrlTests.cs b/src/Tests/Indices/StatusManagement/Flush/FlushUrlTests.cs index fee41372511..b9e2d675220 100644 --- a/src/Tests/Indices/StatusManagement/Flush/FlushUrlTests.cs +++ b/src/Tests/Indices/StatusManagement/Flush/FlushUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeApiTests.cs b/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeApiTests.cs index eab2fa2cfd7..c630d2ea12f 100644 --- a/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeApiTests.cs +++ b/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeUrlTests.cs b/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeUrlTests.cs index 2c8be08d0bd..35d16e3fc1b 100644 --- a/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeUrlTests.cs +++ b/src/Tests/Indices/StatusManagement/ForceMerge/ForceMergeUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/StatusManagement/Refresh/RefreshUrlTests.cs b/src/Tests/Indices/StatusManagement/Refresh/RefreshUrlTests.cs index 1b98d63d199..9094ce43859 100644 --- a/src/Tests/Indices/StatusManagement/Refresh/RefreshUrlTests.cs +++ b/src/Tests/Indices/StatusManagement/Refresh/RefreshUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/StatusManagement/SyncedFlush/SyncedFlushUrlTests.cs b/src/Tests/Indices/StatusManagement/SyncedFlush/SyncedFlushUrlTests.cs index ba823be4fce..79586ac1e0f 100644 --- a/src/Tests/Indices/StatusManagement/SyncedFlush/SyncedFlushUrlTests.cs +++ b/src/Tests/Indices/StatusManagement/SyncedFlush/SyncedFlushUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Indices/StatusManagement/Upgrade/UpgradeApiTests.cs b/src/Tests/Indices/StatusManagement/Upgrade/UpgradeApiTests.cs index 1fd2f305f95..86595056b5f 100644 --- a/src/Tests/Indices/StatusManagement/Upgrade/UpgradeApiTests.cs +++ b/src/Tests/Indices/StatusManagement/Upgrade/UpgradeApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Indices/StatusManagement/Upgrade/UpgradeUrlTests.cs b/src/Tests/Indices/StatusManagement/Upgrade/UpgradeUrlTests.cs index f00f51b9652..d11d88e731b 100644 --- a/src/Tests/Indices/StatusManagement/Upgrade/UpgradeUrlTests.cs +++ b/src/Tests/Indices/StatusManagement/Upgrade/UpgradeUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Ingest/DeletePipeline/DeletePipelineUrlTests.cs b/src/Tests/Ingest/DeletePipeline/DeletePipelineUrlTests.cs index 1f54f191327..777a224f773 100644 --- a/src/Tests/Ingest/DeletePipeline/DeletePipelineUrlTests.cs +++ b/src/Tests/Ingest/DeletePipeline/DeletePipelineUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Ingest/GetPipeline/GetPipelineUrlTests.cs b/src/Tests/Ingest/GetPipeline/GetPipelineUrlTests.cs index f27a3eb8a3f..cd5f684aa18 100644 --- a/src/Tests/Ingest/GetPipeline/GetPipelineUrlTests.cs +++ b/src/Tests/Ingest/GetPipeline/GetPipelineUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Ingest/Processor/GrokProcessorPatternsApiTests.cs b/src/Tests/Ingest/Processor/GrokProcessorPatternsApiTests.cs index de073a3f944..92f5bcf0ad0 100644 --- a/src/Tests/Ingest/Processor/GrokProcessorPatternsApiTests.cs +++ b/src/Tests/Ingest/Processor/GrokProcessorPatternsApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Ingest/Processor/GrokProcessorPatternsTests.cs b/src/Tests/Ingest/Processor/GrokProcessorPatternsTests.cs index 90fbf474cc8..0e0535a18d5 100644 --- a/src/Tests/Ingest/Processor/GrokProcessorPatternsTests.cs +++ b/src/Tests/Ingest/Processor/GrokProcessorPatternsTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Ingest/Processor/GrokProcessorPatternsUnitTests.cs b/src/Tests/Ingest/Processor/GrokProcessorPatternsUnitTests.cs index f6336b885fa..9c10799ab7e 100644 --- a/src/Tests/Ingest/Processor/GrokProcessorPatternsUnitTests.cs +++ b/src/Tests/Ingest/Processor/GrokProcessorPatternsUnitTests.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/Ingest/ProcessorSerializationTests.cs b/src/Tests/Ingest/ProcessorSerializationTests.cs index 583ce6ec0ba..9aeb4fd2324 100644 --- a/src/Tests/Ingest/ProcessorSerializationTests.cs +++ b/src/Tests/Ingest/ProcessorSerializationTests.cs @@ -5,6 +5,7 @@ using Nest; using Tests.Framework; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; namespace Tests.Ingest { diff --git a/src/Tests/Ingest/PutPipeline/PutPipelineUrlTests.cs b/src/Tests/Ingest/PutPipeline/PutPipelineUrlTests.cs index 70612747514..4c22b30b002 100644 --- a/src/Tests/Ingest/PutPipeline/PutPipelineUrlTests.cs +++ b/src/Tests/Ingest/PutPipeline/PutPipelineUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Ingest/SimulatePipeline/SimulatePipelineUrlTests.cs b/src/Tests/Ingest/SimulatePipeline/SimulatePipelineUrlTests.cs index 33d6805e0e2..acc37490618 100644 --- a/src/Tests/Ingest/SimulatePipeline/SimulatePipelineUrlTests.cs +++ b/src/Tests/Ingest/SimulatePipeline/SimulatePipelineUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Mapping/LocalMetadata/LocalMetadataVisitorTests.cs b/src/Tests/Mapping/LocalMetadata/LocalMetadataVisitorTests.cs index 0f3d994b886..33c948e5433 100644 --- a/src/Tests/Mapping/LocalMetadata/LocalMetadataVisitorTests.cs +++ b/src/Tests/Mapping/LocalMetadata/LocalMetadataVisitorTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Mapping.Types.Core.Text; diff --git a/src/Tests/Mapping/Types/AttributeTestsBase.cs b/src/Tests/Mapping/Types/AttributeTestsBase.cs index 5b276780be0..79722a0e93d 100644 --- a/src/Tests/Mapping/Types/AttributeTestsBase.cs +++ b/src/Tests/Mapping/Types/AttributeTestsBase.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.RoundTripper; diff --git a/src/Tests/Mapping/Types/Core/Keyword/KeywordPropertyTests.cs b/src/Tests/Mapping/Types/Core/Keyword/KeywordPropertyTests.cs index b92d3cf27b3..970288a8980 100644 --- a/src/Tests/Mapping/Types/Core/Keyword/KeywordPropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Keyword/KeywordPropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangeAttributeTests.cs index cdeb394c5f8..568eab30172 100644 --- a/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangeAttributeTests.cs @@ -1,4 +1,5 @@ using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangePropertyTests.cs index 7ac4f74d2be..31c15748b08 100644 --- a/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/DateRange/DateRangePropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangeAttributeTests.cs index 1d7643337eb..41785adc512 100644 --- a/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangeAttributeTests.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; namespace Tests.Mapping.Types.Core.Range.DoubleRange diff --git a/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangePropertyTests.cs index fa3e9fc8626..230a49d6305 100644 --- a/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/DoubleRange/DoubleRangePropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangeAttributeTests.cs index 5e4d16f6a87..68a4abfcb4a 100644 --- a/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangeAttributeTests.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; namespace Tests.Mapping.Types.Core.Range.FloatRange diff --git a/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangePropertyTests.cs index 943e0b304ae..f06ca545d31 100644 --- a/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/FloatRange/FloatRangePropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangeAttributeTests.cs index d8d0a86da28..d7d1df2a1b8 100644 --- a/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangeAttributeTests.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; namespace Tests.Mapping.Types.Core.Range.IntegerRange diff --git a/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangePropertyTests.cs index 06eb743be84..4d8cbaf69b2 100644 --- a/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IntegerRange/IntegerRangePropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs index 3f10cf2f037..e45817f681c 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; namespace Tests.Mapping.Types.Core.Range.IpRange diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs index 4a71de9515d..df5c091f345 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangeAttributeTests.cs index 374a8c9e13f..ab577cfde78 100644 --- a/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangeAttributeTests.cs @@ -1,4 +1,5 @@ -using Nest; +using Elastic.Xunit.XunitPlumbing; +using Nest; using Tests.Framework; namespace Tests.Mapping.Types.Core.Range.LongRange diff --git a/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangePropertyTests.cs index 9d6a11b4692..304ea8e9f16 100644 --- a/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/LongRange/LongRangePropertyTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Modules/Scripting/DeleteScript/DeleteScriptUrlTests.cs b/src/Tests/Modules/Scripting/DeleteScript/DeleteScriptUrlTests.cs index 59036fb51b4..7e1322937e5 100644 --- a/src/Tests/Modules/Scripting/DeleteScript/DeleteScriptUrlTests.cs +++ b/src/Tests/Modules/Scripting/DeleteScript/DeleteScriptUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/Scripting/GetScript/GetScriptUrlTests.cs b/src/Tests/Modules/Scripting/GetScript/GetScriptUrlTests.cs index 2dfe2e6672b..e3b2bd6327f 100644 --- a/src/Tests/Modules/Scripting/GetScript/GetScriptUrlTests.cs +++ b/src/Tests/Modules/Scripting/GetScript/GetScriptUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/Scripting/PutScript/PutScriptUrlTests.cs b/src/Tests/Modules/Scripting/PutScript/PutScriptUrlTests.cs index 67efa1c67f3..271b14a82a5 100644 --- a/src/Tests/Modules/Scripting/PutScript/PutScriptUrlTests.cs +++ b/src/Tests/Modules/Scripting/PutScript/PutScriptUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Repositories/CreateRepository/CreateRepositoryUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Repositories/CreateRepository/CreateRepositoryUrlTests.cs index 1fe3834f5d2..8cbe9cac002 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Repositories/CreateRepository/CreateRepositoryUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Repositories/CreateRepository/CreateRepositoryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Repositories/DeleteRepository/DeleteRepositoryUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Repositories/DeleteRepository/DeleteRepositoryUrlTests.cs index fd024e87a2f..17e5fc0bd90 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Repositories/DeleteRepository/DeleteRepositoryUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Repositories/DeleteRepository/DeleteRepositoryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Repositories/GetRepository/GetRepositoryUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Repositories/GetRepository/GetRepositoryUrlTests.cs index 243ed807847..065510c4ac3 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Repositories/GetRepository/GetRepositoryUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Repositories/GetRepository/GetRepositoryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Repositories/RepositoryCrudTests.cs b/src/Tests/Modules/SnapshotAndRestore/Repositories/RepositoryCrudTests.cs index 465ba0183e2..3fe9a4108bc 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Repositories/RepositoryCrudTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Repositories/RepositoryCrudTests.cs @@ -14,7 +14,7 @@ public class RepositoryCrudTests { public RepositoryCrudTests(IntrusiveOperationCluster cluster, EndpointUsage usage) : base(cluster, usage) { - _rootRepositoryPath = cluster.Node.FileSystem.RepositoryPath; + _rootRepositoryPath = cluster.FileSystem.RepositoryPath; } protected override LazyResponses Create() => Calls( diff --git a/src/Tests/Modules/SnapshotAndRestore/Repositories/VerifyRepository/VerifyRepositoryUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Repositories/VerifyRepository/VerifyRepositoryUrlTests.cs index 0afe144f466..bb6b21038ea 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Repositories/VerifyRepository/VerifyRepositoryUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Repositories/VerifyRepository/VerifyRepositoryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreApiTests.cs b/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreApiTests.cs index 5f545603959..4dddae77037 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreApiTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreApiTests.cs @@ -18,7 +18,7 @@ public RestoreApiTests(IntrusiveOperationCluster cluster, EndpointUsage usage) : var createRepository = this.Client.CreateRepository(RepositoryName, r => r .FileSystem(fs => fs - .Settings(Path.Combine(cluster.Node.FileSystem.RepositoryPath, RepositoryName)) + .Settings(Path.Combine(cluster.FileSystem.RepositoryPath, RepositoryName)) ) ); if (!createRepository.IsValid) diff --git a/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreUrlTests.cs index ea801074283..73991c75fd0 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Restore/RestoreUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Snapshot/DeleteSnapshot/DeleteSnapshotUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Snapshot/DeleteSnapshot/DeleteSnapshotUrlTests.cs index 3a62b2237c0..db295b9a198 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Snapshot/DeleteSnapshot/DeleteSnapshotUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Snapshot/DeleteSnapshot/DeleteSnapshotUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotUrlTests.cs index 4fa9ebb05b5..fe2c559151b 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Snapshot/GetSnapshot/GetSnapshotUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotUrlTests.cs index 15f27c8afaf..c8be7d7dc90 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Snapshot/Snapshot/SnapshotUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotCrudTests.cs b/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotCrudTests.cs index d4a319a209c..012df077c5d 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotCrudTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotCrudTests.cs @@ -18,7 +18,7 @@ public class SnapshotCrudTests public SnapshotCrudTests(IntrusiveOperationCluster cluster, EndpointUsage usage) : base(cluster, usage) { - _repositoryLocation = Path.Combine(cluster.Node.FileSystem.RepositoryPath, RandomString()); + _repositoryLocation = Path.Combine(cluster.FileSystem.RepositoryPath, RandomString()); var create = this.Client.CreateRepository(_repositoryName, cr => cr .FileSystem(fs => fs diff --git a/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotStatus/SnapshotStatusUrlTests.cs b/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotStatus/SnapshotStatusUrlTests.cs index a510da0562a..800ef397437 100644 --- a/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotStatus/SnapshotStatusUrlTests.cs +++ b/src/Tests/Modules/SnapshotAndRestore/Snapshot/SnapshotStatus/SnapshotStatusUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Program.cs b/src/Tests/Program.cs index 79ca70e0de2..b33f0068828 100644 --- a/src/Tests/Program.cs +++ b/src/Tests/Program.cs @@ -5,6 +5,8 @@ using System.Reflection; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; +using Elastic.Managed; +using FluentAssertions; using Tests.Framework; using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch; @@ -22,6 +24,7 @@ namespace Tests // We provide an alternative StartupObject as part of the csproj for e.g `dotnet run` or executable output // That will run the benchmarking/profiling. public class Program { } + public class BenchmarkProgram { static BenchmarkProgram() @@ -65,10 +68,9 @@ static BenchmarkProgram() public static void Main(string[] args) { if (args.Length == 0) - Console.WriteLine("Must specify at least one argument: TestAssemblyPath, Profile or Benchmark "); + Console.WriteLine("Must specify at least one argument: Profile/Benchmark"); var arguments = args.Skip(1).ToArray(); - if (args[0].Equals("Profile", StringComparison.OrdinalIgnoreCase)) { #if DOTNETCORE @@ -111,7 +113,7 @@ public static void Main(string[] args) } #if !DOTNETCORE - private static IEnumerable CreateProfilingFactory(ClusterBase cluster) + private static IEnumerable CreateProfilingFactory(ProfilingCluster cluster) { yield return new PerformanceProfileFactory(SdkPath, OutputPath, cluster, Assembly.GetExecutingAssembly(), new ColoredConsoleWriter()); yield return new TimelineProfileFactory(SdkPath, OutputPath, cluster, Assembly.GetExecutingAssembly(), new ColoredConsoleWriter()); diff --git a/src/Tests/Properties/Xunit.cs b/src/Tests/Properties/Xunit.cs deleted file mode 100644 index be106994009..00000000000 --- a/src/Tests/Properties/Xunit.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System.Reflection; - -[assembly: Xunit.TestFrameworkAttribute("Xunit.TestFramework", "Tests")] diff --git a/src/Tests/QueryDsl/BoolDsl/BoolApiTests.cs b/src/Tests/QueryDsl/BoolDsl/BoolApiTests.cs index a71072aa9a5..4b7b67f64e8 100644 --- a/src/Tests/QueryDsl/BoolDsl/BoolApiTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/BoolApiTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -26,7 +27,7 @@ internal static class BoolDslTestExtensions public static QueryContainer O(this QueryContainerDescriptor q, E option) => q.Term(p => p.Option, option); } - public class BoolCluster : ClusterBase + public class BoolCluster : ClientTestClusterBase { [JsonConverter(typeof(StringEnumConverter))] public enum E { Option1, Option2 } @@ -40,9 +41,9 @@ public class A public static IList Documents => Enumerable.Range(0, 20).Select(i => new A { Id = i + 1, Option = Options[i % 2] }).ToList(); } - protected override void SeedNode() + protected override void SeedCluster() { - var client = this.Node.Client; + var client = this.Client; var index = client.CreateIndex(Index(), i => i .Mappings(map => map .Map(m => m diff --git a/src/Tests/QueryDsl/BoolDsl/BoolDsl.doc.cs b/src/Tests/QueryDsl/BoolDsl/BoolDsl.doc.cs index bec7762275a..988140aac55 100644 --- a/src/Tests/QueryDsl/BoolDsl/BoolDsl.doc.cs +++ b/src/Tests/QueryDsl/BoolDsl/BoolDsl.doc.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Text; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/AndAssignManyManualBoolsTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/AndAssignManyManualBoolsTests.cs index b4d4bc05cc4..40b4d595329 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/AndAssignManyManualBoolsTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/AndAssignManyManualBoolsTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorOnManualBoolsTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorOnManualBoolsTests.cs index f7621fbaddc..9b317bda712 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorOnManualBoolsTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorOnManualBoolsTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorUsageTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorUsageTests.cs index 577975851bd..9a66916f247 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorUsageTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/AndOperatorUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/CombinatorialUsageTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/CombinatorialUsageTests.cs index 0625f25fe51..741d7dcf29a 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/CombinatorialUsageTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/CombinatorialUsageTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/NotOperatorUsageTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/NotOperatorUsageTests.cs index 54895d52a03..74c9abf0183 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/NotOperatorUsageTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/NotOperatorUsageTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/OrAssignManyManualBoolsTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/OrAssignManyManualBoolsTests.cs index 1b2d164baa6..e01c574b300 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/OrAssignManyManualBoolsTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/OrAssignManyManualBoolsTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorOnManualBoolsTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorOnManualBoolsTests.cs index deadab4d8a9..c788d64a62a 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorOnManualBoolsTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorOnManualBoolsTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorUsageTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorUsageTests.cs index 334faa4cd1d..b30b83b5d92 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorUsageTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/OrOperatorUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/BoolDsl/Operators/UnaryAddOperatorUsageTests.cs b/src/Tests/QueryDsl/BoolDsl/Operators/UnaryAddOperatorUsageTests.cs index e8a5976d605..674793abd48 100644 --- a/src/Tests/QueryDsl/BoolDsl/Operators/UnaryAddOperatorUsageTests.cs +++ b/src/Tests/QueryDsl/BoolDsl/Operators/UnaryAddOperatorUsageTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/Compound/Bool/BoolDslComplexQueryUsageTests.cs b/src/Tests/QueryDsl/Compound/Bool/BoolDslComplexQueryUsageTests.cs index a7ba6380e05..200e04c43a9 100644 --- a/src/Tests/QueryDsl/Compound/Bool/BoolDslComplexQueryUsageTests.cs +++ b/src/Tests/QueryDsl/Compound/Bool/BoolDslComplexQueryUsageTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/QueryDsl/Compound/Bool/BoolQueryUsageTests.cs b/src/Tests/QueryDsl/Compound/Bool/BoolQueryUsageTests.cs index 817ebc7df9c..f1e6b8d8d11 100644 --- a/src/Tests/QueryDsl/Compound/Bool/BoolQueryUsageTests.cs +++ b/src/Tests/QueryDsl/Compound/Bool/BoolQueryUsageTests.cs @@ -3,6 +3,7 @@ using Tests.Framework.Integration; using Tests.Framework.MockData; using System; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using FluentAssertions; using Tests.Framework.ManagedElasticsearch.Clusters; diff --git a/src/Tests/QueryDsl/Compound/Dismax/DismaxQueryUsageTests.cs b/src/Tests/QueryDsl/Compound/Dismax/DismaxQueryUsageTests.cs index 702b37115b0..1f6df93038e 100644 --- a/src/Tests/QueryDsl/Compound/Dismax/DismaxQueryUsageTests.cs +++ b/src/Tests/QueryDsl/Compound/Dismax/DismaxQueryUsageTests.cs @@ -4,6 +4,7 @@ using Tests.Framework.MockData; using Tests.Framework; using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Tests.Framework.ManagedElasticsearch.Clusters; diff --git a/src/Tests/QueryDsl/QueryDslIntegrationTestsBase.cs b/src/Tests/QueryDsl/QueryDslIntegrationTestsBase.cs index 7d2e9489b05..315294edc2c 100644 --- a/src/Tests/QueryDsl/QueryDslIntegrationTestsBase.cs +++ b/src/Tests/QueryDsl/QueryDslIntegrationTestsBase.cs @@ -14,7 +14,7 @@ namespace Tests.QueryDsl { public abstract class QueryDslIntegrationTestsBase : ApiIntegrationTestBase, ISearchRequest, SearchDescriptor, SearchRequest> { - protected QueryDslIntegrationTestsBase(ClusterBase cluster, EndpointUsage usage) : base(cluster, usage) { } + protected QueryDslIntegrationTestsBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.Search(f), fluentAsync: (client, f) => client.SearchAsync(f), diff --git a/src/Tests/QueryDsl/QueryDslUsageTestsBase.cs b/src/Tests/QueryDsl/QueryDslUsageTestsBase.cs index 276e06ee0db..22d44e83901 100644 --- a/src/Tests/QueryDsl/QueryDslUsageTestsBase.cs +++ b/src/Tests/QueryDsl/QueryDslUsageTestsBase.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -13,7 +14,7 @@ namespace Tests.QueryDsl { public abstract class QueryDslUsageTestsBase : ApiTestBase, ISearchRequest, SearchDescriptor, SearchRequest> { - protected QueryDslUsageTestsBase(ClusterBase cluster, EndpointUsage usage) : base(cluster, usage) { } + protected QueryDslUsageTestsBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.Search(f), fluentAsync: (client, f) => client.SearchAsync(f), diff --git a/src/Tests/QueryDsl/Specialized/Percolate/PercolateQueryUsageTests.cs b/src/Tests/QueryDsl/Specialized/Percolate/PercolateQueryUsageTests.cs index 651cb6c9622..e2a18879520 100644 --- a/src/Tests/QueryDsl/Specialized/Percolate/PercolateQueryUsageTests.cs +++ b/src/Tests/QueryDsl/Specialized/Percolate/PercolateQueryUsageTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/QueryDsl/Verbatim/VerbatimAndStrictQueryUsageTests.cs b/src/Tests/QueryDsl/Verbatim/VerbatimAndStrictQueryUsageTests.cs index fcaf94416de..51e7fee6404 100644 --- a/src/Tests/QueryDsl/Verbatim/VerbatimAndStrictQueryUsageTests.cs +++ b/src/Tests/QueryDsl/Verbatim/VerbatimAndStrictQueryUsageTests.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; diff --git a/src/Tests/Reproduce/ConnectionReuseAndBalancing.cs b/src/Tests/Reproduce/ConnectionReuseAndBalancing.cs index 513ef3e431a..1e838452280 100644 --- a/src/Tests/Reproduce/ConnectionReuseAndBalancing.cs +++ b/src/Tests/Reproduce/ConnectionReuseAndBalancing.cs @@ -11,16 +11,17 @@ using FluentAssertions; using System.Threading; using System.Reactive.Linq; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework.ManagedElasticsearch.Clusters; using static Nest.Infer; namespace Tests.Reproduce { - public class ConnectionReuseCluster : ClusterBase { } + public class ConnectionReuseCluster : ClientTestClusterBase { } public class ConnectionReuseAndBalancing : IClusterFixture { - + private static bool IsCurlHandler { get; } = #if DOTNETCORE typeof(HttpClientHandler).Assembly().GetType("System.Net.Http.CurlHandler") != null; @@ -66,19 +67,20 @@ private static void AssertHttpStats(IElasticClient c, INodesStatsResponse r, int const int leeWay = 10; var connectionLimit = c.ConnectionSettings.ConnectionLimit; var maxCurrent = connectionLimit; + var maxCurrentOpen = connectionLimit + 1; //cluster bootstrap opens it own connections foreach (var node in r.Nodes.Values) //in our cluster we only have 1 node { node.Http.TotalOpened.Should().BeGreaterThan(2, "We want to see some concurrency"); var h = node.Http; - node.Http.CurrentOpen.Should().BeLessOrEqualTo(maxCurrent, $"CurrentOpen exceed our connection limit {maxCurrent}"); + node.Http.CurrentOpen.Should().BeLessOrEqualTo(maxCurrentOpen, $"CurrentOpen exceed our connection limit {maxCurrent}"); string errorMessage; int iterationMax; if (!IsCurlHandler) { - //on non curl connections we expect full connection reuse + //on non curl connections we expect full connection reuse //we allow some leeway on the maxOpened because of connections setup and teared down //during the initial bootstrap procudure from the test framework getting the cluster up. iterationMax = maxCurrent + leeWay; @@ -99,7 +101,7 @@ private static void AssertHttpStats(IElasticClient c, INodesStatsResponse r, int } } - private async Task IndexMockData(IElasticClient c, int requestsPerIteration) + private async Task IndexMockData(IElasticClient c, int requestsPerIteration) { var tokenSource = new CancellationTokenSource(); await c.DeleteIndexAsync(Index(), cancellationToken: tokenSource.Token); diff --git a/src/Tests/Reproduce/CovariantSearchDateParsing.cs b/src/Tests/Reproduce/CovariantSearchDateParsing.cs index 583149ef7ed..01ea415e637 100644 --- a/src/Tests/Reproduce/CovariantSearchDateParsing.cs +++ b/src/Tests/Reproduce/CovariantSearchDateParsing.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using FluentAssertions; diff --git a/src/Tests/Reproduce/DateSerialization.cs b/src/Tests/Reproduce/DateSerialization.cs index 886e12b0b9d..bd7f23a7f1a 100644 --- a/src/Tests/Reproduce/DateSerialization.cs +++ b/src/Tests/Reproduce/DateSerialization.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Reproduce/GithubIssue1863.cs b/src/Tests/Reproduce/GithubIssue1863.cs index ef1a3ee63f3..604f4d6ef1e 100644 --- a/src/Tests/Reproduce/GithubIssue1863.cs +++ b/src/Tests/Reproduce/GithubIssue1863.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Document.Multiple.Reindex; diff --git a/src/Tests/Reproduce/GithubIssue1901.cs b/src/Tests/Reproduce/GithubIssue1901.cs index 3487dc291e3..0b4ce607c2c 100644 --- a/src/Tests/Reproduce/GithubIssue1901.cs +++ b/src/Tests/Reproduce/GithubIssue1901.cs @@ -1,6 +1,7 @@ using System; using System.Linq.Expressions; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Reproduce/GithubIssue1906.cs b/src/Tests/Reproduce/GithubIssue1906.cs index 89f5cbca06d..8d700bbca51 100644 --- a/src/Tests/Reproduce/GithubIssue1906.cs +++ b/src/Tests/Reproduce/GithubIssue1906.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using FluentAssertions; diff --git a/src/Tests/Reproduce/GithubIssue2052.cs b/src/Tests/Reproduce/GithubIssue2052.cs index 86375e91c7f..0878e13d741 100644 --- a/src/Tests/Reproduce/GithubIssue2052.cs +++ b/src/Tests/Reproduce/GithubIssue2052.cs @@ -6,6 +6,7 @@ using System.Reflection; using System.Runtime.Serialization; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Tests.Framework; diff --git a/src/Tests/Reproduce/GithubIssue2101.cs b/src/Tests/Reproduce/GithubIssue2101.cs index cba8cf1ab9a..af88dee35a7 100644 --- a/src/Tests/Reproduce/GithubIssue2101.cs +++ b/src/Tests/Reproduce/GithubIssue2101.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using FluentAssertions; diff --git a/src/Tests/Reproduce/GithubIssue2152.cs b/src/Tests/Reproduce/GithubIssue2152.cs index 6a4c565301c..11594803109 100644 --- a/src/Tests/Reproduce/GithubIssue2152.cs +++ b/src/Tests/Reproduce/GithubIssue2152.cs @@ -2,6 +2,7 @@ using System.IO; using System.Linq; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Reproduce/GithubIssue2173.cs b/src/Tests/Reproduce/GithubIssue2173.cs index c94afe1784a..65644db53b1 100644 --- a/src/Tests/Reproduce/GithubIssue2173.cs +++ b/src/Tests/Reproduce/GithubIssue2173.cs @@ -1,14 +1,7 @@ -using FluentAssertions; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; -using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; using Tests.Framework.MockData; -using Xunit; namespace Tests.Reproduce { diff --git a/src/Tests/Reproduce/GithubIssue2306.cs b/src/Tests/Reproduce/GithubIssue2306.cs index aa70d43429e..c286bd1b6d2 100644 --- a/src/Tests/Reproduce/GithubIssue2306.cs +++ b/src/Tests/Reproduce/GithubIssue2306.cs @@ -1,4 +1,5 @@ -using FluentAssertions; +using Elastic.Xunit.XunitPlumbing; +using FluentAssertions; using Nest; using Tests.Framework; using Tests.Framework.Integration; diff --git a/src/Tests/Reproduce/GithubIssue2309.cs b/src/Tests/Reproduce/GithubIssue2309.cs index 7369df10028..294cd3feaa1 100644 --- a/src/Tests/Reproduce/GithubIssue2309.cs +++ b/src/Tests/Reproduce/GithubIssue2309.cs @@ -1,10 +1,10 @@ using System; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework; -using Tests.Framework.Integration; using Xunit; namespace Tests.Reproduce diff --git a/src/Tests/Reproduce/GithubIssue2323.cs b/src/Tests/Reproduce/GithubIssue2323.cs index 747d48b9ca8..ef798902378 100644 --- a/src/Tests/Reproduce/GithubIssue2323.cs +++ b/src/Tests/Reproduce/GithubIssue2323.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Reproduce/GithubIssue2409.cs b/src/Tests/Reproduce/GithubIssue2409.cs index fbfbf405d8c..f9f6ebc3da0 100644 --- a/src/Tests/Reproduce/GithubIssue2409.cs +++ b/src/Tests/Reproduce/GithubIssue2409.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Text; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Reproduce/GithubIssue2503.cs b/src/Tests/Reproduce/GithubIssue2503.cs index 3c71458b8b4..719c8b759a2 100644 --- a/src/Tests/Reproduce/GithubIssue2503.cs +++ b/src/Tests/Reproduce/GithubIssue2503.cs @@ -1,5 +1,6 @@ using System.IO; using System.Text; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Reproduce/GithubIssue2690.cs b/src/Tests/Reproduce/GithubIssue2690.cs index 12a87c78819..f704c3a4bb5 100644 --- a/src/Tests/Reproduce/GithubIssue2690.cs +++ b/src/Tests/Reproduce/GithubIssue2690.cs @@ -1,4 +1,5 @@ -using FluentAssertions; +using Elastic.Xunit.XunitPlumbing; +using FluentAssertions; using Tests.Framework; namespace Tests.Reproduce diff --git a/src/Tests/Reproduce/GithubIssue2723.cs b/src/Tests/Reproduce/GithubIssue2723.cs index ae25f318dca..12c87f808e3 100644 --- a/src/Tests/Reproduce/GithubIssue2723.cs +++ b/src/Tests/Reproduce/GithubIssue2723.cs @@ -4,6 +4,7 @@ using Tests.Framework; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Nest; namespace Tests.Reproduce diff --git a/src/Tests/Reproduce/GithubIssue2751.cs b/src/Tests/Reproduce/GithubIssue2751.cs index d4d1cdf027f..6f0de8f7efd 100644 --- a/src/Tests/Reproduce/GithubIssue2751.cs +++ b/src/Tests/Reproduce/GithubIssue2751.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework.ManagedElasticsearch.Clusters; diff --git a/src/Tests/Reproduce/GithubIssue2788.cs b/src/Tests/Reproduce/GithubIssue2788.cs index 231d05d4531..1f0b3c44499 100644 --- a/src/Tests/Reproduce/GithubIssue2788.cs +++ b/src/Tests/Reproduce/GithubIssue2788.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using FluentAssertions.Common; diff --git a/src/Tests/Reproduce/GithubIssue2871.cs b/src/Tests/Reproduce/GithubIssue2871.cs index 0d623fe370c..f3958db0aea 100644 --- a/src/Tests/Reproduce/GithubIssue2871.cs +++ b/src/Tests/Reproduce/GithubIssue2871.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Reproduce/GithubIssue2886.cs b/src/Tests/Reproduce/GithubIssue2886.cs index 137e13f8eed..4813b0efb08 100644 --- a/src/Tests/Reproduce/GithubIssue2886.cs +++ b/src/Tests/Reproduce/GithubIssue2886.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Reproduce/GithubIssue3210.cs b/src/Tests/Reproduce/GithubIssue3210.cs index eb24d8e8ee1..bef35e09d78 100644 --- a/src/Tests/Reproduce/GithubIssue3210.cs +++ b/src/Tests/Reproduce/GithubIssue3210.cs @@ -4,6 +4,7 @@ using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/Reproduce/GithubIssue3220.cs b/src/Tests/Reproduce/GithubIssue3220.cs index 37816c83dc9..b66d2ee457f 100644 --- a/src/Tests/Reproduce/GithubIssue3220.cs +++ b/src/Tests/Reproduce/GithubIssue3220.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/Count/CountUrlTests.cs b/src/Tests/Search/Count/CountUrlTests.cs index dea4d527ca4..7ed926839a2 100644 --- a/src/Tests/Search/Count/CountUrlTests.cs +++ b/src/Tests/Search/Count/CountUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Explain/ExplainUrlTests.cs b/src/Tests/Search/Explain/ExplainUrlTests.cs index 9b34dc51b8c..0819476bd38 100644 --- a/src/Tests/Search/Explain/ExplainUrlTests.cs +++ b/src/Tests/Search/Explain/ExplainUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/FieldCapabilities/FieldCapabilitiesApiTests.cs b/src/Tests/Search/FieldCapabilities/FieldCapabilitiesApiTests.cs index c8336f78c91..eef68d6f220 100644 --- a/src/Tests/Search/FieldCapabilities/FieldCapabilitiesApiTests.cs +++ b/src/Tests/Search/FieldCapabilities/FieldCapabilitiesApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/FieldCapabilities/FieldCapabilitiesUrlTests.cs b/src/Tests/Search/FieldCapabilities/FieldCapabilitiesUrlTests.cs index cc6eca33d73..f1f8412f76b 100644 --- a/src/Tests/Search/FieldCapabilities/FieldCapabilitiesUrlTests.cs +++ b/src/Tests/Search/FieldCapabilities/FieldCapabilitiesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/FieldStats/FieldStatsUrlTests.cs b/src/Tests/Search/FieldStats/FieldStatsUrlTests.cs index e3d6774d47f..333fb10fc55 100644 --- a/src/Tests/Search/FieldStats/FieldStatsUrlTests.cs +++ b/src/Tests/Search/FieldStats/FieldStatsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Hits/HitsSerializationTests.cs b/src/Tests/Search/Hits/HitsSerializationTests.cs index 18d394b5809..7ee70150800 100644 --- a/src/Tests/Search/Hits/HitsSerializationTests.cs +++ b/src/Tests/Search/Hits/HitsSerializationTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/MultiSearch/MultiSearchApiTests.cs b/src/Tests/Search/MultiSearch/MultiSearchApiTests.cs index e1266043d42..5153a0e0fef 100644 --- a/src/Tests/Search/MultiSearch/MultiSearchApiTests.cs +++ b/src/Tests/Search/MultiSearch/MultiSearchApiTests.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -9,7 +10,6 @@ using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; using Tests.Framework.MockData; -using Tests.Framework.Versions; using Xunit; namespace Tests.Search.MultiSearch diff --git a/src/Tests/Search/MultiSearch/MultiSearchInvalidApiTests.cs b/src/Tests/Search/MultiSearch/MultiSearchInvalidApiTests.cs index d80bab93abb..0480279e76e 100644 --- a/src/Tests/Search/MultiSearch/MultiSearchInvalidApiTests.cs +++ b/src/Tests/Search/MultiSearch/MultiSearchInvalidApiTests.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/MultiSearch/MultiSearchLowLevelPostDataTests.cs b/src/Tests/Search/MultiSearch/MultiSearchLowLevelPostDataTests.cs index a7a9fcb49dc..ffbdccc856a 100644 --- a/src/Tests/Search/MultiSearch/MultiSearchLowLevelPostDataTests.cs +++ b/src/Tests/Search/MultiSearch/MultiSearchLowLevelPostDataTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; @@ -15,7 +16,7 @@ namespace Tests.Search.MultiSearch { - public class MultiSearchLowLevelPostDataTests : IClusterFixture + public class MultiSearchLowLevelPostDataTests : IClusterFixture, IClassFixture { private IElasticClient _client; diff --git a/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateApiTests.cs b/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateApiTests.cs index 503c6d54822..01eec441306 100644 --- a/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateApiTests.cs +++ b/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateApiTests.cs @@ -9,7 +9,6 @@ using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; using Tests.Framework.MockData; -using Tests.Framework.Versions; using Xunit; namespace Tests.Search.MultiSearch.MultiSearchTemplate diff --git a/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateUrlTests.cs b/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateUrlTests.cs index 8ec00e75455..11b749c6de4 100644 --- a/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateUrlTests.cs +++ b/src/Tests/Search/MultiSearch/MultiSearchTemplate/MultiSearchTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/MultiSearch/MultiSearchUrlTests.cs b/src/Tests/Search/MultiSearch/MultiSearchUrlTests.cs index 8490c88bfec..dd861b73755 100644 --- a/src/Tests/Search/MultiSearch/MultiSearchUrlTests.cs +++ b/src/Tests/Search/MultiSearch/MultiSearchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateApiTests.cs b/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateApiTests.cs index 16f405b5969..f748c6ad86e 100644 --- a/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateApiTests.cs +++ b/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateInvalidApiTests.cs b/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateInvalidApiTests.cs index e873040b1be..5481e589bf3 100644 --- a/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateInvalidApiTests.cs +++ b/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateInvalidApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateUrlTests.cs b/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateUrlTests.cs index abb1a667325..55d5e24718b 100644 --- a/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateUrlTests.cs +++ b/src/Tests/Search/Percolator/MultiPercolate/MultiPercolateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Percolator/Percolate/PercolateApiTests.cs b/src/Tests/Search/Percolator/Percolate/PercolateApiTests.cs index 0bdfac9560c..7ac7f5e5bb1 100644 --- a/src/Tests/Search/Percolator/Percolate/PercolateApiTests.cs +++ b/src/Tests/Search/Percolator/Percolate/PercolateApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using FluentAssertions.Common; diff --git a/src/Tests/Search/Percolator/Percolate/PercolateUrlTests.cs b/src/Tests/Search/Percolator/Percolate/PercolateUrlTests.cs index a2b2d9d58ba..72d22c11432 100644 --- a/src/Tests/Search/Percolator/Percolate/PercolateUrlTests.cs +++ b/src/Tests/Search/Percolator/Percolate/PercolateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Percolator/PercolateCount/PercolateCountApiTests.cs b/src/Tests/Search/Percolator/PercolateCount/PercolateCountApiTests.cs index 0640ebe8ea9..e1ec05d654a 100644 --- a/src/Tests/Search/Percolator/PercolateCount/PercolateCountApiTests.cs +++ b/src/Tests/Search/Percolator/PercolateCount/PercolateCountApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/Percolator/PercolateCount/PercolateCountUrlTests.cs b/src/Tests/Search/Percolator/PercolateCount/PercolateCountUrlTests.cs index 7e1c7bcaa3a..8d8ecf50c77 100644 --- a/src/Tests/Search/Percolator/PercolateCount/PercolateCountUrlTests.cs +++ b/src/Tests/Search/Percolator/PercolateCount/PercolateCountUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorApiTests.cs b/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorApiTests.cs index 2cd34d3fc0d..7739ce05570 100644 --- a/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorApiTests.cs +++ b/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorUrlTests.cs b/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorUrlTests.cs index dc7acd469b4..9375c267c52 100644 --- a/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorUrlTests.cs +++ b/src/Tests/Search/Percolator/RegisterPercolator/RegisterPercolatorUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorApiTests.cs b/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorApiTests.cs index a5072ebb788..8fc1a279a24 100644 --- a/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorApiTests.cs +++ b/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorUrlTests.cs b/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorUrlTests.cs index 86227c9c0f7..58f11ab06a0 100644 --- a/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorUrlTests.cs +++ b/src/Tests/Search/Percolator/UnregisterPercolator/UnregisterPercolatorUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Request/ExplainUsageTests.cs b/src/Tests/Search/Request/ExplainUsageTests.cs index 7c5b0646599..edf59b66797 100644 --- a/src/Tests/Search/Request/ExplainUsageTests.cs +++ b/src/Tests/Search/Request/ExplainUsageTests.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/Request/FieldsUsageTests.cs b/src/Tests/Search/Request/FieldsUsageTests.cs index 212bebb5744..5a35e62f05f 100644 --- a/src/Tests/Search/Request/FieldsUsageTests.cs +++ b/src/Tests/Search/Request/FieldsUsageTests.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/Request/HighlightingUsageTests.cs b/src/Tests/Search/Request/HighlightingUsageTests.cs index 7b841cea1b6..e036eecc885 100644 --- a/src/Tests/Search/Request/HighlightingUsageTests.cs +++ b/src/Tests/Search/Request/HighlightingUsageTests.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using Bogus; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework.Integration; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Request/PostFilterUsageTests.cs b/src/Tests/Search/Request/PostFilterUsageTests.cs index 7013778f1ea..2be0065e8c7 100644 --- a/src/Tests/Search/Request/PostFilterUsageTests.cs +++ b/src/Tests/Search/Request/PostFilterUsageTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/Request/ProfileUsageTests.cs b/src/Tests/Search/Request/ProfileUsageTests.cs index bdd13f42e00..f9aa9404b32 100644 --- a/src/Tests/Search/Request/ProfileUsageTests.cs +++ b/src/Tests/Search/Request/ProfileUsageTests.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/Request/SourceFilteringUsageTests.cs b/src/Tests/Search/Request/SourceFilteringUsageTests.cs index 63bc6c38dce..c1ced21e0e0 100644 --- a/src/Tests/Search/Request/SourceFilteringUsageTests.cs +++ b/src/Tests/Search/Request/SourceFilteringUsageTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework.Integration; using Tests.Framework.MockData; using Nest; diff --git a/src/Tests/Search/ReturnedFields.doc.cs b/src/Tests/Search/ReturnedFields.doc.cs index 71bd5687365..1398f395133 100644 --- a/src/Tests/Search/ReturnedFields.doc.cs +++ b/src/Tests/Search/ReturnedFields.doc.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Newtonsoft.Json.Linq; using Tests.Framework; diff --git a/src/Tests/Search/Scroll/ClearScroll/ClearScrollUrlTests.cs b/src/Tests/Search/Scroll/ClearScroll/ClearScrollUrlTests.cs index 6f2a687248e..1c6d54a403d 100644 --- a/src/Tests/Search/Scroll/ClearScroll/ClearScrollUrlTests.cs +++ b/src/Tests/Search/Scroll/ClearScroll/ClearScrollUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Search/Scroll/Scroll/ScrollUrlTests.cs b/src/Tests/Search/Scroll/Scroll/ScrollUrlTests.cs index b1bf161e313..82534dfaf1b 100644 --- a/src/Tests/Search/Scroll/Scroll/ScrollUrlTests.cs +++ b/src/Tests/Search/Scroll/Scroll/ScrollUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Search/Collapsing/FieldCollapseUsageTests.cs b/src/Tests/Search/Search/Collapsing/FieldCollapseUsageTests.cs index 7d579012fca..de38ddf45da 100644 --- a/src/Tests/Search/Search/Collapsing/FieldCollapseUsageTests.cs +++ b/src/Tests/Search/Search/Collapsing/FieldCollapseUsageTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/Search/Search/SearchProfileApiTests.cs b/src/Tests/Search/Search/SearchProfileApiTests.cs index a7fb793c8ba..72132454ab0 100644 --- a/src/Tests/Search/Search/SearchProfileApiTests.cs +++ b/src/Tests/Search/Search/SearchProfileApiTests.cs @@ -50,7 +50,7 @@ protected override LazyResponses ClientUsage() => Calls( protected override void ExpectResponse(ISearchResponse response) { //this asserts some 5.2.0 and over only properties - if (TestClient.VersionUnderTestSatisfiedBy("<=5.2.0")) return; + if (TestingAgainst("<=5.2.0")) return; response.Hits.Count().Should().BeGreaterThan(0); var profile = response.Profile; profile.Should().NotBeNull(); @@ -71,7 +71,7 @@ protected override void ExpectResponse(ISearchResponse response) query.Type.Should().NotBeNullOrEmpty(); query.Description.Should().NotBeNullOrEmpty(); query.Time.Should().NotBeNull(); - if (TestClient.VersionUnderTestSatisfiedBy(">=5.3.0")) + if (TestingAgainst(">=5.3.0")) query.TimeInNanoseconds.Should().BeGreaterThan(0); query.Breakdown.Should().NotBeNull(); } @@ -84,7 +84,7 @@ protected override void ExpectResponse(ISearchResponse response) #pragma warning disable 618 collector.Time.Should().NotBeNull(); #pragma warning restore 618 - if (TestClient.VersionUnderTestSatisfiedBy(">=5.3.0")) + if (TestingAgainst(">=5.3.0")) collector.TimeInNanoseconds.Should().BeGreaterThan(0); var children = collector.Children; children.Should().NotBeNull(); @@ -96,7 +96,7 @@ protected override void ExpectResponse(ISearchResponse response) #pragma warning disable 618 child.Time.Should().NotBeNull(); #pragma warning restore 618 - if (TestClient.VersionUnderTestSatisfiedBy(">=5.3.0")) + if (TestingAgainst(">=5.3.0")) child.TimeInNanoseconds.Should().BeGreaterThan(0); var grandchildren = child.Children; grandchildren.Should().NotBeNull(); @@ -107,7 +107,7 @@ protected override void ExpectResponse(ISearchResponse response) #pragma warning disable 618 grandchild.Time.Should().NotBeNull(); #pragma warning restore 618 - if (TestClient.VersionUnderTestSatisfiedBy(">=5.3.0")) + if (TestingAgainst(">=5.3.0")) grandchild.TimeInNanoseconds.Should().BeGreaterThan(0); } } @@ -121,7 +121,7 @@ protected override void ExpectResponse(ISearchResponse response) aggregation.Type.Should().NotBeNullOrEmpty(); aggregation.Description.Should().NotBeNullOrEmpty(); aggregation.Time.Should().NotBeNull(); - if (TestClient.VersionUnderTestSatisfiedBy(">=5.3.0")) + if (TestingAgainst(">=5.3.0")) aggregation.TimeInNanoseconds.Should().BeGreaterThan(0); aggregation.Breakdown.Should().NotBeNull(); } diff --git a/src/Tests/Search/Search/SearchProfileTests.cs b/src/Tests/Search/Search/SearchProfileTests.cs index f311c59f6c9..917fe3a7a36 100644 --- a/src/Tests/Search/Search/SearchProfileTests.cs +++ b/src/Tests/Search/Search/SearchProfileTests.cs @@ -4,6 +4,7 @@ using Tests.Framework.ManagedElasticsearch; using Tests.Framework.ManagedElasticsearch.Clusters; using Tests.Framework.MockData; +using Tests.Framework.Profiling; using Tests.Framework.Profiling.Timeline; namespace Tests.Search.Search @@ -12,7 +13,7 @@ public class SearchProfileTests { private readonly IElasticClient _client; - public SearchProfileTests(ClusterBase cluster) + public SearchProfileTests(ProfilingCluster cluster) { _client = cluster.Client; } diff --git a/src/Tests/Search/Search/SearchUrlTests.cs b/src/Tests/Search/Search/SearchUrlTests.cs index 39351750c78..6a36f466a62 100644 --- a/src/Tests/Search/Search/SearchUrlTests.cs +++ b/src/Tests/Search/Search/SearchUrlTests.cs @@ -4,6 +4,7 @@ using Tests.Framework.MockData; using static Tests.Framework.UrlTester; using System; +using Elastic.Xunit.XunitPlumbing; namespace Tests.Search.Search { diff --git a/src/Tests/Search/SearchShards/SearchShardsUrlTests.cs b/src/Tests/Search/SearchShards/SearchShardsUrlTests.cs index a1f0e8e8b5d..f64fd6a3799 100644 --- a/src/Tests/Search/SearchShards/SearchShardsUrlTests.cs +++ b/src/Tests/Search/SearchShards/SearchShardsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/SearchTemplate/DeleteSearchTemplate/DeleteSearchTemplateUrlTests.cs b/src/Tests/Search/SearchTemplate/DeleteSearchTemplate/DeleteSearchTemplateUrlTests.cs index a5bd6f5ef1f..fcf54e6d3dc 100644 --- a/src/Tests/Search/SearchTemplate/DeleteSearchTemplate/DeleteSearchTemplateUrlTests.cs +++ b/src/Tests/Search/SearchTemplate/DeleteSearchTemplate/DeleteSearchTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Search/SearchTemplate/GetSearchTemplate/GetSearchTemplateUrlTests.cs b/src/Tests/Search/SearchTemplate/GetSearchTemplate/GetSearchTemplateUrlTests.cs index 1ebdfb3da52..e82b1dca345 100644 --- a/src/Tests/Search/SearchTemplate/GetSearchTemplate/GetSearchTemplateUrlTests.cs +++ b/src/Tests/Search/SearchTemplate/GetSearchTemplate/GetSearchTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Search/SearchTemplate/PutSearchTemplate/PutSearchTemplateUrlTests.cs b/src/Tests/Search/SearchTemplate/PutSearchTemplate/PutSearchTemplateUrlTests.cs index 0d30966a506..f8b940bd7e2 100644 --- a/src/Tests/Search/SearchTemplate/PutSearchTemplate/PutSearchTemplateUrlTests.cs +++ b/src/Tests/Search/SearchTemplate/PutSearchTemplate/PutSearchTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateApiTests.cs b/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateApiTests.cs index 8e9d6700c21..fe3be076f2a 100644 --- a/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateApiTests.cs +++ b/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateUrlTests.cs b/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateUrlTests.cs index eb30e485847..85f2cbefc8c 100644 --- a/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateUrlTests.cs +++ b/src/Tests/Search/SearchTemplate/RenderSearchTemplate/RenderSearchTemplateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/Search/Suggesters/SuggestApiTests.cs b/src/Tests/Search/Suggesters/SuggestApiTests.cs index 9ee5137a210..0a5f3e0f3a9 100644 --- a/src/Tests/Search/Suggesters/SuggestApiTests.cs +++ b/src/Tests/Search/Suggesters/SuggestApiTests.cs @@ -16,6 +16,8 @@ namespace Tests.Search.Suggesters /** == Suggest API */ + //TODO build seed:85405 integrate 5.6.0 "readonly" "suggest" + // selects a phrase suggest text that returns no options public class SuggestApiTests : ApiIntegrationTestBase, ISearchRequest, SearchDescriptor, SearchRequest> { diff --git a/src/Tests/Search/Suggesters/SuggestUrlTests.cs b/src/Tests/Search/Suggesters/SuggestUrlTests.cs index 58e29314dcd..6ede59b72b0 100644 --- a/src/Tests/Search/Suggesters/SuggestUrlTests.cs +++ b/src/Tests/Search/Suggesters/SuggestUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/Validate/ValidateQueryUrlTests.cs b/src/Tests/Search/Validate/ValidateQueryUrlTests.cs index 8416ddb72e0..6adcb8c085c 100644 --- a/src/Tests/Search/Validate/ValidateQueryUrlTests.cs +++ b/src/Tests/Search/Validate/ValidateQueryUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/Search/WritingQueries.doc.cs b/src/Tests/Search/WritingQueries.doc.cs index 930c836c603..97322c3e732 100644 --- a/src/Tests/Search/WritingQueries.doc.cs +++ b/src/Tests/Search/WritingQueries.doc.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Newtonsoft.Json.Linq; using Tests.Framework; diff --git a/src/Tests/Tests.csproj b/src/Tests/Tests.csproj index 14fe56b4c4c..7e599ad39f3 100644 --- a/src/Tests/Tests.csproj +++ b/src/Tests/Tests.csproj @@ -1,50 +1,62 @@ - + + Exe - 1 - netcoreapp1.1;net45;net46 - netcoreapp1.1 + netcoreapp2.0;net46 + netcoreapp2.0 6.0.0 alpha - $(DefineConstants);DOTNETCORE Tests.BenchmarkProgram + $(NoWarn);xUnit1013 + $(DefineConstants);DOTNETCORE + $(DefineConstants);FEATURE_HTTPWEBREQUEST + $(DefineConstants);FEATURE_PROFILING + + + ../../build/output/_packages;https://api.nuget.org/v3/index.json + $(DefineConstants);TESTINGNUGETPACKAGE - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + \ No newline at end of file diff --git a/src/Tests/XPack/Graph/Explore/GraphExploreApiTests.cs b/src/Tests/XPack/Graph/Explore/GraphExploreApiTests.cs index 51fe6e4c833..51d2c666880 100644 --- a/src/Tests/XPack/Graph/Explore/GraphExploreApiTests.cs +++ b/src/Tests/XPack/Graph/Explore/GraphExploreApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Graph/Explore/GraphExploreUrlTests.cs b/src/Tests/XPack/Graph/Explore/GraphExploreUrlTests.cs index bd88e0b0ac9..9f410e4aaeb 100644 --- a/src/Tests/XPack/Graph/Explore/GraphExploreUrlTests.cs +++ b/src/Tests/XPack/Graph/Explore/GraphExploreUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/Info/XPackInfo/XPackInfoApiTests.cs b/src/Tests/XPack/Info/XPackInfo/XPackInfoApiTests.cs index 89e73c3f3b7..79b5c6f3d00 100644 --- a/src/Tests/XPack/Info/XPackInfo/XPackInfoApiTests.cs +++ b/src/Tests/XPack/Info/XPackInfo/XPackInfoApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Info/XPackInfo/XPackInfoUrlTests.cs b/src/Tests/XPack/Info/XPackInfo/XPackInfoUrlTests.cs index 2b167886c78..22087f2f3cd 100644 --- a/src/Tests/XPack/Info/XPackInfo/XPackInfoUrlTests.cs +++ b/src/Tests/XPack/Info/XPackInfo/XPackInfoUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/Info/XPackUsage/XPackUsageApiTests.cs b/src/Tests/XPack/Info/XPackUsage/XPackUsageApiTests.cs index a3c9f424fdd..7f507362d2b 100644 --- a/src/Tests/XPack/Info/XPackUsage/XPackUsageApiTests.cs +++ b/src/Tests/XPack/Info/XPackUsage/XPackUsageApiTests.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Info/XPackUsage/XPackUsageUrlTests.cs b/src/Tests/XPack/Info/XPackUsage/XPackUsageUrlTests.cs index c9baf55d022..5189be1ca3f 100644 --- a/src/Tests/XPack/Info/XPackUsage/XPackUsageUrlTests.cs +++ b/src/Tests/XPack/Info/XPackUsage/XPackUsageUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/License/DeleteLicense/DeleteLicenseUrlTests.cs b/src/Tests/XPack/License/DeleteLicense/DeleteLicenseUrlTests.cs index 39e5231f79e..a4f6198393c 100644 --- a/src/Tests/XPack/License/DeleteLicense/DeleteLicenseUrlTests.cs +++ b/src/Tests/XPack/License/DeleteLicense/DeleteLicenseUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/License/GetLicense/GetLicenseApiTests.cs b/src/Tests/XPack/License/GetLicense/GetLicenseApiTests.cs index f6a2a1a2949..754aef5b553 100644 --- a/src/Tests/XPack/License/GetLicense/GetLicenseApiTests.cs +++ b/src/Tests/XPack/License/GetLicense/GetLicenseApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/License/GetLicense/GetLicenseUrlTests.cs b/src/Tests/XPack/License/GetLicense/GetLicenseUrlTests.cs index 625fa28a547..b17eff04e94 100644 --- a/src/Tests/XPack/License/GetLicense/GetLicenseUrlTests.cs +++ b/src/Tests/XPack/License/GetLicense/GetLicenseUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/License/PostLicense/PostLicenseApiTests.cs b/src/Tests/XPack/License/PostLicense/PostLicenseApiTests.cs index 187bd792304..df41f59c68f 100644 --- a/src/Tests/XPack/License/PostLicense/PostLicenseApiTests.cs +++ b/src/Tests/XPack/License/PostLicense/PostLicenseApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/License/PostLicense/PostLicenseUrlTests.cs b/src/Tests/XPack/License/PostLicense/PostLicenseUrlTests.cs index c36b62a5854..7ad09e99582 100644 --- a/src/Tests/XPack/License/PostLicense/PostLicenseUrlTests.cs +++ b/src/Tests/XPack/License/PostLicense/PostLicenseUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/MachineLearning/CloseJob/CloseJobApiTests.cs b/src/Tests/XPack/MachineLearning/CloseJob/CloseJobApiTests.cs index 98503b83a32..9424605edb5 100644 --- a/src/Tests/XPack/MachineLearning/CloseJob/CloseJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/CloseJob/CloseJobApiTests.cs @@ -10,7 +10,7 @@ namespace Tests.XPack.MachineLearning.CloseJob { public class CloseJobApiTests : MachineLearningIntegrationTestBase { - public CloseJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public CloseJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/CloseJob/CloseJobUrlTests.cs b/src/Tests/XPack/MachineLearning/CloseJob/CloseJobUrlTests.cs index 02e25d1c9b4..f12981627f1 100644 --- a/src/Tests/XPack/MachineLearning/CloseJob/CloseJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/CloseJob/CloseJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedApiTests.cs b/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedApiTests.cs index 48fa866b1aa..671f451e630 100644 --- a/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedApiTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.DeleteDatafeed { public class DeleteDatafeedApiTests : MachineLearningIntegrationTestBase { - public DeleteDatafeedApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public DeleteDatafeedApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedUrlTests.cs b/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedUrlTests.cs index a6522676382..13d8288e40d 100644 --- a/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteDatafeed/DeleteDatafeedUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataApiTests.cs b/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataApiTests.cs index 8cd9777ed66..3aaba7edbb9 100644 --- a/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataApiTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataApiTests.cs @@ -10,7 +10,7 @@ namespace Tests.XPack.MachineLearning.DeleteExpiredData { public class DeleteExpiredDataApiTests : MachineLearningIntegrationTestBase { - public DeleteExpiredDataApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public DeleteExpiredDataApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.DeleteExpiredData(f), diff --git a/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataUrlTests.cs b/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataUrlTests.cs index fd24385729a..3859ba336c4 100644 --- a/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteExpiredData/DeleteExpiredDataUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobApiTests.cs b/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobApiTests.cs index 212f4131904..d55635def44 100644 --- a/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.DeleteJob { public class DeleteJobApiTests : MachineLearningIntegrationTestBase { - public DeleteJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public DeleteJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobUrlTests.cs b/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobUrlTests.cs index 4d0689a8e06..1fd22563110 100644 --- a/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteJob/DeleteJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotApiTests.cs b/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotApiTests.cs index b286c128570..edd20d98c42 100644 --- a/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotApiTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.DeleteModelSnapshot { public class DeleteModelSnapshotApiTests : MachineLearningIntegrationTestBase { - public DeleteModelSnapshotApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public DeleteModelSnapshotApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotUrlTests.cs b/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotUrlTests.cs index db26ef9d62a..86d2fdffb4e 100644 --- a/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/DeleteModelSnapshot/DeleteModelSnapshotUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/DetectorSerializationTests.cs b/src/Tests/XPack/MachineLearning/DetectorSerializationTests.cs index 083605cea7a..b4ca57734da 100644 --- a/src/Tests/XPack/MachineLearning/DetectorSerializationTests.cs +++ b/src/Tests/XPack/MachineLearning/DetectorSerializationTests.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Reflection; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/MachineLearning/FlushJob/FlushJobApiTests.cs b/src/Tests/XPack/MachineLearning/FlushJob/FlushJobApiTests.cs index a08a49ed70b..76258efd35d 100644 --- a/src/Tests/XPack/MachineLearning/FlushJob/FlushJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/FlushJob/FlushJobApiTests.cs @@ -10,7 +10,7 @@ namespace Tests.XPack.MachineLearning.FlushJob { public class FlushJobApiTests : MachineLearningIntegrationTestBase { - public FlushJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public FlushJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/FlushJob/FlushJobUrlTests.cs b/src/Tests/XPack/MachineLearning/FlushJob/FlushJobUrlTests.cs index 7b41996c6b1..c7643750346 100644 --- a/src/Tests/XPack/MachineLearning/FlushJob/FlushJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/FlushJob/FlushJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsApiTests.cs b/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsApiTests.cs index 63de2ca9eea..07ff3fc5c23 100644 --- a/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.GetAnomalyRecords { public class GetAnomalyRecordsApiTests : MachineLearningIntegrationTestBase { - public GetAnomalyRecordsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetAnomalyRecordsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsUrlTests.cs index 76c3f0f83b6..46b85095621 100644 --- a/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetAnomalyRecords/GetAnomalyRecordsUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsApiTests.cs b/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsApiTests.cs index 29161ea2bf0..d794063b60b 100644 --- a/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.GetBuckets { public class GetBucketsApiTests : MachineLearningIntegrationTestBase { - public GetBucketsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetBucketsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -61,7 +61,7 @@ protected override void ExpectResponse(IGetBucketsResponse response) public class GetBucketsWithTimestampApiTests : MachineLearningIntegrationTestBase { - public GetBucketsWithTimestampApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetBucketsWithTimestampApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsUrlTests.cs index 15e9593b1a8..1016f07d667 100644 --- a/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetBuckets/GetBucketsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesApiTests.cs b/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesApiTests.cs index 193a50f63bb..00c235101df 100644 --- a/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesApiTests.cs @@ -13,7 +13,7 @@ namespace Tests.XPack.MachineLearning.GetCategories { public class GetCategoriesApiTests : MachineLearningIntegrationTestBase { - public GetCategoriesApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetCategoriesApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -66,7 +66,7 @@ protected override void ExpectResponse(IGetCategoriesResponse response) public class GetCategoriesWithCategoriesApiTests : MachineLearningIntegrationTestBase { - public GetCategoriesWithCategoriesApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetCategoriesWithCategoriesApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesUrlTests.cs b/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesUrlTests.cs index ce77f7b6d91..bedfb5d88fd 100644 --- a/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetCategories/GetCategoriesUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsApiTests.cs b/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsApiTests.cs index c07374aa206..87784825b30 100644 --- a/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.GetDatafeedStats { public class GetDatafeedStatsApiTests : MachineLearningIntegrationTestBase { - public GetDatafeedStatsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetDatafeedStatsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -48,7 +48,7 @@ protected override void ExpectResponse(IGetDatafeedStatsResponse response) public class GetDatafeedStatsWithDatafeedIdApiTests : MachineLearningIntegrationTestBase { - public GetDatafeedStatsWithDatafeedIdApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetDatafeedStatsWithDatafeedIdApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsUrlTests.cs index 5cc32ac8671..de431e51578 100644 --- a/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsApiTests.cs b/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsApiTests.cs index 00ede533e52..6a308004b84 100644 --- a/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsApiTests.cs @@ -13,7 +13,7 @@ namespace Tests.XPack.MachineLearning.GetDatafeeds { public class GetDatafeedsApiTests : MachineLearningIntegrationTestBase { - public GetDatafeedsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetDatafeedsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -72,7 +72,7 @@ protected override void ExpectResponse(IGetDatafeedsResponse response) public class GetDatafeedsWithDatafeedIdApiTests : MachineLearningIntegrationTestBase { - public GetDatafeedsWithDatafeedIdApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetDatafeedsWithDatafeedIdApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsUrlTests.cs index d675ce63fb3..25932841827 100644 --- a/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetDatafeeds/GetDatafeedsUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersApiTests.cs b/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersApiTests.cs index c92c1a64951..b3a953bf2e9 100644 --- a/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.GetInfluencers { public class GetInfluencersApiTests : MachineLearningIntegrationTestBase { - public GetInfluencersApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetInfluencersApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersUrlTests.cs b/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersUrlTests.cs index 8915099d551..42397eba193 100644 --- a/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetInfluencers/GetInfluencersUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsApiTests.cs b/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsApiTests.cs index 779066a6809..a4b9bb6b0e0 100644 --- a/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.GetJobStats { public class GetJobStatsApiTests : MachineLearningIntegrationTestBase { - public GetJobStatsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetJobStatsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -75,7 +75,7 @@ protected override void ExpectResponse(IGetJobStatsResponse response) public class GetJobStatsWithJobIdApiTests : MachineLearningIntegrationTestBase { - public GetJobStatsWithJobIdApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetJobStatsWithJobIdApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsUrlTests.cs index 2434d9e6705..94f68c6876b 100644 --- a/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetJobStats/GetJobStatsUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetJobs/GetJobsApiTests.cs b/src/Tests/XPack/MachineLearning/GetJobs/GetJobsApiTests.cs index 60819d8e443..06c4898f2d0 100644 --- a/src/Tests/XPack/MachineLearning/GetJobs/GetJobsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetJobs/GetJobsApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.GetJobs { public class GetJobsApiTests : MachineLearningIntegrationTestBase { - public GetJobsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetJobsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -73,7 +73,7 @@ protected override void ExpectResponse(IGetJobsResponse response) public class GetJobsWithJobIdApiTests : MachineLearningIntegrationTestBase { - public GetJobsWithJobIdApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetJobsWithJobIdApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetJobs/GetJobsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetJobs/GetJobsUrlTests.cs index 21dac44f3bf..efaaccc664d 100644 --- a/src/Tests/XPack/MachineLearning/GetJobs/GetJobsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetJobs/GetJobsUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsApiTests.cs b/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsApiTests.cs index f9b11c6255d..1c857c82f3f 100644 --- a/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsApiTests.cs +++ b/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.GetModelSnapshots { public class GetModelSnapshotsApiTests : MachineLearningIntegrationTestBase { - public GetModelSnapshotsApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetModelSnapshotsApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -57,7 +57,7 @@ protected override void ExpectResponse(IGetModelSnapshotsResponse response) public class GetModelSnapshotsWithSnapshotIdApiTests : MachineLearningIntegrationTestBase { - public GetModelSnapshotsWithSnapshotIdApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public GetModelSnapshotsWithSnapshotIdApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsUrlTests.cs b/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsUrlTests.cs index 80403003f72..57e65e515af 100644 --- a/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/GetModelSnapshots/GetModelSnapshotsUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/MachineLearningIntegrationTestBase.cs b/src/Tests/XPack/MachineLearning/MachineLearningIntegrationTestBase.cs index 830c731c128..61a467bc1ab 100644 --- a/src/Tests/XPack/MachineLearning/MachineLearningIntegrationTestBase.cs +++ b/src/Tests/XPack/MachineLearning/MachineLearningIntegrationTestBase.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; @@ -10,13 +11,13 @@ namespace Tests.XPack.MachineLearning { [SkipVersion("<5.5.0", "Machine Learning does not exist in previous versions")] public abstract class MachineLearningIntegrationTestBase - : ApiIntegrationTestBase + : ApiIntegrationTestBase where TResponse : class, IResponse where TDescriptor : class, TInterface where TInitializer : class, TInterface where TInterface : class { - protected MachineLearningIntegrationTestBase(ClusterBase cluster, EndpointUsage usage) : base(cluster, usage) { } + protected MachineLearningIntegrationTestBase(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected IPutJobResponse PutJob(IElasticClient client, string jobId) { diff --git a/src/Tests/XPack/MachineLearning/OpenJob/OpenJobApiTests.cs b/src/Tests/XPack/MachineLearning/OpenJob/OpenJobApiTests.cs index 8524332af62..ed2f49edf50 100644 --- a/src/Tests/XPack/MachineLearning/OpenJob/OpenJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/OpenJob/OpenJobApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.OpenJob { public class OpenJobApiTests : MachineLearningIntegrationTestBase { - public OpenJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public OpenJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/OpenJob/OpenJobUrlTests.cs b/src/Tests/XPack/MachineLearning/OpenJob/OpenJobUrlTests.cs index 677eb50236c..4d47871e821 100644 --- a/src/Tests/XPack/MachineLearning/OpenJob/OpenJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/OpenJob/OpenJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataApiTests.cs b/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataApiTests.cs index 743990ea212..dd11ac66724 100644 --- a/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataApiTests.cs +++ b/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.PostJobData { public class PostJobDataApiTests : MachineLearningIntegrationTestBase { - public PostJobDataApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public PostJobDataApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { @@ -105,7 +105,7 @@ protected override void ExpectResponse(IPostJobDataResponse response) public class PostJobDataWithResetStartAndResetEndApiTests : MachineLearningIntegrationTestBase { - public PostJobDataWithResetStartAndResetEndApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public PostJobDataWithResetStartAndResetEndApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataUrlTests.cs b/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataUrlTests.cs index a809f3ed37f..0d702024f63 100644 --- a/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/PostJobData/PostJobDataUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedApiTests.cs b/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedApiTests.cs index 30ee27d68e8..2b0db315336 100644 --- a/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedApiTests.cs +++ b/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.PreviewDatafeed { public class PreviewDatafeedApiTests : MachineLearningIntegrationTestBase, IPreviewDatafeedRequest, PreviewDatafeedDescriptor, PreviewDatafeedRequest> { - public PreviewDatafeedApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public PreviewDatafeedApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedUrlTests.cs b/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedUrlTests.cs index b47e411584c..182db97d1e7 100644 --- a/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/PreviewDataFeed/PreviewDataFeedUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedApiTests.cs b/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedApiTests.cs index 02d480ed889..fecce5f377e 100644 --- a/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedApiTests.cs +++ b/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.PutDatafeed public class PutDatafeedApiTests : MachineLearningIntegrationTestBase, PutDatafeedRequest> { - public PutDatafeedApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) {} + public PutDatafeedApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) {} protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.PutDatafeed(CallIsolatedValue, f), diff --git a/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedUrlTests.cs b/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedUrlTests.cs index a0ac51d0299..e95460b3244 100644 --- a/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/PutDatafeed/PutDatafeedUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/PutJob/PutJobApiTests.cs b/src/Tests/XPack/MachineLearning/PutJob/PutJobApiTests.cs index d34fa6c813f..1384a96c715 100644 --- a/src/Tests/XPack/MachineLearning/PutJob/PutJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/PutJob/PutJobApiTests.cs @@ -13,7 +13,7 @@ namespace Tests.XPack.MachineLearning.PutJob { public class PutJobApiTests : MachineLearningIntegrationTestBase, PutJobRequest> { - public PutJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public PutJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.PutJob(CallIsolatedValue, f), diff --git a/src/Tests/XPack/MachineLearning/PutJob/PutJobUrlTests.cs b/src/Tests/XPack/MachineLearning/PutJob/PutJobUrlTests.cs index 2bf8235590b..e9c9d14683e 100644 --- a/src/Tests/XPack/MachineLearning/PutJob/PutJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/PutJob/PutJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotApiTests.cs b/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotApiTests.cs index 5ad60a25389..abfd6b7c490 100644 --- a/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotApiTests.cs +++ b/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.RevertModelSnapshot { public class RevertModelSnapshotApiTests : MachineLearningIntegrationTestBase { - public RevertModelSnapshotApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public RevertModelSnapshotApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotUrlTests.cs b/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotUrlTests.cs index 6171a3a7959..18ab656de7a 100644 --- a/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/RevertModelSnapshot/RevertModelSnapshotUrlTests.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedApiTests.cs b/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedApiTests.cs index 49e5104ead4..e6ded72a5fd 100644 --- a/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedApiTests.cs +++ b/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedApiTests.cs @@ -10,7 +10,7 @@ namespace Tests.XPack.MachineLearning.StartDatafeed { public class StartDatafeedApiTests : MachineLearningIntegrationTestBase { - public StartDatafeedApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public StartDatafeedApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedUrlTests.cs b/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedUrlTests.cs index 5d5fe6c1906..5f8bef9aa7e 100644 --- a/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/StartDatafeed/StartDatafeedUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedApiTests.cs b/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedApiTests.cs index a69336da475..780270300c7 100644 --- a/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedApiTests.cs +++ b/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedApiTests.cs @@ -10,7 +10,7 @@ namespace Tests.XPack.MachineLearning.StopDatafeed { public class StopDatafeedApiTests : MachineLearningIntegrationTestBase { - public StopDatafeedApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public StopDatafeedApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override void IntegrationSetup(IElasticClient client, CallUniqueValues values) { diff --git a/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedUrlTests.cs b/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedUrlTests.cs index 071c12ede76..69e9e7893c0 100644 --- a/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/StopDatafeed/StopDatafeedUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedApiTests.cs b/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedApiTests.cs index 713f4c9decc..d0da6409b55 100644 --- a/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedApiTests.cs +++ b/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.UpdateDatafeed public class UpdateDatafeedApiTests : MachineLearningIntegrationTestBase, UpdateDatafeedRequest> { - public UpdateDatafeedApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) + public UpdateDatafeedApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } diff --git a/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedUrlTests.cs b/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedUrlTests.cs index e930d6d3238..4f9dd0aac1b 100644 --- a/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/UpdateDatafeed/UpdateDatafeedUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobApiTests.cs b/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobApiTests.cs index 66fc39fe582..c4623eabe0c 100644 --- a/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.UpdateJob { public class UpdateJobApiTests : MachineLearningIntegrationTestBase, UpdateJobRequest> { - public UpdateJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public UpdateJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.UpdateJob(CallIsolatedValue, f), diff --git a/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobUrlTests.cs b/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobUrlTests.cs index a6888f61387..91e7d6c1745 100644 --- a/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/UpdateJob/UpdateJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotApiTests.cs b/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotApiTests.cs index ab7a7c16d6e..4e4bbe23f39 100644 --- a/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotApiTests.cs +++ b/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotApiTests.cs @@ -11,7 +11,7 @@ namespace Tests.XPack.MachineLearning.UpdateModelSnapshot { public class UpdateModelSnapshotApiTests : MachineLearningIntegrationTestBase { - public UpdateModelSnapshotApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public UpdateModelSnapshotApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.UpdateModelSnapshot(CallIsolatedValue, CallIsolatedValue + "-snapshot", f), diff --git a/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotUrlTests.cs b/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotUrlTests.cs index 1e63875892c..e2d8bb05d44 100644 --- a/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/UpdateModelSnapshot/UpdateModelSnapshotUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorApiTests.cs b/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorApiTests.cs index 149e6d03b98..72ba78b760b 100644 --- a/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorApiTests.cs +++ b/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.ValidateDetector { public class ValidateDetectorApiTests : MachineLearningIntegrationTestBase, ValidateDetectorRequest> { - public ValidateDetectorApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public ValidateDetectorApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.ValidateDetector(f), diff --git a/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorUrlTests.cs b/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorUrlTests.cs index 7c6ce34fff3..ed20dca0d89 100644 --- a/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/ValidateDetector/ValidateDetectorUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobApiTests.cs b/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobApiTests.cs index 6647896d747..20ec6704a02 100644 --- a/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobApiTests.cs +++ b/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobApiTests.cs @@ -12,7 +12,7 @@ namespace Tests.XPack.MachineLearning.ValidateJob { public class ValidateJobApiTests : MachineLearningIntegrationTestBase, ValidateJobRequest> { - public ValidateJobApiTests(XPackMachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public ValidateJobApiTests(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override LazyResponses ClientUsage() => Calls( fluent: (client, f) => client.ValidateJob(f), diff --git a/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobUrlTests.cs b/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobUrlTests.cs index 56c9c245c15..5812771ddfd 100644 --- a/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobUrlTests.cs +++ b/src/Tests/XPack/MachineLearning/ValidateJob/ValidateJobUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using Tests.Framework.MockData; diff --git a/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoApiTests.cs b/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoApiTests.cs index d795aea3a25..7f084bd16b5 100644 --- a/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoApiTests.cs +++ b/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoApiTests.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoUrlTests.cs b/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoUrlTests.cs index e67490804c1..ef7da08f33a 100644 --- a/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoUrlTests.cs +++ b/src/Tests/XPack/Migration/DeprecationInfo/DeprecationInfoUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceApiTests.cs b/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceApiTests.cs index a78fe9c57fa..6e5e9a3b312 100644 --- a/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceApiTests.cs +++ b/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceUrlTests.cs b/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceUrlTests.cs index 0d426a47b25..4d545797dc8 100644 --- a/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceUrlTests.cs +++ b/src/Tests/XPack/Migration/MigrationAssistance/MigrationAssistanceUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeApiTests.cs b/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeApiTests.cs index f2dec4c31ba..17e7fe7ee51 100644 --- a/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeApiTests.cs +++ b/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeApiTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Net; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeUrlTests.cs b/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeUrlTests.cs index cd1042dbe4d..d7fedc6d67d 100644 --- a/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeUrlTests.cs +++ b/src/Tests/XPack/Migration/MigrationUpgrade/MigrationUpgradeUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/Authenticate/AuthenticateApiTests.cs b/src/Tests/XPack/Security/Authenticate/AuthenticateApiTests.cs index 5025f81ff81..71af5db4474 100644 --- a/src/Tests/XPack/Security/Authenticate/AuthenticateApiTests.cs +++ b/src/Tests/XPack/Security/Authenticate/AuthenticateApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/Authenticate/AuthenticateUrlTests.cs b/src/Tests/XPack/Security/Authenticate/AuthenticateUrlTests.cs index 7e99e2d87d1..4f9718107fe 100644 --- a/src/Tests/XPack/Security/Authenticate/AuthenticateUrlTests.cs +++ b/src/Tests/XPack/Security/Authenticate/AuthenticateUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsApiTests.cs b/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsApiTests.cs index 81195467170..0e011b21318 100644 --- a/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsApiTests.cs +++ b/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsApiTests.cs @@ -1,12 +1,13 @@ using System; using System.Linq; +using Elastic.Managed.Ephemeral; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; using Tests.Framework; using Tests.Framework.Integration; using Tests.Framework.ManagedElasticsearch.Clusters; -using Tests.Framework.ManagedElasticsearch.Tasks.InstallationTasks; using Xunit; namespace Tests.XPack.Security.ClearCachedRealms @@ -50,4 +51,4 @@ protected override void ExpectResponse(IClearCachedRealmsResponse response) } } -} \ No newline at end of file +} diff --git a/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsUrlTests.cs b/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsUrlTests.cs index 95bc62ffb84..472732d0c19 100644 --- a/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsUrlTests.cs +++ b/src/Tests/XPack/Security/ClearCachedRealms/ClearCachedRealmsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesApiTests.cs b/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesApiTests.cs index 40a2244e2d4..0e448554a8e 100644 --- a/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesApiTests.cs +++ b/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesUrlTests.cs b/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesUrlTests.cs index 63e68c4c84c..6fc746f2408 100644 --- a/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesUrlTests.cs +++ b/src/Tests/XPack/Security/Role/ClearCachedRoles/ClearCachedRolesUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/Role/DeleteRole/DeleteRoleUrlTests.cs b/src/Tests/XPack/Security/Role/DeleteRole/DeleteRoleUrlTests.cs index 267ff86db0f..9c11bd61402 100644 --- a/src/Tests/XPack/Security/Role/DeleteRole/DeleteRoleUrlTests.cs +++ b/src/Tests/XPack/Security/Role/DeleteRole/DeleteRoleUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/Role/GetRole/GetRoleUrlTests.cs b/src/Tests/XPack/Security/Role/GetRole/GetRoleUrlTests.cs index 7ce2f4e9ebd..8b28df63e33 100644 --- a/src/Tests/XPack/Security/Role/GetRole/GetRoleUrlTests.cs +++ b/src/Tests/XPack/Security/Role/GetRole/GetRoleUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/Role/PutRole/PutRoleApiTests.cs b/src/Tests/XPack/Security/Role/PutRole/PutRoleApiTests.cs index d35afea6c1b..a8a993cd45c 100644 --- a/src/Tests/XPack/Security/Role/PutRole/PutRoleApiTests.cs +++ b/src/Tests/XPack/Security/Role/PutRole/PutRoleApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/Role/PutRole/PutRoleUrlTests.cs b/src/Tests/XPack/Security/Role/PutRole/PutRoleUrlTests.cs index cc38d9db276..7ee8ddc68d3 100644 --- a/src/Tests/XPack/Security/Role/PutRole/PutRoleUrlTests.cs +++ b/src/Tests/XPack/Security/Role/PutRole/PutRoleUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/Role/RoleCrudTests.cs b/src/Tests/XPack/Security/Role/RoleCrudTests.cs index c06e6b891ab..690cc8513f1 100644 --- a/src/Tests/XPack/Security/Role/RoleCrudTests.cs +++ b/src/Tests/XPack/Security/Role/RoleCrudTests.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/Security/RoleMapping/DeleteRoleMapping/DeleteRoleMappingUrlTests.cs b/src/Tests/XPack/Security/RoleMapping/DeleteRoleMapping/DeleteRoleMappingUrlTests.cs index 5266d30bf8b..82a917e627c 100644 --- a/src/Tests/XPack/Security/RoleMapping/DeleteRoleMapping/DeleteRoleMappingUrlTests.cs +++ b/src/Tests/XPack/Security/RoleMapping/DeleteRoleMapping/DeleteRoleMappingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/RoleMapping/GetRoleMapping/GetRoleMappingUrlTests.cs b/src/Tests/XPack/Security/RoleMapping/GetRoleMapping/GetRoleMappingUrlTests.cs index c4a1d897811..783710b95b7 100644 --- a/src/Tests/XPack/Security/RoleMapping/GetRoleMapping/GetRoleMappingUrlTests.cs +++ b/src/Tests/XPack/Security/RoleMapping/GetRoleMapping/GetRoleMappingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingApiTests.cs b/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingApiTests.cs index c09b8d0775d..5f17115786a 100644 --- a/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingApiTests.cs +++ b/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingUrlTests.cs b/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingUrlTests.cs index ebf21c56c1a..884a45e47c5 100644 --- a/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingUrlTests.cs +++ b/src/Tests/XPack/Security/RoleMapping/PutRoleMapping/PutRoleMappingUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/RoleMapping/RoleMappingCrudTests.cs b/src/Tests/XPack/Security/RoleMapping/RoleMappingCrudTests.cs index 015e08e649e..75990e8397c 100644 --- a/src/Tests/XPack/Security/RoleMapping/RoleMappingCrudTests.cs +++ b/src/Tests/XPack/Security/RoleMapping/RoleMappingCrudTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/Security/RoleMapping/RoleMappingRules.doc.cs b/src/Tests/XPack/Security/RoleMapping/RoleMappingRules.doc.cs index b370682716f..5bcb6fbe1ef 100644 --- a/src/Tests/XPack/Security/RoleMapping/RoleMappingRules.doc.cs +++ b/src/Tests/XPack/Security/RoleMapping/RoleMappingRules.doc.cs @@ -4,6 +4,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Newtonsoft.Json.Linq; diff --git a/src/Tests/XPack/Security/User/ChangePassword/ChangePasswordUrlTests.cs b/src/Tests/XPack/Security/User/ChangePassword/ChangePasswordUrlTests.cs index 76b2abc8b6b..9845ec24fd0 100644 --- a/src/Tests/XPack/Security/User/ChangePassword/ChangePasswordUrlTests.cs +++ b/src/Tests/XPack/Security/User/ChangePassword/ChangePasswordUrlTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/User/DeleteUser/DeleteUserUrlTests.cs b/src/Tests/XPack/Security/User/DeleteUser/DeleteUserUrlTests.cs index 23677b8e463..81ad37d3894 100644 --- a/src/Tests/XPack/Security/User/DeleteUser/DeleteUserUrlTests.cs +++ b/src/Tests/XPack/Security/User/DeleteUser/DeleteUserUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/User/DisableUser/DisableUserUrlTests.cs b/src/Tests/XPack/Security/User/DisableUser/DisableUserUrlTests.cs index 83682cfae49..25475793ccc 100644 --- a/src/Tests/XPack/Security/User/DisableUser/DisableUserUrlTests.cs +++ b/src/Tests/XPack/Security/User/DisableUser/DisableUserUrlTests.cs @@ -4,12 +4,13 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using static Tests.Framework.UrlTester; namespace Tests.XPack.Security.User.DisableUser { - class DisableUserUrlTests : IUrlTests + public class DisableUserUrlTests : IUrlTests { [U] public async Task Urls() { diff --git a/src/Tests/XPack/Security/User/EnableUser/EnableUserUrlTests.cs b/src/Tests/XPack/Security/User/EnableUser/EnableUserUrlTests.cs index 9fdff1ca93d..a95f90d7865 100644 --- a/src/Tests/XPack/Security/User/EnableUser/EnableUserUrlTests.cs +++ b/src/Tests/XPack/Security/User/EnableUser/EnableUserUrlTests.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/User/GetUser/GetUserUrlTests.cs b/src/Tests/XPack/Security/User/GetUser/GetUserUrlTests.cs index e43d10199e0..e9fc471d98d 100644 --- a/src/Tests/XPack/Security/User/GetUser/GetUserUrlTests.cs +++ b/src/Tests/XPack/Security/User/GetUser/GetUserUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenApiTests.cs b/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenApiTests.cs index 60316f1cbdd..017ecd70612 100644 --- a/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenApiTests.cs +++ b/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenUrlTests.cs b/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenUrlTests.cs index 99c4f325284..293fe3aea5d 100644 --- a/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenUrlTests.cs +++ b/src/Tests/XPack/Security/User/GetUserAccessToken/GetUserAccessTokenUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenApiTests.cs b/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenApiTests.cs index c3dfe138c19..3bf357f6d5b 100644 --- a/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenApiTests.cs +++ b/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenApiTests.cs @@ -1,4 +1,5 @@ using System; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenUrlTests.cs b/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenUrlTests.cs index 357bca172ee..167107bf9c7 100644 --- a/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenUrlTests.cs +++ b/src/Tests/XPack/Security/User/InvalidateUserAccessToken/InvalidateUserAccessTokenUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Security/User/PutUser/PutUserApiTests.cs b/src/Tests/XPack/Security/User/PutUser/PutUserApiTests.cs index c7cb7a8fe48..6da9b95a5e2 100644 --- a/src/Tests/XPack/Security/User/PutUser/PutUserApiTests.cs +++ b/src/Tests/XPack/Security/User/PutUser/PutUserApiTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using FluentAssertions; using Nest; diff --git a/src/Tests/XPack/Security/User/PutUser/PutUserUrlTests.cs b/src/Tests/XPack/Security/User/PutUser/PutUserUrlTests.cs index c4cc0d97f0a..2d89c6a5327 100644 --- a/src/Tests/XPack/Security/User/PutUser/PutUserUrlTests.cs +++ b/src/Tests/XPack/Security/User/PutUser/PutUserUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/Security/User/UserCrudTests.cs b/src/Tests/XPack/Security/User/UserCrudTests.cs index 70ea5cc856f..944eb77c92a 100644 --- a/src/Tests/XPack/Security/User/UserCrudTests.cs +++ b/src/Tests/XPack/Security/User/UserCrudTests.cs @@ -1,4 +1,5 @@ using System.Linq; +using Elastic.Xunit.XunitPlumbing; using FluentAssertions; using Nest; using Tests.Framework; diff --git a/src/Tests/XPack/Watcher/AcknowledgeWatch/AcknowledgeWatchUrlTests.cs b/src/Tests/XPack/Watcher/AcknowledgeWatch/AcknowledgeWatchUrlTests.cs index 863d75b12c6..b619411fb29 100644 --- a/src/Tests/XPack/Watcher/AcknowledgeWatch/AcknowledgeWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/AcknowledgeWatch/AcknowledgeWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/ActivateWatch/ActivateWatchUrlTests.cs b/src/Tests/XPack/Watcher/ActivateWatch/ActivateWatchUrlTests.cs index 404dc2d6af9..b2fd4bce582 100644 --- a/src/Tests/XPack/Watcher/ActivateWatch/ActivateWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/ActivateWatch/ActivateWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/DeactivateWatch/DeactivateWatchUrlTests.cs b/src/Tests/XPack/Watcher/DeactivateWatch/DeactivateWatchUrlTests.cs index feae25c41aa..e178035c1a6 100644 --- a/src/Tests/XPack/Watcher/DeactivateWatch/DeactivateWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/DeactivateWatch/DeactivateWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/DeleteWatch/DeleteWatchUrlTests.cs b/src/Tests/XPack/Watcher/DeleteWatch/DeleteWatchUrlTests.cs index 44cc5a9d22f..1463de344d4 100644 --- a/src/Tests/XPack/Watcher/DeleteWatch/DeleteWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/DeleteWatch/DeleteWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/ExecuteWatch/ExecuteWatchUrlTests.cs b/src/Tests/XPack/Watcher/ExecuteWatch/ExecuteWatchUrlTests.cs index be0d64e573a..138e213fedc 100644 --- a/src/Tests/XPack/Watcher/ExecuteWatch/ExecuteWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/ExecuteWatch/ExecuteWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/GetWatch/GetWatchUrlTests.cs b/src/Tests/XPack/Watcher/GetWatch/GetWatchUrlTests.cs index 316f0e72f6e..cc76e5c2d8d 100644 --- a/src/Tests/XPack/Watcher/GetWatch/GetWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/GetWatch/GetWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/PutWatch/PutWatchUrlTests.cs b/src/Tests/XPack/Watcher/PutWatch/PutWatchUrlTests.cs index f8b2f0275bf..640487385d4 100644 --- a/src/Tests/XPack/Watcher/PutWatch/PutWatchUrlTests.cs +++ b/src/Tests/XPack/Watcher/PutWatch/PutWatchUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/RestartWatcher/RestartWatcherUrlTests.cs b/src/Tests/XPack/Watcher/RestartWatcher/RestartWatcherUrlTests.cs index ca9e6045668..826540dbd31 100644 --- a/src/Tests/XPack/Watcher/RestartWatcher/RestartWatcherUrlTests.cs +++ b/src/Tests/XPack/Watcher/RestartWatcher/RestartWatcherUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/StartWatcher/StartWatcherUrlTests.cs b/src/Tests/XPack/Watcher/StartWatcher/StartWatcherUrlTests.cs index 8a490dd691c..af0e33e6226 100644 --- a/src/Tests/XPack/Watcher/StartWatcher/StartWatcherUrlTests.cs +++ b/src/Tests/XPack/Watcher/StartWatcher/StartWatcherUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/StopWatcher/StopWatcherUrlTests.cs b/src/Tests/XPack/Watcher/StopWatcher/StopWatcherUrlTests.cs index 399c0e623fd..78c66367ed8 100644 --- a/src/Tests/XPack/Watcher/StopWatcher/StopWatcherUrlTests.cs +++ b/src/Tests/XPack/Watcher/StopWatcher/StopWatcherUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Nest; using Tests.Framework; using static Tests.Framework.UrlTester; diff --git a/src/Tests/XPack/Watcher/WatcherStats/WatcherStatsUrlTests.cs b/src/Tests/XPack/Watcher/WatcherStats/WatcherStatsUrlTests.cs index d2003538d8e..349a413d9bf 100644 --- a/src/Tests/XPack/Watcher/WatcherStats/WatcherStatsUrlTests.cs +++ b/src/Tests/XPack/Watcher/WatcherStats/WatcherStatsUrlTests.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Elastic.Xunit.XunitPlumbing; using Elasticsearch.Net; using Nest; using Tests.Framework; diff --git a/src/Tests/tests.default.yaml b/src/Tests/tests.default.yaml index 9afe472e594..929b3f7777e 100644 --- a/src/Tests/tests.default.yaml +++ b/src/Tests/tests.default.yaml @@ -12,7 +12,10 @@ elasticsearch_version: 5.5.0 # cluster filter allows you to only run the integration tests of a particular cluster (cluster suffix not needed) # cluster_filter: # whether we want to forcefully reseed on the node, if you are starting the tests with a node already running -force_reseed: false +#force_reseed: true # do not spawn nodes as part of the test setup if we find a node is already running # this is opt in during development in CI we never want to see our tests running against an already running node test_against_already_running_elasticsearch: true + +#random_source_serializer: true +seed: 69819