|
1 | 1 | using System;
|
2 |
| -using System.Collections.Generic; |
3 |
| -using Newtonsoft.Json.Linq; |
| 2 | +using FirebaseAdmin.Messaging; |
| 3 | +using Newtonsoft.Json; |
4 | 4 | using Xunit;
|
5 | 5 |
|
6 | 6 | namespace FirebaseAdmin.Tests.Messaging
|
7 | 7 | {
|
8 | 8 | public class TopicManagementResponseTest
|
9 | 9 | {
|
10 | 10 | [Fact]
|
11 |
| - public void SuccessfulTopicManagementResponse() |
| 11 | + public void SuccessfulReponse() |
12 | 12 | {
|
13 |
| - var json = @"[{}, {}]"; |
14 |
| - var jObjects = JArray.Parse(json).ToObject<List<JObject>>(); |
15 |
| - var response = new TopicManagementResponse(jObjects); |
| 13 | + var json = @"{""results"": [{}, {}]}"; |
| 14 | + var instanceIdServiceResponse = JsonConvert.DeserializeObject<InstanceIdServiceResponse>(json); |
| 15 | + var response = new TopicManagementResponse(instanceIdServiceResponse); |
16 | 16 |
|
17 | 17 | Assert.Equal(0, response.FailureCount);
|
18 | 18 | Assert.Equal(2, response.SuccessCount);
|
19 | 19 | }
|
20 | 20 |
|
21 | 21 | [Fact]
|
22 |
| - public void UnsuccessfulTopicManagementResponse() |
| 22 | + public void UnsuccessfulResponse() |
23 | 23 | {
|
24 |
| - var json = @"[{}, {""error"":""NOT_FOUND""}]"; |
25 |
| - var jObjects = JArray.Parse(json).ToObject<List<JObject>>(); |
26 |
| - var response = new TopicManagementResponse(jObjects); |
| 24 | + var json = @"{""results"": [{}, {""error"":""NOT_FOUND""}]}"; |
| 25 | + var instanceIdServiceResponse = JsonConvert.DeserializeObject<InstanceIdServiceResponse>(json); |
| 26 | + var response = new TopicManagementResponse(instanceIdServiceResponse); |
27 | 27 |
|
28 | 28 | Assert.Equal(1, response.FailureCount);
|
29 | 29 | Assert.Equal(1, response.SuccessCount);
|
| 30 | + Assert.NotEmpty(response.Errors); |
| 31 | + Assert.Equal("registration-token-not-registered", response.Errors[0].Reason); |
| 32 | + Assert.Equal(1, response.Errors[0].Index); |
30 | 33 | }
|
31 | 34 |
|
32 | 35 | [Fact]
|
33 |
| - public void TopicManagementResponseCannotBeNull() |
| 36 | + public void NullResponse() |
34 | 37 | {
|
35 | 38 | Assert.Throws<ArgumentException>(() =>
|
36 | 39 | {
|
37 |
| - List<JObject> jObjects = null; |
38 |
| - var response = new TopicManagementResponse(jObjects); |
| 40 | + var response = new TopicManagementResponse(null); |
39 | 41 | });
|
40 | 42 | }
|
41 | 43 |
|
42 | 44 | [Fact]
|
43 |
| - public void TopicManagementResponseCannotBeEmptyArray() |
| 45 | + public void EmptyResponse() |
44 | 46 | {
|
45 | 47 | Assert.Throws<ArgumentException>(() =>
|
46 | 48 | {
|
47 |
| - List<JObject> jObjects = new List<JObject>(); |
48 |
| - var response = new TopicManagementResponse(jObjects); |
| 49 | + var instanceIdServiceResponse = new InstanceIdServiceResponse(); |
| 50 | + var response = new TopicManagementResponse(instanceIdServiceResponse); |
49 | 51 | });
|
50 | 52 | }
|
51 | 53 |
|
52 | 54 | [Fact]
|
53 |
| - public void TopicManagementResponseHandlesUnknownErrors() |
| 55 | + public void UnknownError() |
54 | 56 | {
|
55 |
| - var json = @"[{""error"":""NOT_A_REAL_ERROR_CODE""}]"; |
56 |
| - var jObjects = JArray.Parse(json).ToObject<List<JObject>>(); |
57 |
| - var response = new TopicManagementResponse(jObjects); |
| 57 | + var json = @"{""results"": [{""error"":""NOT_A_REAL_ERROR_CODE""}]}"; |
| 58 | + var instanceIdServiceResponse = JsonConvert.DeserializeObject<InstanceIdServiceResponse>(json); |
| 59 | + var response = new TopicManagementResponse(instanceIdServiceResponse); |
58 | 60 |
|
59 | 61 | Assert.Equal(1, response.FailureCount);
|
60 | 62 | Assert.Equal(0, response.SuccessCount);
|
| 63 | + Assert.NotEmpty(response.Errors); |
| 64 | + Assert.Equal("unknown-error", response.Errors[0].Reason); |
| 65 | + Assert.Equal(0, response.Errors[0].Index); |
61 | 66 | }
|
62 | 67 |
|
63 | 68 | [Fact]
|
64 |
| - public void TopicManagementResponseHandlesUnexpectedResponse() |
| 69 | + public void UnexpectedResponse() |
65 | 70 | {
|
66 |
| - var json = @"[{""unexpected"":""NOT_A_REAL_CODE""}]"; |
67 |
| - var jObjects = JArray.Parse(json).ToObject<List<JObject>>(); |
68 |
| - var response = new TopicManagementResponse(jObjects); |
| 71 | + var json = @"{""results"": [{""unexpected"":""NOT_A_REAL_CODE""}]}"; |
| 72 | + var instanceIdServiceResponse = JsonConvert.DeserializeObject<InstanceIdServiceResponse>(json); |
| 73 | + var response = new TopicManagementResponse(instanceIdServiceResponse); |
69 | 74 |
|
70 | 75 | Assert.Equal(0, response.FailureCount);
|
71 | 76 | Assert.Equal(1, response.SuccessCount);
|
72 | 77 | }
|
73 | 78 |
|
74 | 79 | [Fact]
|
75 |
| - public void TopicManagementResponseCountsSuccessAndErrors() |
| 80 | + public void CountsSuccessAndErrors() |
76 | 81 | {
|
77 |
| - var json = @"[{""error"": ""NOT_FOUND""}, {}, {""error"": ""NOT_FOUND""}, {}, {}]"; |
78 |
| - var jObjects = JArray.Parse(json).ToObject<List<JObject>>(); |
79 |
| - var response = new TopicManagementResponse(jObjects); |
| 82 | + var json = @"{""results"": [{""error"": ""NOT_FOUND""}, {}, {""error"": ""INVALID_ARGUMENT""}, {}, {}]}"; |
| 83 | + var instanceIdServiceResponse = JsonConvert.DeserializeObject<InstanceIdServiceResponse>(json); |
| 84 | + var response = new TopicManagementResponse(instanceIdServiceResponse); |
80 | 85 |
|
81 | 86 | Assert.Equal(2, response.FailureCount);
|
82 | 87 | Assert.Equal(3, response.SuccessCount);
|
| 88 | + Assert.Equal("registration-token-not-registered", response.Errors[0].Reason); |
| 89 | + Assert.NotEmpty(response.Errors); |
| 90 | + Assert.Equal(0, response.Errors[0].Index); |
| 91 | + Assert.Equal("invalid-argument", response.Errors[1].Reason); |
| 92 | + Assert.Equal(2, response.Errors[1].Index); |
83 | 93 | }
|
84 | 94 | }
|
85 | 95 | }
|
0 commit comments