public void GetSSHKeyReturnsPublicKeyIfItExists(bool ensurePublicKey) { // Arrange string sshPath = @"x:\path\.ssh"; string publicKey = "this-is-my-public-key"; var fileBase = new Mock <FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(sshPath + "\\id_rsa.pub")) .Returns(true); fileBase.Setup(s => s.ReadAllText(sshPath + "\\id_rsa.pub")) .Returns(publicKey); var fileSystem = new Mock <IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); FileSystemHelpers.Instance = fileSystem.Object; var environment = new Mock <IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, traceFactory: null, deploymentSettingManager: Mock.Of <IDeploymentSettingsManager>()); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey); // Assert Assert.Equal(publicKey, actual); }
public void GetSSHKeyNoOpsIfPublicKeyPairIsNotFoundAndEnsurePublicKeyIsNotSet() { // Arrange string sshPath = @"x:\path\.ssh"; var fileBase = new Mock <FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(It.IsAny <string>())) .Returns(false); var fileSystem = new Mock <IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); FileSystemHelpers.Instance = fileSystem.Object; var environment = new Mock <IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, traceFactory: null, deploymentSettingManager: Mock.Of <IDeploymentSettingsManager>()); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey: false); // Assert fileBase.Verify(); Assert.Null(actual); }
public void GetSSHKeyCreatesKeyIfPublicAndPrivateKeyDoesNotAlreadyExistAndEnsurePublicKeyIsSet() { // Arrange string sshPath = @"x:\path\.ssh"; string keyOnDisk = null; var fileBase = new Mock <FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(It.IsAny <string>())) .Returns(false); fileBase.Setup(s => s.WriteAllText(sshPath + "\\id_rsa.pub", It.IsAny <string>())) .Callback((string name, string value) => { keyOnDisk = value; }) .Verifiable(); fileBase.Setup(s => s.WriteAllText(sshPath + "\\id_rsa", It.IsAny <string>())) .Verifiable(); fileBase.Setup(s => s.WriteAllText(sshPath + @"\config", "HOST *\r\n StrictHostKeyChecking no")) .Verifiable(); var fileSystem = new Mock <IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); FileSystemHelpers.Instance = fileSystem.Object; var environment = new Mock <IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, traceFactory: null, deploymentSettingManager: Mock.Of <IDeploymentSettingsManager>()); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey: true); // Assert fileBase.Verify(); Assert.Equal(keyOnDisk, actual); }
public void GetSSHKeyReturnsExistingKeyIfPresentOnDisk(bool ensurePublicKey) { // Arrange string sshPath = @"x:\path\.ssh"; string expected = "my-public-key"; var fileBase = new Mock <FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(sshPath + "\\id_rsa.pub")).Returns(true); fileBase.Setup(s => s.ReadAllText(sshPath + "\\id_rsa.pub")).Returns(expected); var fileSystem = new Mock <IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); FileSystemHelpers.Instance = fileSystem.Object; var environment = new Mock <IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, traceFactory: null); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey); // Assert Assert.Equal(expected, actual); }
public void GetSSHKeyReturnsPublicKeyIfItExists(bool ensurePublicKey) { // Arrange string sshPath = @"x:\path\.ssh"; string publicKey = "this-is-my-public-key"; var fileBase = new Mock<FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(sshPath + "\\id_rsa.pub")) .Returns(true); fileBase.Setup(s => s.ReadAllText(sshPath + "\\id_rsa.pub")) .Returns(publicKey); var fileSystem = new Mock<IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); var environment = new Mock<IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, fileSystem.Object, traceFactory: null); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey); // Assert Assert.Equal(publicKey, actual); }
public void GetSSHKeyCreatesKeyIfPublicAndPrivateKeyDoesNotAlreadyExistAndEnsurePublicKeyIsSet() { // Arrange string sshPath = @"x:\path\.ssh"; string keyOnDisk = null; var fileBase = new Mock<FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(It.IsAny<string>())) .Returns(false); fileBase.Setup(s => s.WriteAllText(sshPath + "\\id_rsa.pub", It.IsAny<string>())) .Callback((string name, string value) => { keyOnDisk = value; }) .Verifiable(); fileBase.Setup(s => s.WriteAllText(sshPath + "\\id_rsa", It.IsAny<string>())) .Verifiable(); fileBase.Setup(s => s.WriteAllText(sshPath + @"\config", "HOST *\r\n StrictHostKeyChecking no")) .Verifiable(); var fileSystem = new Mock<IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); var environment = new Mock<IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, fileSystem.Object, traceFactory: null); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey: true); // Assert fileBase.Verify(); Assert.Equal(keyOnDisk, actual); }
public void GetSSHKeyNoOpsIfPublicKeyPairIsNotFoundAndEnsurePublicKeyIsNotSet() { // Arrange string sshPath = @"x:\path\.ssh"; var fileBase = new Mock<FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(It.IsAny<string>())) .Returns(false); var fileSystem = new Mock<IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); var environment = new Mock<IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, fileSystem.Object, traceFactory: null); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey: false); // Assert fileBase.Verify(); Assert.Null(actual); }
public void GetSSHKeyReturnsExistingKeyIfPresentOnDisk(bool ensurePublicKey) { // Arrange string sshPath = @"x:\path\.ssh"; string expected = "my-public-key"; var fileBase = new Mock<FileBase>(MockBehavior.Strict); fileBase.Setup(s => s.Exists(sshPath + "\\id_rsa.pub")).Returns(true); fileBase.Setup(s => s.ReadAllText(sshPath + "\\id_rsa.pub")).Returns(expected); var fileSystem = new Mock<IFileSystem>(MockBehavior.Strict); fileSystem.SetupGet(f => f.File).Returns(fileBase.Object); FileSystemHelpers.Instance = fileSystem.Object; var environment = new Mock<IEnvironment>(); environment.SetupGet(e => e.SSHKeyPath).Returns(sshPath); var sshKeyManager = new SSHKeyManager(environment.Object, traceFactory: null); // Act var actual = sshKeyManager.GetPublicKey(ensurePublicKey); // Assert Assert.Equal(expected, actual); }