4444
4545public class ProtoMessageRequestFormatterTest {
4646 private Field field ;
47- private HttpRequestFormatter <Field > formatter ;
47+ private ProtoMessageRequestFormatter <Field > formatter ;
4848
4949 @ Before
5050 public void setUp () {
@@ -60,36 +60,28 @@ public void setUp() {
6060 formatter =
6161 ProtoMessageRequestFormatter .<Field >newBuilder ()
6262 .setPath (
63- "/api/v1/names/{name}/aggregated" ,
64- new FieldsExtractor <Field , Map <String , String >>() {
65- @ Override
66- public Map <String , String > extract (Field request ) {
67- Map <String , String > fields = new HashMap <>();
68- ProtoRestSerializer <Field > serializer = ProtoRestSerializer .create ();
69- serializer .putPathParam (fields , "name" , request .getName ());
70- serializer .putPathParam (fields , "kindValue" , request .getKindValue ());
71- return fields ;
72- }
63+ "/api/v1/names/{name=field_name1/**}/aggregated" ,
64+ request -> {
65+ Map <String , String > fields = new HashMap <>();
66+ ProtoRestSerializer <Field > serializer = ProtoRestSerializer .create ();
67+ serializer .putPathParam (fields , "name" , request .getName ());
68+ serializer .putPathParam (fields , "kindValue" , request .getKindValue ());
69+ return fields ;
7370 })
7471 .setQueryParamsExtractor (
75- new FieldsExtractor <Field , Map <String , List <String >>>() {
76- @ Override
77- public Map <String , List <String >> extract (Field request ) {
78- Map <String , List <String >> fields = new HashMap <>();
79- ProtoRestSerializer <Field > serializer = ProtoRestSerializer .create ();
80- serializer .putQueryParam (fields , "number" , request .getNumber ());
81- serializer .putQueryParam (fields , "typeUrl" , request .getTypeUrl ());
82- return fields ;
83- }
72+ request -> {
73+ Map <String , List <String >> fields = new HashMap <>();
74+ ProtoRestSerializer <Field > serializer = ProtoRestSerializer .create ();
75+ serializer .putQueryParam (fields , "number" , request .getNumber ());
76+ serializer .putQueryParam (fields , "typeUrl" , request .getTypeUrl ());
77+ return fields ;
8478 })
8579 .setRequestBodyExtractor (
86- new FieldsExtractor <Field , String >() {
87- @ Override
88- public String extract (Field request ) {
89- ProtoRestSerializer <Field > serializer = ProtoRestSerializer .create ();
90- return serializer .toBody ("field" , request );
91- }
80+ request -> {
81+ ProtoRestSerializer <Field > serializer = ProtoRestSerializer .create ();
82+ return serializer .toBody ("field" , request );
9283 })
84+ .setAdditionalPaths ("/api/v1/names/{name=field_name1/**}/hello" )
9385 .build ();
9486 }
9587
@@ -100,6 +92,12 @@ public void getQueryParamNames() {
10092 expected .put ("number" , Arrays .asList ("2" ));
10193 expected .put ("typeUrl" , Arrays .asList ("" ));
10294 Truth .assertThat (queryParamNames ).isEqualTo (expected );
95+
96+ // Test toBuilder() case
97+ queryParamNames = formatter .toBuilder ().build ().getQueryParamNames (field );
98+ expected .put ("number" , Arrays .asList ("2" ));
99+ expected .put ("typeUrl" , Arrays .asList ("" ));
100+ Truth .assertThat (queryParamNames ).isEqualTo (expected );
103101 }
104102
105103 @ Test
@@ -117,18 +115,61 @@ public void getRequestBody() {
117115 + " }]\n "
118116 + "}" ;
119117 Truth .assertThat (bodyJson ).isEqualTo (expectedBodyJson );
118+
119+ // Test toBuilder() case
120+ formatter .toBuilder ().build ().getRequestBody (field );
121+ Truth .assertThat (bodyJson ).isEqualTo (expectedBodyJson );
120122 }
121123
122124 @ Test
123125 public void getPath () {
124126 String path = formatter .getPath (field );
125127 Truth .assertThat (path ).isEqualTo ("api/v1/names/field_name1/aggregated" );
128+
129+ // Test toBuilder() case
130+ path = formatter .toBuilder ().build ().getPath (field );
131+ Truth .assertThat (path ).isEqualTo ("api/v1/names/field_name1/aggregated" );
126132 }
127133
128134 @ Test
129135 public void getPathTemplate () {
130136 String path =
131137 formatter .getPathTemplate ().instantiate (Collections .singletonMap ("name" , "field_name1" ));
132138 Truth .assertThat (path ).isEqualTo ("api/v1/names/field_name1/aggregated" );
139+
140+ // Test toBuilder() case
141+ path =
142+ formatter
143+ .toBuilder ()
144+ .build ()
145+ .getPathTemplate ()
146+ .instantiate (Collections .singletonMap ("name" , "field_name1" ));
147+ Truth .assertThat (path ).isEqualTo ("api/v1/names/field_name1/aggregated" );
148+ }
149+
150+ @ Test
151+ public void getPathTemplates () {
152+ String path =
153+ formatter
154+ .getAdditionalPathTemplates ()
155+ .get (0 )
156+ .instantiate (Collections .singletonMap ("name" , "field_name1" ));
157+ Truth .assertThat (path ).isEqualTo ("api/v1/names/field_name1/hello" );
158+
159+ // Test toBuilder() case
160+ path =
161+ formatter
162+ .toBuilder ()
163+ .build ()
164+ .getAdditionalPathTemplates ()
165+ .get (0 )
166+ .instantiate (Collections .singletonMap ("name" , "field_name1" ));
167+ Truth .assertThat (path ).isEqualTo ("api/v1/names/field_name1/hello" );
168+ }
169+
170+ @ Test
171+ public void updateRawPath () {
172+ String path = formatter .toBuilder ().updateRawPath ("/v1/" , "/v1beta1/" ).build ().getPath (field );
173+ Truth .assertThat (path ).isEqualTo ("api/v1beta1/names/field_name1/aggregated" );
133174 }
134175}
0 commit comments