diff --git a/test/Renci.SshNet.Shared.Tests/Abstractions/DnsAbstraction_GetHostAddresses.cs b/test/Renci.SshNet.Shared.Tests/Abstractions/DnsAbstraction_GetHostAddresses.cs new file mode 100644 index 00000000..f530b39f --- /dev/null +++ b/test/Renci.SshNet.Shared.Tests/Abstractions/DnsAbstraction_GetHostAddresses.cs @@ -0,0 +1,92 @@ +using System; +using System.Net; +using System.Net.Sockets; +#if SILVERLIGHT +using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; +#else +using Microsoft.VisualStudio.TestTools.UnitTesting; +#endif +using Renci.SshNet.Abstractions; + +namespace Renci.SshNet.Tests.Abstractions +{ + [TestClass] + public class DnsAbstraction_GetHostAddresses + { + [TestMethod] + public void ShouldThrowArgumentNullExceptionWhenHostNameOrAddressIsNull() + { + const string hostNameOrAddress = null; + + try + { + DnsAbstraction.GetHostAddresses(hostNameOrAddress); + Assert.Fail(); + } + catch (ArgumentNullException ex) + { + Assert.IsNull(ex.InnerException); + Assert.AreEqual("hostNameOrAddress", ex.ParamName); + } + } + + [TestMethod] + public void ShouldThrowSocketExceptionWhenHostIsNotFound() + { + const string hostNameOrAddress = "surelydoesnotexist.OrAmIWrong"; + + try + { + var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress); + Assert.Fail(addresses.ToString()); + } + catch (SocketException ex) + { + Assert.IsNull(ex.InnerException); + Assert.AreEqual(SocketError.HostNotFound, ex.SocketErrorCode); + } + } + + [TestMethod] + public void ShouldReturnHostAddressesOfLocalHostWhenHostNameOrAddressIsEmpty() + { + const string hostNameOrAddress = ""; + + var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress); + Assert.IsNotNull(addresses); + +#if !SILVERLIGHT + var hostEntry = Dns.GetHostEntry(Dns.GetHostName()); + Assert.IsNotNull(hostEntry); + + Assert.AreEqual(hostEntry.AddressList.Length, addresses.Length); + for (var i = 0; i < hostEntry.AddressList.Length; i++) + Assert.AreEqual(hostEntry.AddressList[i], addresses[i]); +#endif + } + + [TestMethod] + public void ShouldReturnSingleIpv4AddressWhenHostNameOrAddressIsValidIpv4Address() + { + const string hostNameOrAddress = "1.2.3.4"; + + var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress); + Assert.IsNotNull(addresses); + Assert.AreEqual(1, addresses.Length); + Assert.AreEqual(AddressFamily.InterNetwork, addresses[0].AddressFamily); + Assert.AreEqual(IPAddress.Parse(hostNameOrAddress), addresses[0]); + } + + [TestMethod] + public void ShouldReturnSingleIpv6AddressWhenHostNameOrAddressIsValidIpv6Address() + { + const string hostNameOrAddress = "2001:0:9d38:90d7:384f:2133:ab3d:d152"; + + var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress); + Assert.IsNotNull(addresses); + Assert.AreEqual(1, addresses.Length); + Assert.AreEqual(AddressFamily.InterNetworkV6, addresses[0].AddressFamily); + Assert.AreEqual(IPAddress.Parse(hostNameOrAddress), addresses[0]); + } + } +} diff --git a/test/Renci.SshNet.Shared.Tests/Abstractions/ThreadAbstraction_ExecuteThread.cs b/test/Renci.SshNet.Shared.Tests/Abstractions/ThreadAbstraction_ExecuteThread.cs new file mode 100644 index 00000000..64d03caf --- /dev/null +++ b/test/Renci.SshNet.Shared.Tests/Abstractions/ThreadAbstraction_ExecuteThread.cs @@ -0,0 +1,65 @@ +using System; +using System.Threading; +#if SILVERLIGHT +using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; +#else +using Microsoft.VisualStudio.TestTools.UnitTesting; +#endif +using Renci.SshNet.Abstractions; + +namespace Renci.SshNet.Tests.Abstractions +{ + [TestClass] + public class ThreadAbstraction_ExecuteThread + { + [TestMethod] + public void ShouldThrowArgumentNullExceptionWhenActionIsNull() + { + const Action action = null; + + try + { + ThreadAbstraction.ExecuteThread(action); + Assert.Fail(); + } + catch (ArgumentNullException ex) + { + Assert.IsNull(ex.InnerException); + Assert.AreEqual("action", ex.ParamName); + } + } + + [TestMethod] + public void ShouldExecuteActionOnSeparateThread() + { + DateTime? executionTime = null; + int executionCount = 0; + EventWaitHandle waitHandle = new ManualResetEvent(false); + + Action action = () => + { + ThreadAbstraction.Sleep(500); + executionCount++; + executionTime = DateTime.Now; + waitHandle.Set(); + }; + + DateTime start = DateTime.Now; + + ThreadAbstraction.ExecuteThread(action); + + Assert.AreEqual(0, executionCount); + Assert.IsNull(executionTime); + + Assert.IsTrue(waitHandle.WaitOne(2000)); + + Assert.AreEqual(1, executionCount); + Assert.IsNotNull(executionTime); + + var elapsedTime = executionTime.Value - start; + Assert.IsTrue(elapsedTime > TimeSpan.Zero); + Assert.IsTrue(elapsedTime > TimeSpan.FromMilliseconds(500)); + Assert.IsTrue(elapsedTime < TimeSpan.FromMilliseconds(1000)); + } + } +} diff --git a/test/Renci.SshNet.Shared.Tests/Renci.SshNet.Shared.Tests.projitems b/test/Renci.SshNet.Shared.Tests/Renci.SshNet.Shared.Tests.projitems new file mode 100644 index 00000000..d1a3ff4c --- /dev/null +++ b/test/Renci.SshNet.Shared.Tests/Renci.SshNet.Shared.Tests.projitems @@ -0,0 +1,15 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + fae3948f-a438-458e-8e0e-7f6e39a5dd8a + + + Renci.SshNet.Tests + + + + + + \ No newline at end of file diff --git a/test/Renci.SshNet.Shared.Tests/Renci.SshNet.Shared.Tests.shproj b/test/Renci.SshNet.Shared.Tests/Renci.SshNet.Shared.Tests.shproj new file mode 100644 index 00000000..72088027 --- /dev/null +++ b/test/Renci.SshNet.Shared.Tests/Renci.SshNet.Shared.Tests.shproj @@ -0,0 +1,13 @@ + + + + fae3948f-a438-458e-8e0e-7f6e39a5dd8a + 14.0 + + + + + + + + diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/App.xaml b/test/Renci.SshNet.WindowsPhone8.Tests/App.xaml new file mode 100644 index 00000000..0ce73407 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/App.xaml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/App.xaml.cs b/test/Renci.SshNet.WindowsPhone8.Tests/App.xaml.cs new file mode 100644 index 00000000..771bdf25 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/App.xaml.cs @@ -0,0 +1,222 @@ +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Markup; +using System.Windows.Navigation; +using Microsoft.Phone.Controls; +using Microsoft.Phone.Shell; +using Renci.SshNet.Tests.Resources; + +namespace Renci.SshNet.Tests +{ + public partial class App : Application + { + /// + /// Provides easy access to the root frame of the Phone Application. + /// + /// The root frame of the Phone Application. + public static PhoneApplicationFrame RootFrame { get; private set; } + + /// + /// Constructor for the Application object. + /// + public App() + { + // Global handler for uncaught exceptions. + UnhandledException += Application_UnhandledException; + + // Standard XAML initialization + InitializeComponent(); + + // Phone-specific initialization + InitializePhoneApplication(); + + // Language display initialization + InitializeLanguage(); + + // Show graphics profiling information while debugging. + if (Debugger.IsAttached) + { + // Display the current frame rate counters. + Application.Current.Host.Settings.EnableFrameRateCounter = true; + + // Show the areas of the app that are being redrawn in each frame. + //Application.Current.Host.Settings.EnableRedrawRegions = true; + + // Enable non-production analysis visualization mode, + // which shows areas of a page that are handed off to GPU with a colored overlay. + //Application.Current.Host.Settings.EnableCacheVisualization = true; + + // Prevent the screen from turning off while under the debugger by disabling + // the application's idle detection. + // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run + // and consume battery power when the user is not using the phone. + PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; + } + + } + + // Code to execute when the application is launching (eg, from Start) + // This code will not execute when the application is reactivated + private void Application_Launching(object sender, LaunchingEventArgs e) + { + } + + // Code to execute when the application is activated (brought to foreground) + // This code will not execute when the application is first launched + private void Application_Activated(object sender, ActivatedEventArgs e) + { + } + + // Code to execute when the application is deactivated (sent to background) + // This code will not execute when the application is closing + private void Application_Deactivated(object sender, DeactivatedEventArgs e) + { + } + + // Code to execute when the application is closing (eg, user hit Back) + // This code will not execute when the application is deactivated + private void Application_Closing(object sender, ClosingEventArgs e) + { + } + + // Code to execute if a navigation fails + private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e) + { + if (Debugger.IsAttached) + { + // A navigation has failed; break into the debugger + Debugger.Break(); + } + } + + // Code to execute on Unhandled Exceptions + private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) + { + if (Debugger.IsAttached) + { + // An unhandled exception has occurred; break into the debugger + Debugger.Break(); + } + } + + #region Phone application initialization + + // Avoid double-initialization + private bool phoneApplicationInitialized = false; + + // Do not add any additional code to this method + private void InitializePhoneApplication() + { + if (phoneApplicationInitialized) + return; + + // Create the frame but don't set it as RootVisual yet; this allows the splash + // screen to remain active until the application is ready to render. + RootFrame = new PhoneApplicationFrame(); + RootFrame.Navigated += CompleteInitializePhoneApplication; + + // Handle navigation failures + RootFrame.NavigationFailed += RootFrame_NavigationFailed; + + // Handle reset requests for clearing the backstack + RootFrame.Navigated += CheckForResetNavigation; + + // Ensure we don't initialize again + phoneApplicationInitialized = true; + } + + // Do not add any additional code to this method + private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) + { + // Set the root visual to allow the application to render + if (RootVisual != RootFrame) + RootVisual = RootFrame; + + // Remove this handler since it is no longer needed + RootFrame.Navigated -= CompleteInitializePhoneApplication; + } + + private void CheckForResetNavigation(object sender, NavigationEventArgs e) + { + // If the app has received a 'reset' navigation, then we need to check + // on the next navigation to see if the page stack should be reset + if (e.NavigationMode == NavigationMode.Reset) + RootFrame.Navigated += ClearBackStackAfterReset; + } + + private void ClearBackStackAfterReset(object sender, NavigationEventArgs e) + { + // Unregister the event so it doesn't get called again + RootFrame.Navigated -= ClearBackStackAfterReset; + + // Only clear the stack for 'new' (forward) and 'refresh' navigations + if (e.NavigationMode != NavigationMode.New && e.NavigationMode != NavigationMode.Refresh) + return; + + // For UI consistency, clear the entire page stack + while (RootFrame.RemoveBackEntry() != null) + { + ; // do nothing + } + } + + #endregion + + // Initialize the app's font and flow direction as defined in its localized resource strings. + // + // To ensure that the font of your application is aligned with its supported languages and that the + // FlowDirection for each of those languages follows its traditional direction, ResourceLanguage + // and ResourceFlowDirection should be initialized in each resx file to match these values with that + // file's culture. For example: + // + // AppResources.es-ES.resx + // ResourceLanguage's value should be "es-ES" + // ResourceFlowDirection's value should be "LeftToRight" + // + // AppResources.ar-SA.resx + // ResourceLanguage's value should be "ar-SA" + // ResourceFlowDirection's value should be "RightToLeft" + // + // For more info on localizing Windows Phone apps see http://go.microsoft.com/fwlink/?LinkId=262072. + // + private void InitializeLanguage() + { + try + { + // Set the font to match the display language defined by the + // ResourceLanguage resource string for each supported language. + // + // Fall back to the font of the neutral language if the Display + // language of the phone is not supported. + // + // If a compiler error is hit then ResourceLanguage is missing from + // the resource file. + RootFrame.Language = XmlLanguage.GetLanguage(AppResources.ResourceLanguage); + + // Set the FlowDirection of all elements under the root frame based + // on the ResourceFlowDirection resource string for each + // supported language. + // + // If a compiler error is hit then ResourceFlowDirection is missing from + // the resource file. + FlowDirection flow = (FlowDirection)Enum.Parse(typeof(FlowDirection), AppResources.ResourceFlowDirection); + RootFrame.FlowDirection = flow; + } + catch + { + // If an exception is caught here it is most likely due to either + // ResourceLangauge not being correctly set to a supported language + // code or ResourceFlowDirection is set to a value other than LeftToRight + // or RightToLeft. + + if (Debugger.IsAttached) + { + Debugger.Break(); + } + + throw; + } + } + } +} \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Assets/AlignmentGrid.png b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/AlignmentGrid.png new file mode 100644 index 00000000..f7d2e978 Binary files /dev/null and b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/AlignmentGrid.png differ diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Assets/ApplicationIcon.png b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/ApplicationIcon.png new file mode 100644 index 00000000..7d95d4e0 Binary files /dev/null and b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/ApplicationIcon.png differ diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileLarge.png b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileLarge.png new file mode 100644 index 00000000..e0c59ac0 Binary files /dev/null and b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileLarge.png differ diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileMedium.png b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileMedium.png new file mode 100644 index 00000000..e93b89d6 Binary files /dev/null and b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileMedium.png differ diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileSmall.png b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileSmall.png new file mode 100644 index 00000000..550b1b5e Binary files /dev/null and b/test/Renci.SshNet.WindowsPhone8.Tests/Assets/Tiles/FlipCycleTileSmall.png differ diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/LocalizedStrings.cs b/test/Renci.SshNet.WindowsPhone8.Tests/LocalizedStrings.cs new file mode 100644 index 00000000..91050cf4 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/LocalizedStrings.cs @@ -0,0 +1,14 @@ +using Renci.SshNet.Tests.Resources; + +namespace Renci.SshNet.Tests +{ + /// + /// Provides access to string resources. + /// + public class LocalizedStrings + { + private static AppResources _localizedResources = new AppResources(); + + public AppResources LocalizedResources { get { return _localizedResources; } } + } +} \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/MainPage.xaml b/test/Renci.SshNet.WindowsPhone8.Tests/MainPage.xaml new file mode 100644 index 00000000..4da3c91e --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/MainPage.xaml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/MainPage.xaml.cs b/test/Renci.SshNet.WindowsPhone8.Tests/MainPage.xaml.cs new file mode 100644 index 00000000..ce08790e --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/MainPage.xaml.cs @@ -0,0 +1,21 @@ +using System.Threading; +using Microsoft.Phone.Controls; +using Microsoft.VisualStudio.TestPlatform.Core; +using Microsoft.VisualStudio.TestPlatform.TestExecutor; +using vstest_executionengine_platformbridge; + +namespace Renci.SshNet.Tests +{ + public partial class MainPage : PhoneApplicationPage + { + // Constructor + public MainPage() + { + InitializeComponent(); + + var wrapper = new TestExecutorServiceWrapper(); + new Thread(new ServiceMain((param0, param1) => wrapper.SendMessage((ContractName)param0, param1)).Run).Start(); + + } + } +} \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Properties/AppManifest.xml b/test/Renci.SshNet.WindowsPhone8.Tests/Properties/AppManifest.xml new file mode 100644 index 00000000..6712a117 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/Properties/AppManifest.xml @@ -0,0 +1,6 @@ + + + + diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Properties/AssemblyInfo.cs b/test/Renci.SshNet.WindowsPhone8.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c9bbc102 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,37 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Renci.SshNet.WindowsPhone8.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Renci.SshNet.WindowsPhone8.Tests")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("911d635c-6e0e-46e8-9e8b-99bfb1790991")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: NeutralResourcesLanguageAttribute("en-US")] diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Properties/WMAppManifest.xml b/test/Renci.SshNet.WindowsPhone8.Tests/Properties/WMAppManifest.xml new file mode 100644 index 00000000..1590bfd8 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/Properties/WMAppManifest.xml @@ -0,0 +1,46 @@ + + + + + + Assets\ApplicationIcon.png + + + + + + + + + + + + + + Assets\Tiles\FlipCycleTileSmall.png + 0 + Assets\Tiles\FlipCycleTileMedium.png + Renci.SshNet.WindowsPhone8.Tests + + + + + + + + + + + vstest_executionengine_platformbridge.dll + + + + + + + + + + + + \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Renci.SshNet.WindowsPhone8.Tests.csproj b/test/Renci.SshNet.WindowsPhone8.Tests/Renci.SshNet.WindowsPhone8.Tests.csproj new file mode 100644 index 00000000..defcfa14 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/Renci.SshNet.WindowsPhone8.Tests.csproj @@ -0,0 +1,149 @@ + + + + Debug + x86 + 10.0.20506 + 2.0 + {26F0D644-B3EF-47DF-8040-E9E4B2E63884} + {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + Renci.SshNet.Tests + Renci.SshNet.Tests + WindowsPhone + v8.0 + $(TargetFrameworkVersion) + true + true + + + true + true + Renci.SshNet.WindowsPhone8.Tests_$(Configuration)_$(Platform).xap + Properties\AppManifest.xml + Renci.SshNet.WindowsPhone8.Tests.App + false + 11.0 + true + + + true + full + false + Bin\x86\Debug + DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE + true + true + prompt + 4 + + + pdbonly + true + Bin\x86\Release + TRACE;SILVERLIGHT;WINDOWS_PHONE + true + true + prompt + 4 + + + true + full + false + Bin\ARM\Debug + DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE + true + true + prompt + 4 + + + pdbonly + true + Bin\ARM\Release + TRACE;SILVERLIGHT;WINDOWS_PHONE + true + true + prompt + 4 + + + + App.xaml + + + + + MainPage.xaml + + + + True + True + AppResources.resx + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + Designer + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + PublicResXFileCodeGenerator + AppResources.Designer.cs + + + + + + + + {4a6ca785-1c8a-47fe-98c0-30c675a9328b} + Renci.SshNet.WindowsPhone8 + + + + + + + + \ No newline at end of file diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Resources/AppResources.Designer.cs b/test/Renci.SshNet.WindowsPhone8.Tests/Resources/AppResources.Designer.cs new file mode 100644 index 00000000..d4a8eaf7 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/Resources/AppResources.Designer.cs @@ -0,0 +1,108 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Renci.SshNet.Tests.Resources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class AppResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal AppResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Renci.SshNet.Tests.Resources.AppResources", typeof(AppResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to add. + /// + public static string AppBarButtonText { + get { + return ResourceManager.GetString("AppBarButtonText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Menu Item. + /// + public static string AppBarMenuItemText { + get { + return ResourceManager.GetString("AppBarMenuItemText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MY APPLICATION. + /// + public static string ApplicationTitle { + get { + return ResourceManager.GetString("ApplicationTitle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LeftToRight. + /// + public static string ResourceFlowDirection { + get { + return ResourceManager.GetString("ResourceFlowDirection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to en-US. + /// + public static string ResourceLanguage { + get { + return ResourceManager.GetString("ResourceLanguage", resourceCulture); + } + } + } +} diff --git a/test/Renci.SshNet.WindowsPhone8.Tests/Resources/AppResources.resx b/test/Renci.SshNet.WindowsPhone8.Tests/Resources/AppResources.resx new file mode 100644 index 00000000..529a1943 --- /dev/null +++ b/test/Renci.SshNet.WindowsPhone8.Tests/Resources/AppResources.resx @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + LeftToRight + Controls the FlowDirection for all elements in the RootFrame. Set to the traditional direction of this resource file's language + + + en-US + Controls the Language and ensures that the font for all elements in the RootFrame aligns with the app's language. Set to the language code of this resource file's language. + + + MY APPLICATION + + + add + + + Menu Item + + \ No newline at end of file