forked from eatvio/eatvio_app
69 lines
1.9 KiB
Dart
69 lines
1.9 KiB
Dart
import 'package:eatvio_app/features/chat/models/chat_room_model.dart';
|
||
import 'package:eatvio_app/features/chat/models/chat_room_settings_model.dart';
|
||
import 'package:eatvio_app/features/chat/models/chat_user_model.dart';
|
||
import 'package:flutter_test/flutter_test.dart';
|
||
import '../../../fixtures/fixture_reader.dart';
|
||
|
||
void main() {
|
||
group('ChatRoomModel', () {
|
||
test('создает ChatRoomModel с правильными значениями', () {
|
||
const settings = ChatRoomSettingsModel(
|
||
name: 'Room Name',
|
||
state: 'active',
|
||
);
|
||
|
||
const sender = ChatUserModel(
|
||
id: 1,
|
||
name: 'Sender',
|
||
slug: 'sender',
|
||
profilePhotoUrl: 'https://example.com/sender.jpg',
|
||
);
|
||
|
||
const receiver = ChatUserModel(
|
||
id: 2,
|
||
name: 'Receiver',
|
||
slug: 'receiver',
|
||
profilePhotoUrl: 'https://example.com/receiver.jpg',
|
||
);
|
||
|
||
const users = Users(sender: sender, receiver: receiver);
|
||
|
||
const model = ChatRoomModel(
|
||
id: 'room-1',
|
||
chatRoomSettings: settings,
|
||
users: users,
|
||
chosenPlanId: 1,
|
||
chosenPlan: null,
|
||
);
|
||
|
||
expect(model.id, 'room-1');
|
||
expect(model.chosenPlanId, 1);
|
||
expect(model.users.sender.id, 1);
|
||
});
|
||
|
||
test('fromJson создает ChatRoomModel из JSON', () {
|
||
final json = FixtureReader.readAsMap('chat/chat_room_response.json');
|
||
|
||
final model = ChatRoomModel.fromJson(json);
|
||
|
||
expect(model.id, 'chat-1');
|
||
expect(model.chosenPlanId, null);
|
||
expect(model.users.sender.id, 1);
|
||
expect(model.users.receiver.id, 2);
|
||
});
|
||
});
|
||
|
||
group('Users', () {
|
||
test('fromJson создает Users из JSON', () {
|
||
final roomJson = FixtureReader.readAsMap('chat/chat_room_response.json');
|
||
final usersJson = roomJson['users'] as Map<String, dynamic>;
|
||
|
||
final users = Users.fromJson(usersJson);
|
||
|
||
expect(users.sender.id, 1);
|
||
expect(users.receiver.id, 2);
|
||
});
|
||
});
|
||
}
|
||
|