public void GetSSHKeyCreatesKeyIfForceCreateIsSet() { // Arrange string sshPath = @"x:\path\.ssh"; string keyOnDisk = null; var fileBase = new Mock<FileBase>(MockBehavior.Strict); 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.GetOrCreateKey(forceCreate: true); // Assert fileBase.Verify(); Assert.Equal(keyOnDisk, actual); }
public void GetSSHKeyReturnsExistingKeyIfPresentOnDisk() { // 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); 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.GetOrCreateKey(forceCreate: false); // Assert Assert.Equal(expected, actual); }