import 'package:flutter_test/flutter_test.dart'; import 'package:tm_app/data/services/model/feedback_stats/feedback_stats.dart'; void main() { group('FeedbackStats Model Tests', () { final mockJson = { 'company_id': 'cmp123', 'last_updated': 1710000000, 'total_dislikes': 3, 'total_feedback': 25, 'total_likes': 22, }; test('fromJson creates valid FeedbackStats instance', () { final stats = FeedbackStats.fromJson(mockJson); expect(stats.companyId, equals('cmp123')); expect(stats.lastUpdated, equals(1710000000)); expect(stats.totalDislikes, equals(3)); expect(stats.totalFeedback, equals(25)); expect(stats.totalLikes, equals(22)); }); test('toJson converts model back to JSON correctly', () { final stats = FeedbackStats.fromJson(mockJson); final json = stats.toJson(); expect(json['company_id'], 'cmp123'); expect(json['last_updated'], 1710000000); expect(json['total_dislikes'], 3); expect(json['total_feedback'], 25); expect(json['total_likes'], 22); }); test('copyWith correctly updates fields', () { final stats = FeedbackStats.fromJson(mockJson); final updated = stats.copyWith(totalLikes: 30, totalDislikes: 10); expect(updated.totalLikes, 30); expect(updated.totalDislikes, 10); expect(updated.companyId, 'cmp123'); }); test('equality operator works correctly', () { final s1 = FeedbackStats.fromJson(mockJson); final s2 = FeedbackStats.fromJson(mockJson); expect(s1, equals(s2)); expect(s1.hashCode, equals(s2.hashCode)); }); }); }