public void ManifestFromTestHookShouldOverrideDefault() { Initialize(); var additionalManifestDirectory = Path.Combine(_testDirectory, "AdditionalManifests"); Directory.CreateDirectory(additionalManifestDirectory); var environmentMock = new EnvironmentMock(); environmentMock.Add("DOTNETSDK_WORKLOAD_MANIFEST_ROOTS", additionalManifestDirectory); // Manifest in test hook directory Directory.CreateDirectory(Path.Combine(additionalManifestDirectory, "Android")); File.WriteAllText(Path.Combine(additionalManifestDirectory, "Android", "WorkloadManifest.json"), "OverridingAndroidContent"); // Manifest in default directory Directory.CreateDirectory(Path.Combine(_manifestDirectory, "Android")); File.WriteAllText(Path.Combine(_manifestDirectory, "Android", "WorkloadManifest.json"), "OverriddenAndroidContent"); var sdkDirectoryWorkloadManifestProvider = new SdkDirectoryWorkloadManifestProvider(sdkRootPath: _fakeDotnetRootDirectory, sdkVersion: "5.0.100", environmentMock.GetEnvironmentVariable); GetManifestContents(sdkDirectoryWorkloadManifestProvider) .Should() .BeEquivalentTo("OverridingAndroidContent"); }
public void ItShouldReturnManifestsFromTestHook() { Initialize(); string sdkVersion = "5.0.100"; var additionalManifestDirectory = Path.Combine(_testDirectory, "AdditionalManifests"); Directory.CreateDirectory(additionalManifestDirectory); var environmentMock = new EnvironmentMock(); environmentMock.Add(EnvironmentVariableNames.WORKLOAD_MANIFEST_ROOTS, additionalManifestDirectory); // Manifest in test hook directory Directory.CreateDirectory(Path.Combine(additionalManifestDirectory, sdkVersion, "Android")); File.WriteAllText(Path.Combine(additionalManifestDirectory, sdkVersion, "Android", "WorkloadManifest.json"), "AndroidContent"); // Manifest in default directory Directory.CreateDirectory(Path.Combine(_manifestDirectory, "iOS")); File.WriteAllText(Path.Combine(_manifestDirectory, "iOS", "WorkloadManifest.json"), "iOSContent"); var sdkDirectoryWorkloadManifestProvider = new SdkDirectoryWorkloadManifestProvider(sdkRootPath: _fakeDotnetRootDirectory, sdkVersion: sdkVersion, environmentMock.GetEnvironmentVariable); GetManifestContents(sdkDirectoryWorkloadManifestProvider) .Should() .BeEquivalentTo("AndroidContent", "iOSContent"); }
public void ItSupportsMultipleTestHookFolders() { Initialize(); string sdkVersion = "5.0.100"; var additionalManifestDirectory1 = Path.Combine(_testDirectory, "AdditionalManifests1"); Directory.CreateDirectory(additionalManifestDirectory1); var additionalManifestDirectory2 = Path.Combine(_testDirectory, "AdditionalManifests2"); Directory.CreateDirectory(additionalManifestDirectory2); var environmentMock = new EnvironmentMock(); environmentMock.Add(EnvironmentVariableNames.WORKLOAD_MANIFEST_ROOTS, additionalManifestDirectory1 + Path.PathSeparator + additionalManifestDirectory2); // Manifests in default directory Directory.CreateDirectory(Path.Combine(_manifestDirectory, "iOS")); File.WriteAllText(Path.Combine(_manifestDirectory, "iOS", "WorkloadManifest.json"), "iOSContent"); Directory.CreateDirectory(Path.Combine(_manifestDirectory, "Android")); File.WriteAllText(Path.Combine(_manifestDirectory, "Android", "WorkloadManifest.json"), "DefaultAndroidContent"); // Manifests in first additional directory Directory.CreateDirectory(Path.Combine(additionalManifestDirectory1, sdkVersion, "Android")); File.WriteAllText(Path.Combine(additionalManifestDirectory1, sdkVersion, "Android", "WorkloadManifest.json"), "AndroidContent1"); // Manifests in second additional directory Directory.CreateDirectory(Path.Combine(additionalManifestDirectory2, sdkVersion, "Android")); File.WriteAllText(Path.Combine(additionalManifestDirectory2, sdkVersion, "Android", "WorkloadManifest.json"), "AndroidContent2"); Directory.CreateDirectory(Path.Combine(additionalManifestDirectory2, sdkVersion, "Test")); File.WriteAllText(Path.Combine(additionalManifestDirectory2, sdkVersion, "Test", "WorkloadManifest.json"), "TestContent2"); var sdkDirectoryWorkloadManifestProvider = new SdkDirectoryWorkloadManifestProvider(sdkRootPath: _fakeDotnetRootDirectory, sdkVersion: sdkVersion, environmentMock.GetEnvironmentVariable); GetManifestContents(sdkDirectoryWorkloadManifestProvider) .Should() .BeEquivalentTo("AndroidContent1", "iOSContent", "TestContent2"); }
public void IfTestHookFolderDoesNotExistItShouldBeIgnored() { Initialize(); var additionalManifestDirectory = Path.Combine(_testDirectory, "AdditionalManifests"); var environmentMock = new EnvironmentMock(); environmentMock.Add(EnvironmentVariableNames.WORKLOAD_MANIFEST_ROOTS, additionalManifestDirectory); // Manifest in default directory Directory.CreateDirectory(Path.Combine(_manifestDirectory, "Android")); File.WriteAllText(Path.Combine(_manifestDirectory, "Android", "WorkloadManifest.json"), "AndroidContent"); var sdkDirectoryWorkloadManifestProvider = new SdkDirectoryWorkloadManifestProvider(sdkRootPath: _fakeDotnetRootDirectory, sdkVersion: "5.0.100", environmentMock.GetEnvironmentVariable); GetManifestContents(sdkDirectoryWorkloadManifestProvider) .Should() .BeEquivalentTo("AndroidContent"); }