@@ -122,7 +122,7 @@ public void setDefaultsAsync_goodXml_setsDefaults() throws Exception {
122
122
ConfigContainer goodDefaultsXmlContainer = newDefaultsContainer (DEFAULTS_MAP );
123
123
cachePutReturnsConfig (mockDefaultsCache , goodDefaultsXmlContainer );
124
124
125
- Task <Void > task = frc .setDefaultsAsync (getResourceId ("frc_good_defaults" ));
125
+ Task <Void > task = frc .setDefaultsAsync (getResourceId ("frc_good_defaults" , "xml" ));
126
126
Tasks .await (task );
127
127
128
128
// Assert defaults were set correctly.
@@ -136,7 +136,7 @@ public void setDefaultsAsync_emptyXml_setsEmptyDefaults() throws Exception {
136
136
ConfigContainer emptyDefaultsXmlContainer = newDefaultsContainer (ImmutableMap .of ());
137
137
cachePutReturnsConfig (mockDefaultsCache , emptyDefaultsXmlContainer );
138
138
139
- Task <Void > task = frc .setDefaultsAsync (getResourceId ("frc_empty_defaults" ));
139
+ Task <Void > task = frc .setDefaultsAsync (getResourceId ("frc_empty_defaults" , "xml" ));
140
140
Tasks .await (task );
141
141
142
142
ArgumentCaptor <ConfigContainer > captor = ArgumentCaptor .forClass (ConfigContainer .class );
@@ -150,14 +150,53 @@ public void setDefaultsAsync_badXml_ignoresBadEntries() throws Exception {
150
150
newDefaultsContainer (ImmutableMap .of ("second_default_key" , "second_default_value" ));
151
151
cachePutReturnsConfig (mockDefaultsCache , badDefaultsXmlContainer );
152
152
153
- Task <Void > task = frc .setDefaultsAsync (getResourceId ("frc_bad_defaults" ));
153
+ Task <Void > task = frc .setDefaultsAsync (getResourceId ("frc_bad_defaults" , "xml" ));
154
154
Tasks .await (task );
155
155
156
156
ArgumentCaptor <ConfigContainer > captor = ArgumentCaptor .forClass (ConfigContainer .class );
157
157
verify (mockDefaultsCache ).put (captor .capture ());
158
158
assertThat (captor .getValue ()).isEqualTo (badDefaultsXmlContainer );
159
159
}
160
160
161
+ @ Test
162
+ public void setDefaultsAsyncJson_goodJson_setsDefaults () throws Exception {
163
+ ConfigContainer goodDefaultsJsonContainer = newDefaultsContainer (DEFAULTS_MAP );
164
+ cachePutReturnsConfig (mockDefaultsCache , goodDefaultsJsonContainer );
165
+
166
+ Task <Void > task = frc .setDefaultsAsyncJson (getResourceId ("frc_good_defaults_json" , "raw" ));
167
+ Tasks .await (task );
168
+
169
+ ArgumentCaptor <ConfigContainer > captor = ArgumentCaptor .forClass (ConfigContainer .class );
170
+ verify (mockDefaultsCache ).put (captor .capture ());
171
+ assertThat (captor .getValue ()).isEqualTo (goodDefaultsJsonContainer );
172
+ }
173
+
174
+ @ Test
175
+ public void setDefaultsAsyncJson_emptyJson_setsEmptyDefaults () throws Exception {
176
+ ConfigContainer emptyDefaultsJsonContainer = newDefaultsContainer (ImmutableMap .of ());
177
+ cachePutReturnsConfig (mockDefaultsCache , emptyDefaultsJsonContainer );
178
+
179
+ Task <Void > task = frc .setDefaultsAsyncJson (getResourceId ("frc_empty_defaults_json" , "raw" ));
180
+ Tasks .await (task );
181
+
182
+ ArgumentCaptor <ConfigContainer > captor = ArgumentCaptor .forClass (ConfigContainer .class );
183
+ verify (mockDefaultsCache ).put (captor .capture ());
184
+ assertThat (captor .getValue ()).isEqualTo (emptyDefaultsJsonContainer );
185
+ }
186
+
187
+ @ Test
188
+ public void setDefaultsAsyncJson_invalidJson_setsEmptyDefaults () throws Exception {
189
+ ConfigContainer emptyDefaultsJsonContainer = newDefaultsContainer (ImmutableMap .of ());
190
+ cachePutReturnsConfig (mockDefaultsCache , emptyDefaultsJsonContainer );
191
+
192
+ Task <Void > task = frc .setDefaultsAsyncJson (getResourceId ("frc_invalid_json_format" , "raw" ));
193
+ Tasks .await (task );
194
+
195
+ ArgumentCaptor <ConfigContainer > captor = ArgumentCaptor .forClass (ConfigContainer .class );
196
+ verify (mockDefaultsCache ).put (captor .capture ());
197
+ assertThat (captor .getValue ()).isEqualTo (emptyDefaultsJsonContainer );
198
+ }
199
+
161
200
private static void cachePutReturnsConfig (
162
201
ConfigCacheClient cacheClient , ConfigContainer container ) {
163
202
when (cacheClient .put (container )).thenReturn (Tasks .forResult (container ));
@@ -171,9 +210,9 @@ private static ConfigContainer newDefaultsContainer(Map<String, String> configsM
171
210
.build ();
172
211
}
173
212
174
- private static int getResourceId (String xmlResourceName ) {
213
+ private static int getResourceId (String xmlResourceName , String defType ) {
175
214
Resources r = getInstrumentation ().getTargetContext ().getResources ();
176
215
return r .getIdentifier (
177
- xmlResourceName , "xml" , getInstrumentation ().getTargetContext ().getPackageName ());
216
+ xmlResourceName , defType , getInstrumentation ().getTargetContext ().getPackageName ());
178
217
}
179
218
}
0 commit comments