|
1 | 1 | package io.kurrent.dbclient.misc; |
2 | 2 |
|
3 | 3 | import java.net.InetSocketAddress; |
| 4 | +import java.util.List; |
4 | 5 | import java.util.stream.IntStream; |
5 | 6 | import java.util.stream.Stream; |
6 | 7 |
|
|
16 | 17 | public class ParseValidConnectionStringTests { |
17 | 18 | private final JsonMapper mapper = new JsonMapper(); |
18 | 19 |
|
| 20 | + private static final List<String> PROTOCOLS = List.of("esdb", "kurrent", "kdb"); |
19 | 21 |
|
20 | 22 | public static Stream<Arguments> validConnectionStrings() { |
21 | | - return Stream.of( |
| 23 | + List<Arguments> baseConnectionStrings = List.of( |
22 | 24 | Arguments.of( |
23 | | - "esdb://localhost", |
| 25 | + "://localhost", |
24 | 26 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"localhost\",\"port\":2113}]}" |
25 | 27 | ), |
26 | 28 | Arguments.of( |
27 | | - "esdb://localhost:2114", |
| 29 | + "://localhost:2114", |
28 | 30 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"localhost\",\"port\":2114}]}" |
29 | 31 | ), |
30 | 32 | Arguments.of( |
31 | | - "esdb://user:pass@localhost:2114", |
| 33 | + "://user:pass@localhost:2114", |
32 | 34 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"localhost\",\"port\":2114}]}" |
33 | 35 | ), |
34 | 36 | Arguments.of( |
35 | | - "esdb://user:pass@localhost:2114/", |
| 37 | + "://user:pass@localhost:2114/", |
36 | 38 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"localhost\",\"port\":2114}]}" |
37 | 39 | ), |
38 | 40 | Arguments.of( |
39 | | - "esdb://user:pass@localhost:2114/?tlsVerifyCert=false", |
| 41 | + "://user:pass@localhost:2114/?tlsVerifyCert=false", |
40 | 42 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"localhost\",\"port\":2114}]}" |
41 | 43 | ), |
42 | 44 | Arguments.of( |
43 | | - "esdb://user:pass@localhost:2114?tlsVerifyCert=false", |
| 45 | + "://user:pass@localhost:2114?tlsVerifyCert=false", |
44 | 46 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"localhost\",\"port\":2114}]}" |
45 | 47 | ), |
46 | 48 | Arguments.of( |
47 | | - "esdb://user:pass@localhost:2114?tls=false", |
| 49 | + "://user:pass@localhost:2114?tls=false", |
48 | 50 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":false,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"localhost\",\"port\":2114}]}" |
49 | 51 | ), |
50 | 52 | Arguments.of( |
51 | | - "esdb://host1,host2,host3", |
| 53 | + "://host1,host2,host3", |
52 | 54 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"host1\",\"port\":2113},{\"address\":\"host2\",\"port\":2113},{\"address\":\"host3\",\"port\":2113}]}" |
53 | 55 | ), |
54 | 56 | Arguments.of( |
55 | | - "esdb://host1:1234,host2:4321,host3:3231", |
| 57 | + "://host1:1234,host2:4321,host3:3231", |
56 | 58 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"host1\",\"port\":1234},{\"address\":\"host2\",\"port\":4321},{\"address\":\"host3\",\"port\":3231}]}" |
57 | 59 | ), |
58 | 60 | Arguments.of( |
59 | | - "esdb://bubaqp2rh41uf5akmj0g-0.mesdb.eventstore.cloud:2113,bubaqp2rh41uf5akmj0g-1.mesdb.eventstore.cloud:2113,bubaqp2rh41uf5akmj0g-2.mesdb.eventstore.cloud:2113", |
| 61 | + "://bubaqp2rh41uf5akmj0g-0.mesdb.eventstore.cloud:2113,bubaqp2rh41uf5akmj0g-1.mesdb.eventstore.cloud:2113,bubaqp2rh41uf5akmj0g-2.mesdb.eventstore.cloud:2113", |
60 | 62 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"bubaqp2rh41uf5akmj0g-0.mesdb.eventstore.cloud\",\"port\":2113},{\"address\":\"bubaqp2rh41uf5akmj0g-1.mesdb.eventstore.cloud\",\"port\":2113},{\"address\":\"bubaqp2rh41uf5akmj0g-2.mesdb.eventstore.cloud\",\"port\":2113}]}" |
61 | 63 | ), |
62 | 64 | Arguments.of( |
63 | | - "esdb://user:pass@host1:1234,host2:4321,host3:3231?nodePreference=follower", |
| 65 | + "://user:pass@host1:1234,host2:4321,host3:3231?nodePreference=follower", |
64 | 66 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"follower\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"host1\",\"port\":1234},{\"address\":\"host2\",\"port\":4321},{\"address\":\"host3\",\"port\":3231}]}" |
65 | 67 | ), |
66 | 68 | Arguments.of( |
67 | | - "esdb://host1,host2,host3?tls=false", |
| 69 | + "://host1,host2,host3?tls=false", |
68 | 70 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":false,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"host1\",\"port\":2113},{\"address\":\"host2\",\"port\":2113},{\"address\":\"host3\",\"port\":2113}]}" |
69 | 71 | ), |
70 | 72 | Arguments.of( |
71 | | - "esdb://127.0.0.1:21573?tls=false", |
| 73 | + "://127.0.0.1:21573?tls=false", |
72 | 74 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":false,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"127.0.0.1\",\"port\":21573}]}" |
73 | 75 | ), |
74 | 76 | Arguments.of( |
75 | | - "esdb://host1,host2,host3?tlsVerifyCert=false", |
| 77 | + "://host1,host2,host3?tlsVerifyCert=false", |
76 | 78 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"host1\",\"port\":2113},{\"address\":\"host2\",\"port\":2113},{\"address\":\"host3\",\"port\":2113}]}" |
77 | 79 | ), |
78 | 80 | Arguments.of( |
79 | | - "esdb+discover://user:pass@host?nodePreference=follower&tlsVerifyCert=false", |
| 81 | + "+discover://user:pass@host?nodePreference=follower&tlsVerifyCert=false", |
80 | 82 | "{\"dnsDiscover\":true,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"follower\",\"tls\":true,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"user\",\"password\":\"pass\"},\"hosts\":[{\"address\":\"host\",\"port\":2113}]}" |
81 | 83 | ), |
82 | 84 | Arguments.of( |
83 | | - "esdb://my%3Agreat%40username:UyeXx8%24%5EPsOo4jG88FlCauR1Coz25q@host?nodePreference=follower&tlsVerifyCert=false", |
| 85 | + "://my%3Agreat%40username:UyeXx8%24%5EPsOo4jG88FlCauR1Coz25q@host?nodePreference=follower&tlsVerifyCert=false", |
84 | 86 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"follower\",\"tls\":true,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":true,\"defaultCredentials\":{\"login\":\"my:great@username\",\"password\":\"UyeXx8$^PsOo4jG88FlCauR1Coz25q\"},\"hosts\":[{\"address\":\"host\",\"port\":2113}]}" |
85 | 87 | ), |
86 | 88 | Arguments.of( |
87 | | - "esdb://host?maxDiscoverAttempts=200&discoveryInterval=1000&gossipTimeout=1&nodePreference=leader&tls=false&tlsVerifyCert=false&throwOnAppendFailure=false", |
| 89 | + "://host?maxDiscoverAttempts=200&discoveryInterval=1000&gossipTimeout=1&nodePreference=leader&tls=false&tlsVerifyCert=false&throwOnAppendFailure=false", |
88 | 90 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":200,\"discoveryInterval\":1000,\"gossipTimeout\":1,\"nodePreference\":\"leader\",\"tls\":false,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":false,\"hosts\":[{\"address\":\"host\",\"port\":2113}]}" |
89 | 91 | ), |
90 | 92 | Arguments.of( |
91 | | - "esdb://host?MaxDiscoverAttempts=200&discoveryinterval=1000&GOSSIPTIMEOUT=1&nOdEpReFeReNcE=leader&TLS=false&TlsVerifyCert=false&THROWOnAppendFailure=false", |
| 93 | + "://host?MaxDiscoverAttempts=200&discoveryinterval=1000&GOSSIPTIMEOUT=1&nOdEpReFeReNcE=leader&TLS=false&TlsVerifyCert=false&THROWOnAppendFailure=false", |
92 | 94 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":200,\"discoveryInterval\":1000,\"gossipTimeout\":1,\"nodePreference\":\"leader\",\"tls\":false,\"tlsVerifyCert\":false,\"throwOnAppendFailure\":false,\"hosts\":[{\"address\":\"host\",\"port\":2113}]}" |
93 | 95 | ), |
94 | 96 | Arguments.of( |
95 | | - "esdb://localhost?keepAliveTimeout=20&keepAliveInterval=10", |
| 97 | + "://localhost?keepAliveTimeout=20&keepAliveInterval=10", |
96 | 98 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"localhost\",\"port\":2113}], \"keepAliveTimeout\": \"20\", \"keepAliveInterval\": \"10\"}" |
97 | 99 | ), |
98 | 100 | Arguments.of( |
99 | | - "esdb://localhost?keepAliveTimeout=20&keepAliveInterval=10&nodePreference=readOnlyReplica", |
| 101 | + "://localhost?keepAliveTimeout=20&keepAliveInterval=10&nodePreference=readOnlyReplica", |
100 | 102 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"readOnlyReplica\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"localhost\",\"port\":2113}], \"keepAliveTimeout\": \"20\", \"keepAliveInterval\": \"10\"}" |
101 | 103 | ), |
102 | 104 | Arguments.of( |
103 | | - "esdb://127.0.0.1:21573?defaultDeadline=60000", |
| 105 | + "://127.0.0.1:21573?defaultDeadline=60000", |
104 | 106 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"127.0.0.1\",\"port\":21573}], \"defaultDeadline\": 60000}" |
105 | 107 | ), |
106 | 108 | Arguments.of( |
107 | | - "esdb://127.0.0.1:21573?tlsCaFile=/path/to/cert", |
| 109 | + "://127.0.0.1:21573?tlsCaFile=/path/to/cert", |
108 | 110 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"127.0.0.1\",\"port\":21573}], \"tlsCaFile\": \"/path/to/cert\"}" |
109 | 111 | ), |
110 | 112 | Arguments.of( |
111 | | - "esdb://127.0.0.1:21573?userCertFile=/path/to/cert&userKeyFile=/path/to/key", |
| 113 | + "://127.0.0.1:21573?userCertFile=/path/to/cert&userKeyFile=/path/to/key", |
112 | 114 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"127.0.0.1\",\"port\":21573}], \"defaultClientCertificate\": {\"clientCertFile\": \"/path/to/cert\", \"clientKeyFile\": \"/path/to/key\"}}" |
113 | 115 | ), |
114 | 116 | Arguments.of( |
115 | | - "esdb://localhost?feature=foobar", |
| 117 | + "://localhost?feature=foobar", |
116 | 118 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"localhost\",\"port\":2113}], \"features\": \"foobar\"}" |
117 | 119 | ), |
118 | 120 | Arguments.of( |
119 | | - "esdb://localhost?feature=foobar&feature=baz", |
| 121 | + "://localhost?feature=foobar&feature=baz", |
120 | 122 | "{\"dnsDiscover\":false,\"maxDiscoverAttempts\":3,\"discoveryInterval\":500,\"gossipTimeout\":3000,\"nodePreference\":\"leader\",\"tls\":true,\"tlsVerifyCert\":true,\"throwOnAppendFailure\":true,\"hosts\":[{\"address\":\"localhost\",\"port\":2113}], \"features\": [\"foobar\", \"baz\"]}" |
121 | 123 | ) |
122 | 124 | ); |
| 125 | + |
| 126 | + return baseConnectionStrings.stream() |
| 127 | + .flatMap(base -> PROTOCOLS.stream() |
| 128 | + .map(protocol -> Arguments.of(protocol + base.get()[0], base.get()[1]))); |
123 | 129 | } |
124 | 130 |
|
125 | 131 | public void assertEquals(KurrentDBClientSettings settings, KurrentDBClientSettings other) { |
|
0 commit comments