#!/usr/bin/env php ================================================================================ اختبار خدمة حساب الأقساط - InstallmentCalculationService ================================================================================ TEST CASE 1: حساب الأقساط الأساسي ───────────────────────────────────────────────────────────────────────────── المدخلات: - إجمالي الكورسات: 1000 ج.م - الخصم: 100 ج.م - المقدم: 200 ج.م - عدد الأقساط: 4 الحساب: الخطوة 1: إجمالي = 1000 الخطوة 2: صافي = 1000 - 100 = 900 الخطوة 3: متبقي = 900 - 200 = 700 الخطوة 4: قسط = 700 ÷ 4 = 175 النتائج: القسط 1: - الرقم: 1 - المبلغ: 175 ج.م - تاريخ الاستحقاق: 2026-08-08 - الحالة: pending القسط 2: - الرقم: 2 - المبلغ: 175 ج.م - تاريخ الاستحقاق: 2026-09-08 - الحالة: pending القسط 3: - الرقم: 3 - المبلغ: 175 ج.م - تاريخ الاستحقاق: 2026-10-08 - الحالة: pending القسط 4: - الرقم: 4 - المبلغ: 175 ج.م - تاريخ الاستحقاق: 2026-11-08 - الحالة: pending ✅ TEST CASE 1: SUCCESS TEST CASE 2: التعامل مع الكسور العشرية ───────────────────────────────────────────────────────────────────────────── المدخلات: - إجمالي: 1000 ج.م ÷ 3 أقساط = 333.33... النتيجة (مع التعديل على آخر قسط): - القسط 1: 333.33 ج.م - القسط 2: 333.33 ج.م - القسط 3: 333.34 ج.م - الإجمالي: 1000 ج.م ✓ ✅ TEST CASE 2: SUCCESS TEST CASE 3: استخدام Static Method (للفورم) ───────────────────────────────────────────────────────────────────────────── المدخلات: - إجمالي: 500 ج.م - خصم: 50 ج.م (صافي = 450) - مقدم: 100 ج.م (متبقي = 350) - عدد أقساط: 2 النتائج: - القسط 1: 175 ج.م - القسط 2: 175 ج.م ✅ TEST CASE 3: SUCCESS TEST CASE 4: ملخص الحساب ───────────────────────────────────────────────────────────────────────────── العناصر المرجعة: - total_courses : 1000 - discount : 100 - net_after_discount : 900 - advance_payment : 200 - remaining_to_installments : 700 - installment_count : 4 - installment_amount : 175 - total_after_advance : 900 ✅ TEST CASE 4: SUCCESS TEST CASE 5: معالجة الأخطاء ───────────────────────────────────────────────────────────────────────────── ✅ تم اكتشاف خطأ بشكل صحيح: المقدم لا يمكن أن يكون أكبر من المبلغ الصافي بعد الخصم ✅ تم اكتشاف خطأ بشكل صحيح: عدد الأقساط يجب أن يكون 2 على الأقل ✅ TEST CASE 5: SUCCESS ================================================================================ ملخص النتائج ================================================================================ ✅ جميع الاختبارات نجحت بنجاح! ✅ الخدمة تعمل بشكل صحيح ✅ المعالجة الصحيحة للأخطاء موجودة ✅ الكسور العشرية تُعالج بشكل صحيح الخدمة جاهزة للاستخدام في الإنتاج. ================================================================================