1515import com .cloudera .cyber .enrichment .rest .impl .MockRestServer ;
1616import com .google .common .collect .Lists ;
1717import org .apache .http .client .methods .HttpPost ;
18- import org .hamcrest .Matcher ;
19- import org .junit .AfterClass ;
2018import org .junit .Assert ;
21- import org .junit .BeforeClass ;
19+ import org .junit .Ignore ;
2220import org .junit .Test ;
2321
2422import javax .annotation .Nonnull ;
3028import java .util .concurrent .CompletableFuture ;
3129import java .util .concurrent .Executors ;
3230
33- import static org .hamcrest .Matchers .containsString ;
34- import static org .junit .Assert .assertThat ;
35-
31+ // tests will run either with or without tls when junit runs derived classes
32+ @ Ignore
3633public class PostRestRequestTest extends RestRequestTest {
3734 private static RestEnrichmentConfig modelResultPostRequest ;
3835
39- @ BeforeClass
40- public static void createMockServices () {
41- startMockServer ();
42- modelResultPostRequest = mockRestServer .configureModelPostRequest (MockRestServer .ENCRYPTED_PROTOCOL ).build ();
43- }
44-
45- @ AfterClass
46- public static void stopMockServices () {
47- stopMockServer ();
36+ public static void createMockService (boolean enableTlsMutualAuth ) {
37+ startMockServer (enableTlsMutualAuth );
38+ modelResultPostRequest = mockRestServer .configureModelPostRequest ().build ();
4839 }
4940
5041 @ Test
5142 public void testSimplePostCModel () throws Exception {
5243 testSuccessfulModelPosts (modelResultPostRequest );
5344 }
5445
55- private void testSuccessfulModelPosts (RestEnrichmentConfig config ) throws Exception {
46+ protected void testSuccessfulModelPosts (RestEnrichmentConfig config ) throws Exception {
5647 for (MockRestServer .ExpectedModelResult expectedModelResult : MockRestServer .expectedModelResults ) {
5748 if (expectedModelResult .isSuccess ()) {
5849 testDomain (config , expectedModelResult .getDomainName (), expectedModelResult .isLegit ());
@@ -63,24 +54,24 @@ private void testSuccessfulModelPosts(RestEnrichmentConfig config) throws Except
6354 @ Test
6455 public void testHttp200StatusButResultIndicatesError () throws Exception {
6556 String expectedErrorFormat = "Rest request url='%s://%s/model' entity='{\" accessKey\" :\" mup8kz1hsl3erczwepbt8jupamita6y6\" ,\" request\" :{\" domain\" :\" unsuccessfuldomain\" }}' failed 'Rest request returned a success code but the content indicated failure.'" ;
66- testHttpFailedRequest (MockRestServer .UNSUCCESSFUL_DOMAIN , expectedErrorFormat , modelResultPostRequest , mockRestServer );
67- }
57+ testHttpFailedRequest (MockRestServer .UNSUCCESSFUL_DOMAIN , expectedErrorFormat );
6858
59+ }
6960 @ Test
7061 public void testHttp400Exception () throws Exception {
7162 String expectedErrorFormat = "Rest request url='%s://%s/model' entity='{\" accessKey\" :\" mup8kz1hsl3erczwepbt8jupamita6y6\" ,\" request\" :{\" domain\" :\" clienterror\" }}' failed 'Rest request failed due to 'HTTP/1.1 400 Bad Request'.'" ;
72- testHttpFailedRequest (MockRestServer .CLIENT_ERROR_DOMAIN , expectedErrorFormat , modelResultPostRequest , mockRestServer );
63+ testHttpFailedRequest (MockRestServer .CLIENT_ERROR_DOMAIN , expectedErrorFormat );
7364 }
7465
75- private void testHttpFailedRequest (String domainName , String errorMessageFormat , RestEnrichmentConfig modelResultPostRequest , MockRestServer mockRestServer ) throws Exception {
66+ public void testHttpFailedRequest (String domainName , String errorMessageFormat ) throws Exception {
7667 RestRequest request = modelResultPostRequest .createRestEnrichmentRequest ();
7768 Map <String , String > variables = new HashMap <String , String >() {
7869 {
7970 put (MockRestServer .DOMAIN_EXTENSION_NAME , domainName );
8071 }
8172 };
8273 RestRequestResult result = request .getResult (true , variables ).get ();
83- verifyErrorResult (result , errorMessageFormat , mockRestServer );
74+ verifyErrorResult (result , errorMessageFormat );
8475 }
8576
8677 private static class MockThrowingPostRequest extends PostRestRequest {
@@ -96,52 +87,30 @@ protected void addEntityToRequest(@Nonnull HttpPost postRequest, @Nonnull String
9687
9788 @ Test
9889 public void testUnsupportedCharacterSetException () throws Exception {
90+
9991 MockThrowingPostRequest throwingPostRequest = new MockThrowingPostRequest (modelResultPostRequest );
10092 RestRequestKey key = throwingPostRequest .getKey (new HashMap <String , String >() {{ put (MockRestServer .DOMAIN_EXTENSION_NAME , "mydomain" );}});
10193 CompletableFuture <RestRequestResult > future = new MockThrowingPostRequest (modelResultPostRequest ).asyncLoad (key , Executors .newFixedThreadPool (1 ));
10294 RestRequestResult result = future .get ();
10395 String expectedErrorFormat = "Rest request url='%s://%s/model' entity='{\" accessKey\" :\" mup8kz1hsl3erczwepbt8jupamita6y6\" ,\" request\" :{\" domain\" :\" mydomain\" }}' failed 'Default UnsupportedEndcodingException message'" ;
104- verifyErrorResult (result , expectedErrorFormat , mockRestServer );
96+ verifyErrorResult (result , expectedErrorFormat );
10597 }
10698
10799 @ Test
108100 public void testUndefinedVariableWithAnyMatchIgnoresKeyErrors () throws Exception {
109- RestEnrichmentConfig anyMatchRequest = mockRestServer .configureModelPostRequest (MockRestServer . ENCRYPTED_PROTOCOL ).sources (Lists .newArrayList (AsyncHttpRequest .ANY_SOURCE_NAME )).build ();
101+ RestEnrichmentConfig anyMatchRequest = mockRestServer .configureModelPostRequest ().sources (Lists .newArrayList (AsyncHttpRequest .ANY_SOURCE_NAME )).build ();
110102 // accessing an undefined field in a key with any source match does not report an error
111103 testDomain (anyMatchRequest , new ArrayList <>());
112104 }
113105
114- @ Test
115- public void testTlsWithAlias () throws Exception {
116- RestEnrichmentConfig .RestEnrichmentConfigBuilder modelResultPostRequestWithKeyAlias = mockRestServer .configureTLS (mockRestServer .configureModelPostRequest (MockRestServer .ENCRYPTED_PROTOCOL ), "client" );
117- testSuccessfulModelPosts (modelResultPostRequestWithKeyAlias .build ());
118- }
119-
120- @ Test
121- public void testTlsHandshakeException () throws Exception {
122- RestEnrichmentConfig .RestEnrichmentConfigBuilder modelResultPostRequestWithKeyAlias = mockRestServer .configureTLS (mockRestServer .configureModelPostRequest (MockRestServer .ENCRYPTED_PROTOCOL ), "nosuchkeyalias" );
123- RestRequest badHandshakePost = new PostRestRequest (modelResultPostRequestWithKeyAlias .build ());
124- MockRestServer .ExpectedModelResult expectedResult = MockRestServer .expectedModelResults .get (0 );
125- Map <String , String > extensions = new HashMap <String , String >() {{
126- put (MockRestServer .DOMAIN_EXTENSION_NAME , expectedResult .getDomainName ());
127- }};
128- RestRequestResult result = badHandshakePost .getResult (true , extensions ).get ();
129-
130- Assert .assertTrue (result .getExtensions ().isEmpty ());
131- List <String > errors = result .getErrors ();
132- Assert .assertEquals (1 , errors .size ());
133- Matcher <String > expectedString = containsString (String .format ("Rest request url='%s://%s/model' entity='{\" accessKey\" :\" mup8kz1hsl3erczwepbt8jupamita6y6\" ,\" request\" :{\" domain\" :\" google\" }}'" , mockRestServer .getMockProtocol (), mockRestServer .getMockHostAndPort ()));
134- assertThat (errors .get (0 ), expectedString );
135- }
136-
137106 @ Test
138107 public void testUndefinedVariableWithSpecificMatchReturnsKeyErrors () throws Exception {
139- RestEnrichmentConfig anyMatchRequest = mockRestServer .configureModelPostRequest (MockRestServer . ENCRYPTED_PROTOCOL ).build ();
108+ RestEnrichmentConfig anyMatchRequest = mockRestServer .configureModelPostRequest ().build ();
140109 // accessing an undefined field in a key with a specific source match fails with a key error
141110 testDomain (anyMatchRequest , Lists .newArrayList ("Variable(s) 'domain' required by rest entity are undefined" ));
142111 }
143112
144- private void testDomain (RestEnrichmentConfig config , String domainName , Boolean legit ) throws Exception {
113+ protected void testDomain (RestEnrichmentConfig config , String domainName , Boolean legit ) throws Exception {
145114 Map <String , String > variables = new HashMap <String , String >() {{
146115 put (MockRestServer .DOMAIN_EXTENSION_NAME , domainName );
147116 }};
@@ -150,7 +119,7 @@ private void testDomain(RestEnrichmentConfig config, String domainName, Boolean
150119 Assert .assertTrue (result .getErrors ().isEmpty ());
151120 }
152121
153- private void testDomain (RestEnrichmentConfig config , List <String > expectedErrors ) throws Exception {
122+ protected void testDomain (RestEnrichmentConfig config , List <String > expectedErrors ) throws Exception {
154123 Map <String , String > variables = new HashMap <String , String >() {{
155124 put ("wrong field name" , "testdomain" );
156125 }};
0 commit comments