11package de .aaschmid .taskwarrior ;
22
3- import java .net . URL ;
3+ import java .util . stream . Stream ;
44
55import de .aaschmid .taskwarrior .client .TaskwarriorClient ;
66import de .aaschmid .taskwarrior .config .TaskwarriorConfiguration ;
77import de .aaschmid .taskwarrior .message .TaskwarriorMessage ;
88import de .aaschmid .taskwarrior .message .TaskwarriorRequestHeader ;
99import de .aaschmid .taskwarrior .test .IntegrationTest ;
1010import org .junit .jupiter .api .Test ;
11+ import org .junit .jupiter .params .ParameterizedTest ;
12+ import org .junit .jupiter .params .provider .Arguments ;
13+ import org .junit .jupiter .params .provider .MethodSource ;
1114
12- import static de .aaschmid .taskwarrior .config .TaskwarriorConfiguration .taskwarriorPropertiesConfiguration ;
1315import static de .aaschmid .taskwarrior .message .TaskwarriorMessage .taskwarriorMessage ;
1416import static de .aaschmid .taskwarrior .message .TaskwarriorRequestHeader .taskwarriorRequestHeaderBuilder ;
17+ import static java .lang .String .format ;
1518import static org .assertj .core .api .Assertions .assertThat ;
1619import static org .assertj .core .api .Assertions .entry ;
1720
1821@ IntegrationTest
1922class TaskwarriorClientIntegrationTest {
2023
21- private static final URL PROPERTIES_TASKWARRIOR =
22- TaskwarriorClientIntegrationTest .class .getResource ("/integTest.taskwarrior.properties" );
23- private static final TaskwarriorConfiguration CONFIG = taskwarriorPropertiesConfiguration (PROPERTIES_TASKWARRIOR );
24-
2524 private static final String SYNC_KEY = "f92d5c8d-4cf9-4cf5-b72f-1f4a70cf9b20" ;
2625
27- private final TaskwarriorClient client = new TaskwarriorClient (CONFIG );
26+ static Stream <Arguments > configs () {
27+ return Stream .of ("pkcs8-der" )
28+ // return Stream.of("pkcs1", "pkcs8", "pkcs8-der") // TODO use to test all key type to be supported
29+ .map (keyType -> format ("/taskwarrior.%s.properties" , keyType ))
30+ .map (TaskwarriorClientIntegrationTest .class ::getResource )
31+ .map (TaskwarriorConfiguration ::taskwarriorPropertiesConfiguration )
32+ .map (Arguments ::of );
33+ }
2834
29- @ Test
30- void statistics () {
35+ @ ParameterizedTest
36+ @ MethodSource ("configs" )
37+ void statistics (TaskwarriorConfiguration config ) {
3138 TaskwarriorRequestHeader header = taskwarriorRequestHeaderBuilder ()
32- .authentication (CONFIG )
39+ .authentication (config )
3340 .type (TaskwarriorRequestHeader .MessageType .STATISTICS )
3441 .build ();
3542 TaskwarriorMessage message = taskwarriorMessage (header .toMap ());
3643
37- TaskwarriorMessage response = client .sendAndReceive (message );
44+ TaskwarriorMessage response = clientFor ( config ) .sendAndReceive (message );
3845
3946 assertThat (response .getHeaders ())
4047 .contains (entry ("code" , "200" ))
@@ -45,15 +52,16 @@ void statistics() {
4552 assertThat (response .getPayload ()).isNotPresent ();
4653 }
4754
48- @ Test
49- void syncWithoutSyncKey () {
55+ @ ParameterizedTest
56+ @ MethodSource ("configs" )
57+ void syncWithoutSyncKey (TaskwarriorConfiguration config ) {
5058 TaskwarriorRequestHeader header = taskwarriorRequestHeaderBuilder ()
51- .authentication (CONFIG )
59+ .authentication (config )
5260 .type (TaskwarriorRequestHeader .MessageType .SYNC )
5361 .build ();
5462 TaskwarriorMessage message = taskwarriorMessage (header .toMap ());
5563
56- TaskwarriorMessage response = client .sendAndReceive (message );
64+ TaskwarriorMessage response = clientFor ( config ) .sendAndReceive (message );
5765
5866 assertThat (response .getHeaders ())
5967 .contains (entry ("code" , "200" ))
@@ -63,19 +71,24 @@ void syncWithoutSyncKey() {
6371 .endsWith (SYNC_KEY ));
6472 }
6573
66- @ Test
67- void syncWithSyncKey () {
74+ @ ParameterizedTest
75+ @ MethodSource ("configs" )
76+ void syncWithSyncKey (TaskwarriorConfiguration config ) {
6877 TaskwarriorRequestHeader header = taskwarriorRequestHeaderBuilder ()
69- .authentication (CONFIG )
78+ .authentication (config )
7079 .type (TaskwarriorRequestHeader .MessageType .SYNC )
7180 .build ();
7281 TaskwarriorMessage message = taskwarriorMessage (header .toMap (), SYNC_KEY );
7382
74- TaskwarriorMessage response = client .sendAndReceive (message );
83+ TaskwarriorMessage response = clientFor ( config ) .sendAndReceive (message );
7584
7685 assertThat (response .getHeaders ())
7786 .contains (entry ("code" , "201" ))
7887 .contains (entry ("status" , "No change" ));
7988 assertThat (response .getPayload ()).hasValue (SYNC_KEY );
8089 }
90+
91+ private TaskwarriorClient clientFor (TaskwarriorConfiguration config ) {
92+ return new TaskwarriorClient (config );
93+ }
8194}
0 commit comments