TF-2298 Update expires time when old token has expired

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit fb26afe8f52df6e16476aea8a68f9f92c5c4b001)
This commit is contained in:
dab246
2023-12-04 10:53:26 +07:00
committed by Dat H. Pham
parent e3dea129b6
commit f5d878012d
72 changed files with 964 additions and 736 deletions
@@ -1,10 +1,10 @@
import 'package:dio/dio.dart';
import 'package:fcm/method/get/firebase_subscription_get_method.dart';
import 'package:fcm/method/get/firebase_subscription_get_response.dart';
import 'package:fcm/method/get/firebase_registration_get_method.dart';
import 'package:fcm/method/get/firebase_registration_get_response.dart';
import 'package:fcm/model/device_client_id.dart';
import 'package:fcm/model/firebase_expired_time.dart';
import 'package:fcm/model/firebase_subscription.dart';
import 'package:fcm/model/firebase_subscription_id.dart';
import 'package:fcm/model/firebase_registration_expired_time.dart';
import 'package:fcm/model/firebase_registration.dart';
import 'package:fcm/model/firebase_registration_id.dart';
import 'package:fcm/model/type_name.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
@@ -14,22 +14,22 @@ import 'package:jmap_dart_client/jmap/core/utc_date.dart';
import 'package:jmap_dart_client/jmap/jmap_request.dart';
void main() {
group('test to json firebase subscription get method', () {
final expectFirebaseSubscription1 = FirebaseSubscription(
id: FirebaseSubscriptionId(Id('e50b2c1d-9553-41a3-b0a7-a7d26b599ee1')),
group('test to json firebase registration get method', () {
final expectFirebaseRegistration1 = FirebaseRegistration(
id: FirebaseRegistrationId(Id('e50b2c1d-9553-41a3-b0a7-a7d26b599ee1')),
deviceClientId: DeviceClientId('b37ff8001ca0'),
expires: FirebaseExpiredTime(UTCDate(DateTime.parse('2018-07-31T00:13:21Z'))),
expires: FirebaseRegistrationExpiredTime(UTCDate(DateTime.parse('2018-07-31T00:13:21Z'))),
types: [TypeName.mailboxType],
);
final expectFirebaseSubscription2 = FirebaseSubscription(
id: FirebaseSubscriptionId(Id('f2d0aab5-e976-4e8b-ad4b-b380a5b987e4')),
final expectFirebaseRegistration2 = FirebaseRegistration(
id: FirebaseRegistrationId(Id('f2d0aab5-e976-4e8b-ad4b-b380a5b987e4')),
deviceClientId: DeviceClientId('X8980fc'),
expires: FirebaseExpiredTime(UTCDate(DateTime.parse('2018-07-12T05:55:00Z'))),
expires: FirebaseRegistrationExpiredTime(UTCDate(DateTime.parse('2018-07-12T05:55:00Z'))),
types: [TypeName.mailboxType, TypeName.emailType, TypeName.emailDelivery],
);
test('firebase subscription get method and response parsing', () async {
test('firebase registration get method and response parsing', () async {
final baseOption = BaseOptions(method: 'POST');
final dio = Dio(baseOption)..options.baseUrl = 'http://domain.com/jmap';
final dioAdapter = DioAdapter(dio: dio);
@@ -84,20 +84,20 @@ void main() {
final processingInvocation = ProcessingInvocation();
final requestBuilder = JmapRequestBuilder(httpClient, processingInvocation);
final firebaseSubscriptionGetMethod = FirebaseSubscriptionGetMethod();
final firebaseSubscriptionGetInvocation = requestBuilder.invocation(firebaseSubscriptionGetMethod);
final firebaseRegistrationGetMethod = FirebaseRegistrationGetMethod();
final firebaseRegistrationGetInvocation = requestBuilder.invocation(firebaseRegistrationGetMethod);
final response = await (requestBuilder
..usings(firebaseSubscriptionGetMethod.requiredCapabilities))
..usings(firebaseRegistrationGetMethod.requiredCapabilities))
.build()
.execute();
final resultList = response.parse<FirebaseSubscriptionGetResponse>(
firebaseSubscriptionGetInvocation.methodCallId,
FirebaseSubscriptionGetResponse.deserialize
final resultList = response.parse<FirebaseRegistrationGetResponse>(
firebaseRegistrationGetInvocation.methodCallId,
FirebaseRegistrationGetResponse.deserialize
);
expect(resultList?.list.length, equals(2));
expect(resultList?.list, containsAll([expectFirebaseSubscription1, expectFirebaseSubscription2]));
expect(resultList?.list, containsAll([expectFirebaseRegistration1, expectFirebaseRegistration2]));
});
});
}
@@ -1,11 +1,11 @@
import 'package:dio/dio.dart';
import 'package:fcm/method/set/firebase_subscription_set_method.dart';
import 'package:fcm/method/set/firebase_subscription_set_response.dart';
import 'package:fcm/method/set/firebase_registration_set_method.dart';
import 'package:fcm/method/set/firebase_registration_set_response.dart';
import 'package:fcm/model/device_client_id.dart';
import 'package:fcm/model/firebase_expired_time.dart';
import 'package:fcm/model/firebase_subscription.dart';
import 'package:fcm/model/firebase_subscription_id.dart';
import 'package:fcm/model/firebase_token.dart';
import 'package:fcm/model/firebase_registration_expired_time.dart';
import 'package:fcm/model/firebase_registration.dart';
import 'package:fcm/model/firebase_registration_id.dart';
import 'package:fcm/model/fcm_token.dart';
import 'package:fcm/model/type_name.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
@@ -15,13 +15,13 @@ import 'package:jmap_dart_client/jmap/core/utc_date.dart';
import 'package:jmap_dart_client/jmap/jmap_request.dart';
void main() {
group('test to json firebase subscription set method', () {
final expectedFirebaseSubscriptionCreated = FirebaseSubscription(
id: FirebaseSubscriptionId(Id('175dbd70-93d1-11ec-984e-e3f8b83572b4')),
expires: FirebaseExpiredTime(UTCDate(DateTime.parse('2022-03-31T02:14:29Z'))),
group('test to json firebase registration set method', () {
final expectedFirebaseRegistrationCreated = FirebaseRegistration(
id: FirebaseRegistrationId(Id('175dbd70-93d1-11ec-984e-e3f8b83572b4')),
expires: FirebaseRegistrationExpiredTime(UTCDate(DateTime.parse('2022-03-31T02:14:29Z'))),
);
test('firebase subscription set method and response parsing', () async {
test('firebase registration set method and response parsing', () async {
final baseOption = BaseOptions(method: 'POST');
final dio = Dio(baseOption)
..options.baseUrl = 'http://domain.com/jmap';
@@ -75,31 +75,31 @@ void main() {
final createRequestId = Id('dab246');
final firebaseSubscriptionSetMethod = FirebaseSubscriptionSetMethod()
final firebaseRegistrationSetMethod = FirebaseRegistrationSetMethod()
..addCreate(
createRequestId,
FirebaseSubscription(
FirebaseRegistration(
deviceClientId: DeviceClientId('a123-b123-c123'),
token: FirebaseToken('token1'),
token: FcmToken('token1'),
types: [TypeName.mailboxType]
)
);
final httpClient = HttpClient(dio);
final requestBuilder = JmapRequestBuilder(httpClient, ProcessingInvocation());
final firebaseSubscriptionSetInvocation = requestBuilder.invocation(firebaseSubscriptionSetMethod);
final firebaseRegistrationSetInvocation = requestBuilder.invocation(firebaseRegistrationSetMethod);
final response = await (requestBuilder
..usings(firebaseSubscriptionSetMethod.requiredCapabilities))
..usings(firebaseRegistrationSetMethod.requiredCapabilities))
.build()
.execute();
final firebaseSubscriptionSetResponse = response.parse<FirebaseSubscriptionSetResponse>(
firebaseSubscriptionSetInvocation.methodCallId,
FirebaseSubscriptionSetResponse.deserialize);
final firebaseRegistrationSetResponse = response.parse<FirebaseRegistrationSetResponse>(
firebaseRegistrationSetInvocation.methodCallId,
FirebaseRegistrationSetResponse.deserialize);
expect(
firebaseSubscriptionSetResponse!.created![createRequestId]!.id,
equals(expectedFirebaseSubscriptionCreated.id)
firebaseRegistrationSetResponse!.created![createRequestId]!.id,
equals(expectedFirebaseRegistrationCreated.id)
);
});
});