import 'package:eatvio_app/features/glossary/models/glossary_model.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { group('GlossaryModel', () { test('создает GlossaryModel с правильными значениями', () { const model = GlossaryModel( id: 1, name: 'Apple', grInPortion: 100, energyOn100Gr: 52.0, proteinsOn100Gr: 0.3, fatsOn100Gr: 0.2, carbohydratesOn100Gr: 14.0, energyOnPortion: 52.0, proteinsOnPortion: 0.3, fatsOnPortion: 0.2, carbohydratesOnPortion: 14.0, ); expect(model.id, 1); expect(model.name, 'Apple'); expect(model.grInPortion, 100); expect(model.energyOn100Gr, 52.0); }); test('fromJson создает GlossaryModel из JSON', () { final json = { 'id': 1, 'name': 'Apple', 'portion_mass_gr': 100, 'energy_on_100gr': 52.0, 'proteins_on_100gr': 0.3, 'fats_on_100gr': 0.2, 'carbohydrates_on_100gr': 14.0, 'energy_on_portion': 52.0, 'proteins_on_portion': 0.3, 'fats_on_portion': 0.2, 'carbohydrates_on_portion': 14.0, }; final model = GlossaryModel.fromJson(json); expect(model.id, 1); expect(model.name, 'Apple'); expect(model.grInPortion, 100); expect(model.energyOn100Gr, 52.0); }); }); group('GlossaryPaginationModel', () { test('создает GlossaryPaginationModel с правильными значениями', () { const glossary = GlossaryModel( id: 1, name: 'Apple', grInPortion: 100, energyOn100Gr: 52.0, proteinsOn100Gr: 0.3, fatsOn100Gr: 0.2, carbohydratesOn100Gr: 14.0, energyOnPortion: 52.0, proteinsOnPortion: 0.3, fatsOnPortion: 0.2, carbohydratesOnPortion: 14.0, ); const pagination = GlossaryPaginationModel(glossariesList: [glossary]); expect(pagination.glossariesList.length, 1); expect(pagination.glossariesList.first.id, 1); }); test('fromJson создает GlossaryPaginationModel из JSON', () { final json = { 'data': [ { 'id': 1, 'name': 'Apple', 'portion_mass_gr': 100, 'energy_on_100gr': 52.0, 'proteins_on_100gr': 0.3, 'fats_on_100gr': 0.2, 'carbohydrates_on_100gr': 14.0, 'energy_on_portion': 52.0, 'proteins_on_portion': 0.3, 'fats_on_portion': 0.2, 'carbohydrates_on_portion': 14.0, } ], }; final pagination = GlossaryPaginationModel.fromJson(json); expect(pagination.glossariesList.length, 1); expect(pagination.glossariesList.first.id, 1); }); }); group('GlossaryModerationModel', () { test('создает GlossaryModerationModel с правильными значениями', () { const glossary = GlossaryModel( id: 1, name: 'Apple', grInPortion: 100, energyOn100Gr: 52.0, proteinsOn100Gr: 0.3, fatsOn100Gr: 0.2, carbohydratesOn100Gr: 14.0, energyOnPortion: 52.0, proteinsOnPortion: 0.3, fatsOnPortion: 0.2, carbohydratesOnPortion: 14.0, ); const model = GlossaryModerationModel(glossary: glossary); expect(model.glossary.id, 1); expect(model.glossary.name, 'Apple'); }); test('fromJson создает GlossaryModerationModel из JSON', () { final json = { 'product_nutritional_value': { 'id': 1, 'name': 'Apple', 'portion_mass_gr': 100, 'energy_on_100gr': 52.0, 'proteins_on_100gr': 0.3, 'fats_on_100gr': 0.2, 'carbohydrates_on_100gr': 14.0, 'energy_on_portion': 52.0, 'proteins_on_portion': 0.3, 'fats_on_portion': 0.2, 'carbohydrates_on_portion': 14.0, }, }; final model = GlossaryModerationModel.fromJson(json); expect(model.glossary.id, 1); expect(model.glossary.name, 'Apple'); }); }); }