1919
2020import org .junit .Test ;
2121import org .sourcelab .kafka .connect .apiclient .request .AbstractRequestTest ;
22+ import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorDefinition ;
23+ import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorStatus ;
2224import org .sourcelab .kafka .connect .apiclient .request .dto .ConnectorsWithExpandedMetadata ;
2325import org .sourcelab .kafka .connect .apiclient .request .get .GetConnectorsExpandAllDetails ;
2426
2527import java .io .IOException ;
28+ import java .util .List ;
2629
30+ import static org .junit .Assert .assertEquals ;
2731import static org .junit .Assert .assertNotNull ;
2832import static org .junit .Assert .assertTrue ;
2933
@@ -40,7 +44,136 @@ public void testParseResponse() throws IOException {
4044 // Validate
4145 assertNotNull ("Should not be null" , result );
4246
43- // TODO write test
44- assertTrue (false );
47+ // Validate High Level Checks
48+ assertNotNull ("Should not be null" , result );
49+ assertNotNull (result .getAllStatuses ());
50+ assertNotNull (result .getConnectorNames ());
51+ assertNotNull (result .getMappedStatuses ());
52+
53+ // High level count checks
54+ assertEquals (2 , result .getConnectorNames ().size ());
55+ assertEquals (2 , result .getAllStatuses ().size ());
56+ assertEquals (2 , result .getMappedStatuses ().size ());
57+
58+ // Validate 'MyTestConnector'
59+ assertTrue (result .getConnectorNames ().contains ("MyTestConnector" ));
60+ assertTrue (result .getMappedStatuses ().containsKey ("MyTestConnector" ));
61+ validateTestConnectorStatus (result .getStatusForConnector ("MyTestConnector" ));
62+ validateTestConnectorStatus (result .getMappedStatuses ().get ("MyTestConnector" ));
63+ assertTrue (result .getConnectorNames ().contains ("MyTestConnector" ));
64+ assertTrue (result .getMappedDefinitions ().containsKey ("MyTestConnector" ));
65+ validateTestConnectorDefinition (result .getDefinitionForConnector ("MyTestConnector" ));
66+ validateTestConnectorDefinition (result .getMappedDefinitions ().get ("MyTestConnector" ));
67+
68+ // Validate 'MyTestConnector2'
69+ assertTrue (result .getConnectorNames ().contains ("MyTestConnector2" ));
70+ assertTrue (result .getMappedStatuses ().containsKey ("MyTestConnector2" ));
71+ validateTestConnectorStatus2 (result .getStatusForConnector ("MyTestConnector2" ));
72+ validateTestConnectorStatus2 (result .getMappedStatuses ().get ("MyTestConnector2" ));
73+ assertTrue (result .getMappedDefinitions ().containsKey ("MyTestConnector2" ));
74+ validateTestConnectorDefinition2 (result .getDefinitionForConnector ("MyTestConnector2" ));
75+ validateTestConnectorDefinition2 (result .getMappedDefinitions ().get ("MyTestConnector2" ));
76+ }
77+
78+ private void validateTestConnectorDefinition (final ConnectorDefinition connector ) {
79+ final String expectedConnectorName = "MyTestConnector" ;
80+
81+ assertEquals ("Should have correct name" , expectedConnectorName , connector .getName ());
82+ assertEquals ("Should have correct type" , "source" , connector .getType ());
83+
84+ // Validate config
85+ assertNotNull ("Config should not be null" , connector .getConfig ());
86+ assertEquals ("org.apache.kafka.connect.tools.VerifiableSourceConnector" , connector .getConfig ().get ("connector.class" ));
87+ assertEquals ("3" , connector .getConfig ().get ("tasks.max" ));
88+ assertEquals ("test-topic" , connector .getConfig ().get ("topics" ));
89+ assertEquals (expectedConnectorName , connector .getConfig ().get ("name" ));
90+
91+ // Validate tasks
92+ final List <ConnectorDefinition .TaskDefinition > taskDefinitions = connector .getTasks ();
93+ assertNotNull ("Tasks should not be null" , taskDefinitions );
94+ assertEquals (3 , taskDefinitions .size ());
95+
96+ for (int taskId =0 ; taskId <taskDefinitions .size (); taskId ++) {
97+ assertEquals (expectedConnectorName , taskDefinitions .get (taskId ).getConnector ());
98+ assertEquals (taskId , taskDefinitions .get (taskId ).getTask ());
99+ }
100+ }
101+
102+ private void validateTestConnectorStatus (final ConnectorStatus connectorStatus ) {
103+ final String expectedConnectorName = "MyTestConnector" ;
104+
105+ assertNotNull (connectorStatus );
106+ assertEquals (expectedConnectorName , connectorStatus .getName ());
107+ assertEquals ("source" , connectorStatus .getType ());
108+ assertNotNull (connectorStatus .getConnector ());
109+ assertNotNull (connectorStatus .getTasks ());
110+
111+ // Validate connector
112+ assertEquals ("RUNNING" , connectorStatus .getConnector ().get ("state" ));
113+ assertEquals ("127.0.0.1:8083" , connectorStatus .getConnector ().get ("worker_id" ));
114+
115+ // Validate tasks
116+ assertEquals (3 , connectorStatus .getTasks ().size ());
117+
118+ assertEquals (0 , connectorStatus .getTasks ().get (0 ).getId ());
119+ assertEquals ("FAILED" , connectorStatus .getTasks ().get (0 ).getState ());
120+ assertEquals ("trace0" , connectorStatus .getTasks ().get (0 ).getTrace ());
121+ assertEquals ("127.0.0.1:8083" , connectorStatus .getTasks ().get (0 ).getWorkerId ());
122+
123+ assertEquals (1 , connectorStatus .getTasks ().get (1 ).getId ());
124+ assertEquals ("RUNNING" , connectorStatus .getTasks ().get (1 ).getState ());
125+ assertEquals ("trace1" , connectorStatus .getTasks ().get (1 ).getTrace ());
126+ assertEquals ("127.0.0.1:8083" , connectorStatus .getTasks ().get (1 ).getWorkerId ());
127+
128+ assertEquals (2 , connectorStatus .getTasks ().get (2 ).getId ());
129+ assertEquals ("PAUSED" , connectorStatus .getTasks ().get (2 ).getState ());
130+ assertEquals ("trace2" , connectorStatus .getTasks ().get (2 ).getTrace ());
131+ assertEquals ("127.0.0.1:8083" , connectorStatus .getTasks ().get (2 ).getWorkerId ());
132+ }
133+
134+ private void validateTestConnectorDefinition2 (final ConnectorDefinition connector ) {
135+ final String expectedConnectorName = "MyTestConnector2" ;
136+
137+ assertEquals ("Should have correct name" , expectedConnectorName , connector .getName ());
138+ assertEquals ("Should have correct type" , "source" , connector .getType ());
139+
140+ // Validate config
141+ assertNotNull ("Config should not be null" , connector .getConfig ());
142+ assertEquals ("org.apache.kafka.connect.tools.SomeOtherConnectorClass" , connector .getConfig ().get ("connector.class" ));
143+ assertEquals ("1" , connector .getConfig ().get ("tasks.max" ));
144+ assertEquals ("another-topic" , connector .getConfig ().get ("topics" ));
145+ assertEquals (expectedConnectorName , connector .getConfig ().get ("name" ));
146+
147+ // Validate tasks
148+ final List <ConnectorDefinition .TaskDefinition > taskDefinitions = connector .getTasks ();
149+ assertNotNull ("Tasks should not be null" , taskDefinitions );
150+ assertEquals (1 , taskDefinitions .size ());
151+
152+ for (int taskId =0 ; taskId <taskDefinitions .size (); taskId ++) {
153+ assertEquals (expectedConnectorName , taskDefinitions .get (taskId ).getConnector ());
154+ assertEquals (taskId , taskDefinitions .get (taskId ).getTask ());
155+ }
156+ }
157+
158+ private void validateTestConnectorStatus2 (final ConnectorStatus connectorStatus ) {
159+ final String expectedConnectorName = "MyTestConnector2" ;
160+
161+ assertNotNull (connectorStatus );
162+ assertEquals (expectedConnectorName , connectorStatus .getName ());
163+ assertEquals ("source" , connectorStatus .getType ());
164+ assertNotNull (connectorStatus .getConnector ());
165+ assertNotNull (connectorStatus .getTasks ());
166+
167+ // Validate connector
168+ assertEquals ("RUNNING" , connectorStatus .getConnector ().get ("state" ));
169+ assertEquals ("127.0.0.1:8083" , connectorStatus .getConnector ().get ("worker_id" ));
170+
171+ // Validate tasks
172+ assertEquals (1 , connectorStatus .getTasks ().size ());
173+
174+ assertEquals (0 , connectorStatus .getTasks ().get (0 ).getId ());
175+ assertEquals ("RUNNING" , connectorStatus .getTasks ().get (0 ).getState ());
176+ assertEquals ("trace0" , connectorStatus .getTasks ().get (0 ).getTrace ());
177+ assertEquals ("127.0.0.1:8083" , connectorStatus .getTasks ().get (0 ).getWorkerId ());
45178 }
46179}
0 commit comments