예제 #1
0
 public static AndConstraint <CommandResultAssertions> NotHaveResolvedComponentDependencyAssembly(
     this CommandResultAssertions assertion,
     string assemblyPath,
     TestApp app = null)
 {
     return(assertion.NotHaveResolvedComponentDependencyContaining(assemblies, RelativePathsToAbsoluteAppPaths(assemblyPath, app)));
 }
예제 #2
0
 public static AndConstraint <CommandResultAssertions> NotHaveResolvedComponentDependencyNativeLibraryPath(
     this CommandResultAssertions assertion,
     string path,
     TestApp app = null)
 {
     return(assertion.NotHaveResolvedComponentDependencyContaining(native_search_paths, RelativePathsToAbsoluteAppPaths(path, app)));
 }
예제 #3
0
 public static AndConstraint <CommandResultAssertions> CreateDelegateMock_COM(this CommandResultAssertions assertion)
 {
     return(assertion.CreateDelegateMock()
            .And.HaveStdOutContaining("mock entryPointAssemblyName:System.Private.CoreLib")
            .And.HaveStdOutContaining("mock entryPointTypeName:Internal.Runtime.InteropServices.ComActivator")
            .And.HaveStdOutContaining("mock entryPointMethodName:GetClassFactoryForTypeInternal"));
 }
 public static AndConstraint <CommandResultAssertions> FailedToReconcileFrameworkReference(
     this CommandResultAssertions assertion,
     string frameworkName,
     string newVersion,
     string previousVersion)
 {
     return(assertion.HaveStdErrMatching($".*The specified framework '{frameworkName}', version '{newVersion}', apply_patches=[0-1], roll_forward=[^ ]* cannot roll-forward to the previously referenced version '{previousVersion}'.*"));
 }
        public static AndConstraint <CommandResultAssertions> FindAnySdk(this CommandResultAssertions assertion, bool shouldFindAnySdk)
        {
            string noSdkMessage = "No .NET SDKs were found";

            return(shouldFindAnySdk
                ? assertion.NotHaveStdErrContaining(noSdkMessage)
                : assertion.HaveStdErrContaining(noSdkMessage)
                   .And.HaveStdErrContaining("Download a .NET SDK:"));
        }
예제 #6
0
        public static AndConstraint <CommandResultAssertions> HaveResolvedFramework(this CommandResultAssertions assertion, string name, string version, string resolvedFrameworkBasePath = null)
        {
            string expectedOutput = $"mock frameworks: {name} {version}";

            if (resolvedFrameworkBasePath is not null)
            {
                expectedOutput += $" [path: {Path.Combine(resolvedFrameworkBasePath, "shared", name, version)}]";
            }

            return(assertion.HaveStdOutContaining(expectedOutput));
        }
예제 #7
0
        public static AndConstraint <CommandResultAssertions> NotHaveResolvedComponentDependencyContaining(
            this CommandResultAssertions assertion,
            string propertyName,
            params string[] values)
        {
            string propertyValue = GetComponentMockPropertyValue(assertion, propertyName);

            foreach (string value in values)
            {
                Execute.Assertion.ForCondition(propertyValue != null && !propertyValue.Contains(value))
                .FailWith("The resolved {0} contains unexpected value: {1}\n{2}\n{3}", propertyName, value, propertyValue, assertion.GetDiagnosticsInfo());
            }

            return(new AndConstraint <CommandResultAssertions>(assertion));
        }
예제 #8
0
        public static AndConstraint <CommandResultAssertions> ExecuteAssemblyMock(this CommandResultAssertions assertion, string appPath, string[] appArgs)
        {
            var constraint = assertion.HaveStdOutContaining("mock coreclr_initialize() called")
                             .And.HaveStdOutContaining("mock coreclr_execute_assembly() called")
                             .And.HaveStdOutContaining($"mock managedAssemblyPath:{appPath}")
                             .And.HaveStdOutContaining($"mock argc:{appArgs.Length}")
                             .And.HaveStdOutContaining("mock coreclr_shutdown_2() called");

            for (int i = 0; i < appArgs.Length; ++i)
            {
                constraint = constraint.And.HaveStdOutContaining($"mock argv[{i}] = {appArgs[i]}");
            }

            return(constraint);
        }
예제 #9
0
        private static string GetMockPropertyValue(CommandResultAssertions assertion, string propertyHeader)
        {
            string stdout = assertion.Result.StdOut;
            int    i      = stdout.IndexOf(propertyHeader);

            if (i >= 0)
            {
                i += propertyHeader.Length;
                int end = assertion.Result.StdOut.IndexOf(Environment.NewLine, i);
                if (end >= i)
                {
                    return(stdout.Substring(i, end - i));
                }
            }

            return(null);
        }
        public static AndConstraint <CommandResultAssertions> NotHaveResolvedComponentDependencyContaining(
            this CommandResultAssertions assertion,
            string propertyName,
            params string[] values)
        {
            string propertyValue = GetComponentMockPropertyValue(assertion, propertyName);

            foreach (string value in values)
            {
                Execute.Assertion.ForCondition(propertyValue != null && !propertyValue.Contains(value))
                .FailWithPreformatted($"The resolved {propertyName} contains unexpected value: '{value}'{Environment.NewLine}" +
                                      $"{propertyName}='{propertyValue}'" +
                                      $"{assertion.GetDiagnosticsInfo()}");
            }

            return(new AndConstraint <CommandResultAssertions>(assertion));
        }
        public static AndConstraint <CommandResultAssertions> NotFindCompatibleSdk(this CommandResultAssertions assertion, string globalJsonPath = null, string requestedVersion = null)
        {
            var constraint = assertion.HaveStdErrContaining("compatible .NET SDK was not found");

            if (globalJsonPath is not null)
            {
                constraint = constraint.And.HaveStdErrContaining($"global.json file: {globalJsonPath}");
            }

            if (requestedVersion is not null)
            {
                constraint = constraint.And.HaveStdErrContaining($"Requested SDK version: {requestedVersion}");
            }

            if (globalJsonPath is not null && requestedVersion is not null)
            {
                constraint = constraint.And.HaveStdErrContaining($"Install the [{requestedVersion}] .NET SDK or update [{globalJsonPath}] to match an installed SDK.");
            }

            return(constraint);
        }
 public static AndConstraint <CommandResultAssertions> HaveUsedConfigFileInstallLocation(this CommandResultAssertions assertion, string installLocation)
 {
     return(assertion.HaveStdErrContaining($"Using install location '{installLocation}'."));
 }
        public static AndConstraint <CommandResultAssertions> HaveUsedDotNetRootInstallLocation(this CommandResultAssertions assertion,
                                                                                                string installLocation,
                                                                                                string rid,
                                                                                                string arch)
        {
            // If no arch is passed and we are on Windows, we need the used RID for determining whether or not we are running on WoW64.
            if (string.IsNullOrEmpty(arch))
            {
                Assert.NotNull(rid);
            }

            string expectedEnvironmentVariable = !string.IsNullOrEmpty(arch) ? $"DOTNET_ROOT_{arch.ToUpper()}" :
                                                 IsRunningInWoW64(rid) ? "DOTNET_ROOT(x86)" : "DOTNET_ROOT";

            return(assertion.HaveStdErrContaining($"Using environment variable {expectedEnvironmentVariable}=[{installLocation}] as runtime location."));
        }
 public static AndConstraint <CommandResultAssertions> HaveUsedDotNetRootInstallLocation(this CommandResultAssertions assertion, string installLocation, string rid)
 {
     return(assertion.HaveUsedDotNetRootInstallLocation(installLocation, rid, null));
 }
예제 #15
0
 public static AndConstraint <CommandResultAssertions> GetRuntimePropertiesIncludes(this CommandResultAssertions assertion, string prefix, string name, string value)
 {
     return(assertion.HaveStdOutContaining($"{prefix}hostfxr_get_runtime_properties succeeded")
            .And.HaveStdOutContaining($"{prefix}hostfxr_get_runtime_properties: {name}={value}"));
 }
예제 #16
0
 public static AndConstraint <CommandResultAssertions> FailToSetRuntimePropertyValue(this CommandResultAssertions assertion, string prefix, string name, int errorCode)
 {
     return(assertion.HaveStdOutContaining($"{prefix}hostfxr_set_runtime_property_value failed for property: {name} - 0x{errorCode.ToString("x")}"));
 }
예제 #17
0
 public static AndConstraint <CommandResultAssertions> SetRuntimePropertyValue(this CommandResultAssertions assertion, string prefix, string name)
 {
     return(assertion.HaveStdOutContaining($"{prefix}hostfxr_set_runtime_property_value succeeded for property: {name}"));
 }
예제 #18
0
 public static AndConstraint <CommandResultAssertions> FailToInitializeContextForConfig(this CommandResultAssertions assertion, int errorCode)
 {
     return(assertion.HaveStdOutContaining($"hostfxr_initialize_for_runtime_config failed: 0x{errorCode.ToString("x")}"));
 }
예제 #19
0
 public static AndConstraint <CommandResultAssertions> InitializeSecondaryContext(this CommandResultAssertions assertion, string path, int statusCode)
 {
     return(assertion.HaveStdErrContaining($"Initialized secondary context for config: {path}")
            .And.HaveStdOutContaining($"hostfxr_initialize_for_runtime_config succeeded: 0x{statusCode.ToString("x")}"));
 }
예제 #20
0
 public static AndConstraint <CommandResultAssertions> NotHaveResolvedAssembly(this CommandResultAssertions assertion, string assemblyPath, TestApp app = null)
 {
     return(assertion.NotHaveRuntimePropertyContaining(TRUSTED_PLATFORM_ASSEMBLIES, RelativePathsToAbsoluteAppPaths(assemblyPath, app)));
 }
 public static AndConstraint <CommandResultAssertions> HaveFoundArchSpecificInstallLocationInConfigFile(this CommandResultAssertions assertion, string installLocation, string arch)
 {
     return(assertion.HaveStdErrContaining($"Found architecture-specific install location path: '{installLocation}' ('{arch}')."));
 }
 public static AndConstraint <CommandResultAssertions> HaveUsedGlobalInstallLocation(this CommandResultAssertions assertion, string installLocation)
 {
     return(assertion.HaveStdErrContaining($"Using global installation location [{installLocation}]"));
 }
예제 #23
0
 public static AndConstraint <CommandResultAssertions> CreateDelegateMock(this CommandResultAssertions assertion)
 {
     return(assertion.HaveStdOutContaining("mock coreclr_initialize() called")
            .And.HaveStdOutContaining("mock coreclr_create_delegate() called"));
 }
예제 #24
0
 public static AndConstraint <CommandResultAssertions> FailToGetRuntimeProperties(this CommandResultAssertions assertion, string prefix, int errorCode)
 {
     return(assertion.HaveStdOutContaining($"{prefix}hostfxr_get_runtime_properties failed - 0x{errorCode.ToString("x")}"));
 }
 public static AndConstraint <CommandResultAssertions> HaveFoundDefaultInstallLocationInConfigFile(this CommandResultAssertions assertion, string installLocation)
 {
     return(assertion.HaveStdErrContaining($"Found install location path '{installLocation}'."));
 }
예제 #26
0
 public static AndConstraint <CommandResultAssertions> CreateDelegateMock_InMemoryAssembly(this CommandResultAssertions assertion)
 {
     return(assertion.CreateDelegateMock()
            .And.HaveStdOutContaining("mock entryPointAssemblyName:System.Private.CoreLib")
            .And.HaveStdOutContaining("mock entryPointTypeName:Internal.Runtime.InteropServices.InMemoryAssemblyLoader")
            .And.HaveStdOutContaining("mock entryPointMethodName:LoadInMemoryAssembly"));
 }
예제 #27
0
        public static AndConstraint <CommandResultAssertions> HaveRuntimePropertyContaining(this CommandResultAssertions assertion, string propertyName, params string[] values)
        {
            string propertyValue = GetMockPropertyValue(assertion, propertyName);

            foreach (string value in values)
            {
                Execute.Assertion.ForCondition(propertyValue != null && propertyValue.Contains(value))
                .FailWith("The property {0} doesn't contain expected value: {1}\n{2}\n{3}", propertyName, value, propertyValue, assertion.GetDiagnosticsInfo());
            }

            return(new AndConstraint <CommandResultAssertions>(assertion));
        }
예제 #28
0
 public static AndConstraint <CommandResultAssertions> NotHavePropertyMock(this CommandResultAssertions assertion, string name)
 {
     return(assertion.NotHaveStdOutContaining($"mock property[{name}]"));
 }
예제 #29
0
 public static AndConstraint <CommandResultAssertions> NotHaveResolvedNativeLibraryPath(this CommandResultAssertions assertion, string path, TestApp app = null)
 {
     return(assertion.NotHaveRuntimePropertyContaining(NATIVE_DLL_SEARCH_DIRECTORIES, RelativePathsToAbsoluteAppPaths(path, app)));
 }
예제 #30
0
 public static AndConstraint <CommandResultAssertions> InitializeContextForConfig(this CommandResultAssertions assertion, string path)
 {
     return(assertion.HaveStdErrContaining($"Initialized context for config: {path}"));
 }