11package com .intuit .ipp .interceptors ;
22
3+ import com .intuit .ipp .data .Attachable ;
34import com .intuit .ipp .exception .FMSException ;
4- import com .intuit .ipp .serialization .JSONSerializerTest ;
55import com .intuit .ipp .util .Config ;
6- import org .testng .Assert ;
76import org .testng .annotations .Test ;
87
98import javax .xml .bind .JAXBElement ;
109import javax .xml .bind .annotation .XmlElement ;
1110import javax .xml .bind .annotation .XmlRootElement ;
1211import javax .xml .namespace .QName ;
12+ import java .io .ByteArrayInputStream ;
13+ import java .io .InputStream ;
14+ import java .util .Arrays ;
1315import java .util .HashMap ;
1416import java .util .Map ;
1517
1618import static com .intuit .ipp .interceptors .RequestElements .REQ_PARAM_METHOD_TYPE ;
19+ import static com .intuit .ipp .net .OperationType .DOWNLOAD ;
20+ import static com .intuit .ipp .net .OperationType .UPLOAD ;
1721import static com .intuit .ipp .util .Config .SERIALIZATION_REQUEST_FORMAT ;
22+ import static org .testng .Assert .assertEquals ;
1823import static org .testng .Assert .assertTrue ;
1924
2025public class SerializeInterceptorTest {
2126
2227 private SerializeInterceptor serializeInterceptor = new SerializeInterceptor ();
23- private IntuitMessage message = new IntuitMessage ();
2428
2529 @ Test (description = "Given a POST request with object for serialization, " +
2630 "the serialized data should be present in the serializedData object" )
2731 public void execute_positiveCase1 () throws FMSException {
28- JSONSerializerTest test1 = new JSONSerializerTest ();
32+ IntuitMessage message = new IntuitMessage ();
2933 TestJson json = new TestJson ();
3034 json .setFoo ("bar" );
3135 JAXBElement <TestJson > jaxbElement = new JAXBElement (new QName (TestJson .class .getSimpleName ()), TestJson .class , json );
@@ -34,28 +38,76 @@ public void execute_positiveCase1() throws FMSException {
3438 message .getRequestElements ().setRequestParameters (requestParams );
3539 message .getRequestElements ().setObjectToSerialize (jaxbElement );
3640 serializeInterceptor .execute (message );
37- Assert . assertEquals (message .getRequestElements ().getSerializedData (), "{\" foo\" :\" bar\" }" );
41+ assertEquals (message .getRequestElements ().getSerializedData (), "{\" foo\" :\" bar\" }" );
3842 }
3943
4044 @ Test (description = "Given a POST request with post body for serialization, " +
4145 "the serialized data should be present in the serializedData object" )
4246 public void execute_positiveCase2 () throws FMSException {
47+ IntuitMessage message = new IntuitMessage ();
4348 Map <String , String > requestParams = new HashMap <>();
4449 requestParams .put (REQ_PARAM_METHOD_TYPE , "POST" );
4550 message .getRequestElements ().setRequestParameters (requestParams );
4651 String jsonInput = "{\" foo\" :\" bar\" }" ;
4752 message .getRequestElements ().setPostString (jsonInput );
4853 serializeInterceptor .execute (message );
49- Assert . assertEquals (message .getRequestElements ().getSerializedData (), jsonInput );
54+ assertEquals (message .getRequestElements ().getSerializedData (), jsonInput );
5055 }
5156
5257 @ Test (description = "Given a GET request for serialization, the serialized data should be null" )
5358 public void execute_positiveCase3 () throws FMSException {
59+ IntuitMessage message = new IntuitMessage ();
5460 Map <String , String > requestParams = new HashMap <>();
5561 requestParams .put (REQ_PARAM_METHOD_TYPE , "GET" );
5662 message .getRequestElements ().setRequestParameters (requestParams );
5763 serializeInterceptor .execute (message );
58- Assert .assertEquals (message .getRequestElements ().getSerializedData (), null );
64+ assertEquals (message .getRequestElements ().getSerializedData (), null );
65+ }
66+
67+ @ Test (description = "Given a POST request with object for serialization " +
68+ " along with an operations that is supported for serialization and " +
69+ "a file to be uploaded. The serialized data should be present in the " +
70+ "serializedData object along with the file that would be uploaded." )
71+ public void execute_positiveCase4 () throws FMSException {
72+ IntuitMessage message = new IntuitMessage ();
73+ TestJson json = new TestJson ();
74+ json .setFoo ("bar" );
75+ JAXBElement <TestJson > jaxbElement = new JAXBElement (new QName (TestJson .class .getSimpleName ()), TestJson .class , json );
76+ Map <String , String > requestParams = new HashMap <>();
77+ requestParams .put (REQ_PARAM_METHOD_TYPE , "POST" );
78+ message .getRequestElements ().setRequestParameters (requestParams );
79+ message .getRequestElements ().setObjectToSerialize (jaxbElement );
80+ message .getRequestElements ().setAction (UPLOAD .toString ());
81+ message .getRequestElements ().getUploadRequestElements ().setBoundaryForEntity ("Entity" );
82+ message .getRequestElements ().getUploadRequestElements ().setBoundaryForContent ("Content" );
83+ Attachable attachable = new Attachable ();
84+ attachable .setFileName ("test.txt" );
85+ message .getRequestElements ().setEntity (attachable );
86+ InputStream inputStream = new ByteArrayInputStream ("test data" .getBytes ());
87+ message .getRequestElements ().getUploadRequestElements ().setDocContent (inputStream );
88+ serializeInterceptor .execute (message );
89+ assertTrue (message
90+ .getRequestElements ()
91+ .getSerializedData ()
92+ .equalsIgnoreCase ("Entity{\" foo\" :\" bar\" }Content" ));
93+ assertTrue (Arrays .equals ("test data" .getBytes (), message .getRequestElements ().getUploadFile ()));
94+ }
95+
96+ @ Test (description = "Given a POST request with object for serialization " +
97+ " along with an operations that's not supported for serialization. " +
98+ "The serialized data should be present in the serializedData object." )
99+ public void execute_positiveCase5 () throws FMSException {
100+ IntuitMessage message = new IntuitMessage ();
101+ TestJson json = new TestJson ();
102+ json .setFoo ("bar" );
103+ JAXBElement <TestJson > jaxbElement = new JAXBElement (new QName (TestJson .class .getSimpleName ()), TestJson .class , json );
104+ Map <String , String > requestParams = new HashMap <>();
105+ requestParams .put (REQ_PARAM_METHOD_TYPE , "POST" );
106+ message .getRequestElements ().setRequestParameters (requestParams );
107+ message .getRequestElements ().setObjectToSerialize (jaxbElement );
108+ message .getRequestElements ().setAction (DOWNLOAD .toString ());
109+ serializeInterceptor .execute (message );
110+ assertEquals (message .getRequestElements ().getSerializedData (), "{\" foo\" :\" bar\" }" );
59111 }
60112
61113 @ Test (description = "Serialization request format returned should be of " +
0 commit comments