Skip to content

Commit 2164780

Browse files
committed
Firestore: Migrate unit tests to assertThrows()
1 parent ea8957d commit 2164780

File tree

4 files changed

+149
-30
lines changed

4 files changed

+149
-30
lines changed

firebase-firestore/src/test/java/com/google/firebase/firestore/FieldPathTest.java

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616

1717
import static org.junit.Assert.assertEquals;
1818
import static org.junit.Assert.assertNotEquals;
19+
import static org.junit.Assert.assertThrows;
1920

2021
import org.junit.Test;
22+
import org.junit.function.ThrowingRunnable;
2123
import org.junit.runner.RunWith;
2224
import org.robolectric.RobolectricTestRunner;
2325
import org.robolectric.annotation.Config;
@@ -32,24 +34,52 @@ public void pathWithArray() {
3234
assertEquals("a.b.c", fieldPath.toString());
3335
}
3436

35-
@Test(expected = IllegalArgumentException.class)
37+
@Test
3638
public void emptyPathIsInvalid() {
37-
FieldPath.fromDotSeparatedPath("");
39+
assertThrows(
40+
IllegalArgumentException.class,
41+
new ThrowingRunnable() {
42+
@Override
43+
public void run() {
44+
FieldPath.fromDotSeparatedPath("");
45+
}
46+
});
3847
}
3948

40-
@Test(expected = IllegalArgumentException.class)
49+
@Test
4150
public void emptyFirstSegmentIsInvalid() {
42-
FieldPath.fromDotSeparatedPath(".a");
51+
assertThrows(
52+
IllegalArgumentException.class,
53+
new ThrowingRunnable() {
54+
@Override
55+
public void run() {
56+
FieldPath.fromDotSeparatedPath(".a");
57+
}
58+
});
4359
}
4460

45-
@Test(expected = IllegalArgumentException.class)
61+
@Test
4662
public void emptyLastSegmentIsInvalid() {
47-
FieldPath.fromDotSeparatedPath("a.");
63+
assertThrows(
64+
IllegalArgumentException.class,
65+
new ThrowingRunnable() {
66+
@Override
67+
public void run() {
68+
FieldPath.fromDotSeparatedPath("a.");
69+
}
70+
});
4871
}
4972

50-
@Test(expected = IllegalArgumentException.class)
73+
@Test
5174
public void emptyMiddleSegmentIsInvalid() {
52-
FieldPath.fromDotSeparatedPath("a..b");
75+
assertThrows(
76+
IllegalArgumentException.class,
77+
new ThrowingRunnable() {
78+
@Override
79+
public void run() {
80+
FieldPath.fromDotSeparatedPath("a..b");
81+
}
82+
});
5383
}
5484

5585
@Test

firebase-firestore/src/test/java/com/google/firebase/firestore/bundle/BundleReaderTest.java

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static com.google.firebase.firestore.testutil.TestUtil.version;
2222
import static org.junit.Assert.assertEquals;
2323
import static org.junit.Assert.assertNotNull;
24+
import static org.junit.Assert.assertThrows;
2425

2526
import com.google.firebase.firestore.core.Query;
2627
import com.google.firebase.firestore.core.Target;
@@ -38,6 +39,7 @@
3839
import java.util.List;
3940
import org.json.JSONException;
4041
import org.junit.Test;
42+
import org.junit.function.ThrowingRunnable;
4143
import org.junit.runner.RunWith;
4244
import org.robolectric.RobolectricTestRunner;
4345
import org.robolectric.annotation.Config;
@@ -219,55 +221,94 @@ public void testReadsWithoutDocumentOrQuery() throws IOException, JSONException
219221
verifyAllElements(bundleReader);
220222
}
221223

222-
@Test(expected = IllegalArgumentException.class)
224+
@Test
223225
public void testThrowsWithoutLengthPrefix() throws IOException, JSONException {
224226
String bundle = "{metadata: 'no length prefix' }";
225227

226228
BundleReader bundleReader =
227229
new BundleReader(SERIALIZER, new ByteArrayInputStream(bundle.getBytes(UTF8_CHARSET)));
228230

229-
bundleReader.getBundleMetadata();
231+
assertThrows(
232+
IllegalArgumentException.class,
233+
new ThrowingRunnable() {
234+
@Override
235+
public void run() throws Throwable {
236+
bundleReader.getBundleMetadata();
237+
}
238+
});
230239
}
231240

232-
@Test(expected = IllegalArgumentException.class)
241+
@Test
233242
public void testThrowsWithMissingBrackets() throws IOException, JSONException {
234243
String bundle = "3abc";
235244

236245
BundleReader bundleReader =
237246
new BundleReader(SERIALIZER, new ByteArrayInputStream(bundle.getBytes(UTF8_CHARSET)));
238-
bundleReader.getBundleMetadata();
247+
248+
assertThrows(
249+
IllegalArgumentException.class,
250+
new ThrowingRunnable() {
251+
@Override
252+
public void run() throws Throwable {
253+
bundleReader.getBundleMetadata();
254+
}
255+
});
239256
}
240257

241-
@Test(expected = JSONException.class)
258+
@Test
242259
public void testThrowsWithInvalidJSON() throws IOException, JSONException {
243260
String bundle = "3{abc}";
244261

245262
BundleReader bundleReader =
246263
new BundleReader(SERIALIZER, new ByteArrayInputStream(bundle.getBytes(UTF8_CHARSET)));
247-
bundleReader.getBundleMetadata();
264+
265+
assertThrows(
266+
JSONException.class,
267+
new ThrowingRunnable() {
268+
@Override
269+
public void run() throws Throwable {
270+
bundleReader.getBundleMetadata();
271+
}
272+
});
248273
}
249274

250-
@Test(expected = IllegalArgumentException.class)
275+
@Test
251276
public void testThrowsWhenSecondElementIsMissing() throws IOException, JSONException {
252277
TestBundleBuilder bundleBuilder = new TestBundleBuilder(TEST_PROJECT);
253278
String bundle =
254279
bundleBuilder.build("bundle-1", /* createTimeMicros= */ 6000000L, /* version= */ 1) + "foo";
255280

256281
BundleReader bundleReader =
257282
new BundleReader(SERIALIZER, new ByteArrayInputStream(bundle.getBytes(UTF8_CHARSET)));
258-
bundleReader.getNextElement();
283+
284+
assertThrows(
285+
IllegalArgumentException.class,
286+
new ThrowingRunnable() {
287+
@Override
288+
public void run() throws Throwable {
289+
bundleReader.getNextElement();
290+
}
291+
});
259292
}
260293

261-
@Test(expected = IllegalArgumentException.class)
294+
@Test
262295
public void testThrowsWhenBundleDoesNotContainEnoughData() throws IOException, JSONException {
263296
String bundle = "3{}";
264297

265298
BundleReader bundleReader =
266299
new BundleReader(SERIALIZER, new ByteArrayInputStream(bundle.getBytes(UTF8_CHARSET)));
267-
bundleReader.getBundleMetadata();
300+
301+
assertThrows(
302+
IllegalArgumentException.class,
303+
new ThrowingRunnable() {
304+
@Override
305+
public void run() throws Throwable {
306+
bundleReader.getBundleMetadata();
307+
}
308+
});
268309
}
269310

270-
@Test(expected = IllegalArgumentException.class)
311+
@Test
271312
public void testWhenFirstElementIsNotBundleMetadata() throws IOException, JSONException {
272313
String json =
273314
String.format(
@@ -283,7 +324,14 @@ public void testWhenFirstElementIsNotBundleMetadata() throws IOException, JSONEx
283324
BundleReader bundleReader =
284325
new BundleReader(SERIALIZER, new ByteArrayInputStream(bundle.getBytes(UTF8_CHARSET)));
285326

286-
bundleReader.getBundleMetadata();
327+
assertThrows(
328+
IllegalArgumentException.class,
329+
new ThrowingRunnable() {
330+
@Override
331+
public void run() throws Throwable {
332+
bundleReader.getBundleMetadata();
333+
}
334+
});
287335
}
288336

289337
@Test

firebase-firestore/src/test/java/com/google/firebase/firestore/bundle/BundleSerializerTest.java

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static com.google.firebase.firestore.testutil.TestUtil.orderBy;
2121
import static java.util.Arrays.asList;
2222
import static org.junit.Assert.assertEquals;
23+
import static org.junit.Assert.assertThrows;
2324

2425
import com.google.firebase.firestore.core.Query;
2526
import com.google.firebase.firestore.core.Target;
@@ -43,6 +44,7 @@
4344
import org.json.JSONException;
4445
import org.json.JSONObject;
4546
import org.junit.Test;
47+
import org.junit.function.ThrowingRunnable;
4648
import org.junit.runner.RunWith;
4749
import org.robolectric.RobolectricTestRunner;
4850
import org.robolectric.annotation.Config;
@@ -596,32 +598,60 @@ public void testDecodesEndBeforeQuery() throws JSONException {
596598
assertDecodesNamedQuery(json, query);
597599
}
598600

599-
@Test(expected = IllegalArgumentException.class)
601+
@Test
600602
public void testDoesNotDecodeOffset() throws JSONException {
601603
String json = "{ from: [ { collectionId: 'coll' } ], offset: 5 }";
602604
Query query = TestUtil.query("coll");
603-
assertDecodesNamedQuery(json, query);
605+
assertThrows(
606+
IllegalArgumentException.class,
607+
new ThrowingRunnable() {
608+
@Override
609+
public void run() throws Throwable {
610+
assertDecodesNamedQuery(json, query);
611+
}
612+
});
604613
}
605614

606-
@Test(expected = IllegalArgumentException.class)
615+
@Test
607616
public void testDoesNotDecodeSelect() throws JSONException {
608617
String json = "{ from: [ { collectionId: 'coll' } ], select: [] }";
609618
Query query = TestUtil.query("coll");
610-
assertDecodesNamedQuery(json, query);
619+
assertThrows(
620+
IllegalArgumentException.class,
621+
new ThrowingRunnable() {
622+
@Override
623+
public void run() throws Throwable {
624+
assertDecodesNamedQuery(json, query);
625+
}
626+
});
611627
}
612628

613-
@Test(expected = IllegalArgumentException.class)
629+
@Test
614630
public void testDoesNotDecodeMissingCollection() throws JSONException {
615631
String json = "{ from: [ ] }";
616632
Query query = TestUtil.query("coll");
617-
assertDecodesNamedQuery(json, query);
633+
assertThrows(
634+
IllegalArgumentException.class,
635+
new ThrowingRunnable() {
636+
@Override
637+
public void run() throws Throwable {
638+
assertDecodesNamedQuery(json, query);
639+
}
640+
});
618641
}
619642

620-
@Test(expected = IllegalArgumentException.class)
643+
@Test
621644
public void testDoesNotDecodeMultipleCollections() throws JSONException {
622645
String json = "{ from: [ { collectionId: 'c1' }, { collectionId: 'c2' } ] }";
623646
Query query = TestUtil.query("coll");
624-
assertDecodesNamedQuery(json, query);
647+
assertThrows(
648+
IllegalArgumentException.class,
649+
new ThrowingRunnable() {
650+
@Override
651+
public void run() throws Throwable {
652+
assertDecodesNamedQuery(json, query);
653+
}
654+
});
625655
}
626656

627657
// BundleMetadata tests

firebase-firestore/src/test/java/com/google/firebase/firestore/model/DocumentKeyTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717
import static java.util.Arrays.asList;
1818
import static org.junit.Assert.assertEquals;
1919
import static org.junit.Assert.assertNotEquals;
20+
import static org.junit.Assert.assertThrows;
2021

2122
import com.google.firebase.firestore.testutil.ComparatorTester;
2223
import java.util.Collections;
24+
import java.util.List;
2325
import org.junit.Test;
26+
import org.junit.function.ThrowingRunnable;
2427
import org.junit.runner.RunWith;
2528
import org.robolectric.RobolectricTestRunner;
2629
import org.robolectric.annotation.Config;
@@ -57,8 +60,16 @@ public void testComparison() {
5760
.testCompare();
5861
}
5962

60-
@Test(expected = Throwable.class)
63+
@Test
6164
public void testUnevenNumberOfSegmentsAreRejected() {
62-
DocumentKey.fromSegments(Collections.singletonList("a"));
65+
List<String> segments = Collections.singletonList("a");
66+
assertThrows(
67+
Throwable.class,
68+
new ThrowingRunnable() {
69+
@Override
70+
public void run() {
71+
DocumentKey.fromSegments(segments);
72+
}
73+
});
6374
}
6475
}

0 commit comments

Comments
 (0)