Skip to content

Commit b848fdd

Browse files
sherlockvnhoangdat
authored andcommitted
add unit-test for get/set identity contains sortOrder
1 parent 3a563f4 commit b848fdd

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

test/jmap/identities/create_identity_with_sort_order_test.dart

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:http_mock_adapter/http_mock_adapter.dart';
44
import 'package:jmap_dart_client/http/http_client.dart';
55
import 'package:jmap_dart_client/jmap/account_id.dart';
66
import 'package:jmap_dart_client/jmap/core/id.dart';
7+
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
78
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
89
import 'package:jmap_dart_client/jmap/identities/identity.dart';
910
import 'package:jmap_dart_client/jmap/identities/set/set_identity_method.dart';
@@ -101,4 +102,110 @@ void main() {
101102
expect(setIdentityResponse!.created![Id('dab246')]!.id, equals(expectedCreated.id));
102103
});
103104
});
105+
106+
group('test increase of old default identity request and create new identity request', () {
107+
final expectedCreated = Identity(
108+
id: IdentityId(Id('5ccf6d7b-77e8-467a-9064-9f7ccfb19e12')),
109+
sortOrder: UnsignedInt(1),
110+
);
111+
112+
final updatedIdentity = Identity(
113+
id: IdentityId(Id('5ccf6d7b-77e8-467a-9064-9f7cc1234512')),
114+
sortOrder: UnsignedInt(99),
115+
);
116+
117+
test('test increase of old default identity request and create new identity request', () async {
118+
final baseOption = BaseOptions(method: 'POST');
119+
final dio = Dio(baseOption)
120+
..options.baseUrl = 'http://domain.com/jmap';
121+
final dioAdapter = DioAdapter(dio: dio);
122+
dioAdapter.onPost(
123+
'',
124+
(server) => server.reply(200, {
125+
"sessionState": "2c9f1b12-b35a-43e6-9af2-0106f123a943",
126+
"methodResponses": [
127+
[
128+
"Identity/set",
129+
{
130+
"accountId": "4603645929458bf671aca134b890cbb8ac4a0d297640fsdefe9230ea28daa0b1",
131+
"newState": "2c9f1b12-b35a-43e6-9af2-0106fb53a943",
132+
"created": {
133+
"xyz123": {
134+
"id": "5ccf6d7b-77e8-467a-9064-9f7ccfb19e12",
135+
"mayDelete": true,
136+
}
137+
},
138+
"updated": {
139+
"5ccf6d7b-77e8-467a-9064-9f7cc1234512": {}
140+
}
141+
},
142+
"c0"
143+
]
144+
]
145+
}),
146+
data: {
147+
"using": [
148+
"urn:ietf:params:jmap:core",
149+
"urn:ietf:params:jmap:submission",
150+
"urn:apache:james:params:jmap:mail:identity:sortorder"
151+
],
152+
"methodCalls": [
153+
[
154+
"Identity/set",
155+
{
156+
"accountId": "4603645929458bf671aca134b890cbb8ac4a0d297640fsdefe9230ea28daa0b1",
157+
"create": {
158+
"xyz123": {
159+
"id": "5ccf6d7b-77e8-467a-9064-9f7ccfb19e12",
160+
"name": "User B23",
161+
"email": "[email protected]",
162+
"sortOrder": 1
163+
}
164+
},
165+
"update": {
166+
"c6ba359f-94a8-4ee9-b515-6bd2d9698618": {
167+
"sortOrder": 8888
168+
}
169+
}
170+
},
171+
"c0"
172+
]
173+
]
174+
},
175+
headers: {
176+
"accept": "application/json;jmapVersion=rfc-8621",
177+
"content-type": "application/json; charset=utf-8",
178+
"content-length": 438
179+
}
180+
);
181+
182+
final setIdentityMethod = SetIdentityMethod(AccountId(Id('4603645929458bf671aca134b890cbb8ac4a0d297640fsdefe9230ea28daa0b1')))
183+
..addCreate(Id('xyz123'),
184+
Identity(
185+
id: IdentityId(Id("5ccf6d7b-77e8-467a-9064-9f7ccfb19e12")),
186+
name: 'User B23',
187+
188+
sortOrder: UnsignedInt(1)
189+
)
190+
)
191+
..addUpdates({
192+
Id("c6ba359f-94a8-4ee9-b515-6bd2d9698618"): PatchObject({"sortOrder": 8888})
193+
});
194+
195+
final httpClient = HttpClient(dio);
196+
final requestBuilder = JmapRequestBuilder(httpClient, ProcessingInvocation());
197+
final setIdentityInvocation = requestBuilder.invocation(setIdentityMethod);
198+
final response = await (requestBuilder
199+
..usings(setIdentityMethod.requiredCapabilitiesSupportSortOrder))
200+
.build()
201+
.execute();
202+
203+
final setIdentityResponse = response.parse<SetIdentityResponse>(
204+
setIdentityInvocation.methodCallId,
205+
SetIdentityResponse.deserialize);
206+
207+
expect(setIdentityResponse!.created![Id('xyz123')]!.id, equals(expectedCreated.id));
208+
expect(setIdentityResponse.updated![Id('5ccf6d7b-77e8-467a-9064-9f7cc1234512')], equals(Identity()));
209+
});
210+
});
104211
}

0 commit comments

Comments
 (0)