public void Test1() { //generic user@host var sut = new DefaultSshUrlParser(new Dto.ParserConfig()); var str = "key=value%40whatever%[email protected]:33"; var dictionary = sut.Parse(str); Assert.Equal("ssh", dictionary[Token.Protocol]); Assert.Equal(str, dictionary[Token.OriginalUrl]); Assert.Equal(str, dictionary[Token.RelativeUrl]); Assert.Equal("key=value@[email protected]", dictionary[Token.User]); Assert.Equal("1.2.3.4", dictionary[Token.Host]); Assert.Equal("33", dictionary[Token.Port]); //ssh://user@host sut = new DefaultSshUrlParser(new Dto.ParserConfig()); str = "key=value%40whatever%[email protected]:33"; dictionary = sut.Parse($"ssh://{str}"); Assert.Equal("ssh", dictionary[Token.Protocol]); Assert.Equal($"ssh://{str}", dictionary[Token.OriginalUrl]); Assert.Equal(str, dictionary[Token.RelativeUrl]); Assert.Equal("key=value@[email protected]", dictionary[Token.User]); Assert.Equal("1.2.3.4", dictionary[Token.Host]); Assert.Equal("33", dictionary[Token.Port]); str = "ssh://root%4010.1.1.1"; dictionary = sut.Parse(str); }
public void Test1() { var sut = new DefaultSshUrlParser(new Dto.ParserConfig()); var result = sut.Parse("key=value%40whatever%[email protected]:33"); Assert.Equal("key=value@[email protected]", result["user"]); Assert.Equal("1.2.3.4", result["host"]); Assert.Equal("33", result["port"]); }
public void Test3() { var str = "abc"; var sut = new DefaultSshUrlParser(new Dto.ParserConfig()); var dictionary = sut.Parse(str); Assert.Equal("abc", dictionary[Token.OriginalUrl]); Assert.Equal("abc", dictionary[Token.RelativeUrl]); Assert.Equal("ssh", dictionary[Token.Protocol]); }
public void Test1() { var parser = new DefaultSshUrlParser(new Dto.ParserConfig(), SetupData()); var args = new List <string>() { $"%{Token.Protocol}%", $"%{Token.User}%", $"%{Token.Host}%", $"%{Token.Port}%", $"%{Token.Path}%", $"%{Token.Query}%", $"%{Token.Fragment}%", $"%{Token.Vault}%", $"%{Token.Token}%", $"%{Token.TargetUser}%", $"%{Token.TargetHost}%", $"%{Token.TargetPort}%", $"%{Token.OriginalUrl}%", $"%{Token.RelativeUrl}%", $"%{Token.GeneratedFile}%", $"%{Token.TempPath}%", $"%{Token.Home}%", $"%{Token.AppData}%" }; var newargs = parser.ReplaceTokens(args); var one = newargs.GetEnumerator(); Assert.True(one.MoveNext()); Assert.Equal(prot, one.Current); Assert.True(one.MoveNext()); Assert.Equal(fulluser, one.Current); Assert.True(one.MoveNext()); Assert.Equal(host, one.Current); Assert.True(one.MoveNext()); Assert.Equal(port, one.Current); Assert.True(one.MoveNext()); Assert.Equal(path, one.Current); Assert.True(one.MoveNext()); Assert.Equal(query, one.Current); Assert.True(one.MoveNext()); Assert.Equal(fragment, one.Current); Assert.True(one.MoveNext()); Assert.Equal(vault, one.Current); Assert.True(one.MoveNext()); Assert.Equal(token, one.Current); Assert.True(one.MoveNext()); Assert.Equal(targetuser, one.Current); Assert.True(one.MoveNext()); Assert.Equal(targethost, one.Current); Assert.True(one.MoveNext()); Assert.Equal(targetport, one.Current); Assert.True(one.MoveNext()); Assert.Equal(url, one.Current); Assert.True(one.MoveNext()); Assert.Equal($"{fulluser}@{host}", one.Current); Assert.True(one.MoveNext()); Assert.Equal(filename, one.Current); Assert.True(one.MoveNext()); Assert.Equal(Path.GetTempPath(), one.Current); Assert.True(one.MoveNext()); Assert.Equal("homedir", one.Current); Assert.True(one.MoveNext()); Assert.Equal("appdata/scalus", one.Current); Assert.False(one.MoveNext()); args = new List <string> { "%protocol", "user", "host%", "%host%%", "%host%hide" }; newargs = parser.ReplaceTokens(args); one = newargs.GetEnumerator(); Assert.True(one.MoveNext()); Assert.Equal("%protocol", one.Current); Assert.True(one.MoveNext()); Assert.Equal("user", one.Current); Assert.True(one.MoveNext()); Assert.Equal("host%", one.Current); Assert.True(one.MoveNext()); Assert.Equal("thisismyhost%", one.Current); Assert.True(one.MoveNext()); Assert.Equal("thisismyhosthide", one.Current); Assert.False(one.MoveNext()); }
public void Test2() { //ssh://safeguarduserstring@host var sut = new DefaultSshUrlParser(new Dto.ParserConfig()); //vaultaddress=(.*)@token=(.*)@(.*)@(.*)@(.*) var prot = "ssh"; var vault = "10.5.33.84"; var token = "47EuUuRU7Rp5cSWVb61GFWNQhvHrHC1RwT8PtocfNeT1LshtjzChDWYsEbY9LC5wX8MhT5rZXSsCK7iyfs2x6"; var user = "******"; var target = "10.4.34.42"; var port = "222"; var sps = "10.5.33.88"; var str = $"vaultaddress={vault}@token={token}@{user}@{target}@{sps}:{port}"; var uri = $"{prot}://{str}"; var dictionary = sut.Parse(uri); Assert.Equal(prot, dictionary[Token.Protocol]); Assert.Equal(uri, dictionary[Token.OriginalUrl]); Assert.Equal(str, dictionary[Token.RelativeUrl]); Assert.Equal(vault, dictionary[Token.Vault]); Assert.Equal(token, dictionary[Token.Token]); Assert.Equal(user, dictionary[Token.TargetUser]); Assert.Equal(target, dictionary[Token.TargetHost]); Assert.Equal(port, dictionary[Token.Port]); Assert.Equal(sps, dictionary[Token.Host]); Assert.Equal($"vaultaddress={vault}@token={token}@{user}@{target}", dictionary[Token.User]); str = "scp://a@b:2"; dictionary = sut.Parse(str); Assert.Equal("scp", dictionary[Token.Protocol]); Assert.Equal("a", dictionary[Token.User]); Assert.Equal("b", dictionary[Token.Host]); Assert.Equal("2", dictionary[Token.Port]); //optional port number str = $"{prot}://vaultaddress={vault}@token={token}@{user}@{target}@{sps}"; dictionary = sut.Parse(str); Assert.Equal("22", dictionary[Token.Port]); Assert.Equal(sps, dictionary[Token.Host]); //encoded user str = $"{prot}://vaultaddress={vault}%40token={token}%40{user}%40{target}@{sps}:{port}"; dictionary = sut.Parse(str); Assert.Equal(str, dictionary[Token.OriginalUrl]); Assert.Equal(vault, dictionary[Token.Vault]); Assert.Equal(token, dictionary[Token.Token]); Assert.Equal(user, dictionary[Token.TargetUser]); Assert.Equal(target, dictionary[Token.TargetHost]); Assert.Equal(port, dictionary[Token.Port]); Assert.Equal(sps, dictionary[Token.Host]); Assert.Equal($"vaultaddress={vault}@token={token}@{user}@{target}", dictionary[Token.User]); //encoded user str = $"{prot}://vaultaddress={vault}%40token={token}%40{user}%40{target}%40{sps}%3a{port}"; dictionary = sut.Parse(str); Assert.Equal(str, dictionary[Token.OriginalUrl]); Assert.Equal(vault, dictionary[Token.Vault]); Assert.Equal(token, dictionary[Token.Token]); Assert.Equal(user, dictionary[Token.TargetUser]); Assert.Equal(target, dictionary[Token.TargetHost]); Assert.Equal(port, dictionary[Token.Port]); Assert.Equal(sps, dictionary[Token.Host]); Assert.Equal($"vaultaddress={vault}@token={token}@{user}@{target}", dictionary[Token.User]); var userstr = "vaultaddress%3D10.5.33.84%40token%3D4AenuEc5PcyGUhB5Y68L7qzysoCbvDDATuuKpM7JQvVPCo3S18zGUPZziC9cQa3kgjLfUvD3ND8RFAxpAk2Yq%40mim1%4010.5.34.42"; str = $"ssh://{userstr}%4010.5.33.88"; dictionary = sut.Parse(str); Assert.Equal("10.5.33.84", dictionary[Token.Vault]); Assert.Equal("4AenuEc5PcyGUhB5Y68L7qzysoCbvDDATuuKpM7JQvVPCo3S18zGUPZziC9cQa3kgjLfUvD3ND8RFAxpAk2Yq", dictionary[Token.Token]); Assert.Equal("mim1", dictionary[Token.TargetUser]); Assert.Equal("10.5.34.42", dictionary[Token.TargetHost]); Assert.Equal("10.5.33.88", dictionary[Token.Host]); Assert.Equal(HttpUtility.UrlDecode(userstr), dictionary[Token.User]); }