diff --git a/test/csharp/test_FileSystemProvider.cs b/test/csharp/test_FileSystemProvider.cs index 7c33910d8..fd6488c18 100644 --- a/test/csharp/test_FileSystemProvider.cs +++ b/test/csharp/test_FileSystemProvider.cs @@ -1,17 +1,116 @@ using Xunit; using System; +using System.Collections.ObjectModel; +using System.Globalization; +using System.IO; +using System.Linq; using System.Management.Automation; +using System.Management.Automation.Host; +using System.Management.Automation.Internal; +using System.Management.Automation.Internal.Host; +using System.Management.Automation.Provider; +using System.Management.Automation.Runspaces; +using Microsoft.PowerShell; using Microsoft.PowerShell.Commands; +using Microsoft.PowerShell.Linux.Host; namespace PSTests { [Collection("AssemblyLoadContext")] public static class FileSystemProviderTests { + private static ProviderInfo GetProvider() + { + CultureInfo currentCulture = CultureInfo.CurrentCulture; + PSHost hostInterface = new DefaultHost(currentCulture,currentCulture); + RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create(); + InitialSessionState iss = InitialSessionState.CreateDefault2(); + + AutomationEngine engine = new AutomationEngine(hostInterface, runspaceConfiguration, iss); + ExecutionContext executionContext = new ExecutionContext(engine, hostInterface, iss); + SessionStateInternal sessionState = new SessionStateInternal(executionContext); + + SessionStateProviderEntry providerEntry = new SessionStateProviderEntry("FileSystem",typeof(FileSystemProvider), null); + sessionState.AddSessionStateEntry(providerEntry); + ProviderInfo matchingProvider = sessionState.ProviderList.ToList()[0]; + + return matchingProvider; + } + [Fact] public static void TestCreateJunctionFails() { Assert.False(InternalSymbolicLinkLinkCodeMethods.CreateJunction("","")); + } + + [Fact] + public static void TestGetHelpMaml() + { + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + Assert.Equal(fileSystemProvider.GetHelpMaml(String.Empty,String.Empty),String.Empty); + Assert.Equal(fileSystemProvider.GetHelpMaml("helpItemName",String.Empty),String.Empty); + Assert.Equal(fileSystemProvider.GetHelpMaml(String.Empty,"path"),String.Empty); + } + + [Fact] + public static void TestMode() + { + Assert.Equal(FileSystemProvider.Mode(null),String.Empty); + FileSystemInfo fileSystemObject = new DirectoryInfo(@"/"); + Assert.NotEqual(FileSystemProvider.Mode(PSObject.AsPSObject(fileSystemObject)),String.Empty); + } + + [Fact(Skip = "Need mock")] + public static void TestGetProperty() + { + string path = @"/filesystemobject1"; + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + ProviderInfo providerInfoToSet = GetProvider(); + fileSystemProvider.SetProviderInformation(providerInfoToSet); + FileInfo fileSystemObject1 = new FileInfo(path); + fileSystemProvider.SetProperty(path, PSObject.AsPSObject(fileSystemObject1)); + fileSystemProvider.GetProperty(path, new Collection(){"Attributes"}); + } + + [Fact(Skip = "Need mock")] + public static void TestSetProperty() + { + string path = @"/filesystemobject1"; + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + ProviderInfo providerInfoToSet = GetProvider(); + fileSystemProvider.SetProviderInformation(providerInfoToSet); + FileInfo fileSystemObject1 = new FileInfo(path); + fileSystemProvider.SetProperty(@"/root", PSObject.AsPSObject(fileSystemObject1)); + } + + [Fact(Skip = "Need mock")] + public static void TestClearProperty() + { + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + fileSystemProvider.ClearProperty(@"/test", new Collection(){"Attributes"}); + } + + [Fact(Skip = "Need mock")] + public static void TestGetContentReader() + { + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + IContentReader contentReader = fileSystemProvider.GetContentReader(@"/test"); + Assert.NotNull(contentReader); + } + + [Fact(Skip = "Need mock")] + public static void TestGetContentWriter() + { + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + IContentWriter contentWriter = fileSystemProvider.GetContentWriter(@"/test"); + Assert.NotNull(contentWriter); + } + + [Fact(Skip = "Need mock")] + public static void TestClearContent() + { + FileSystemProvider fileSystemProvider = new FileSystemProvider(); + fileSystemProvider.ClearContent(@"/test"); } } }