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